@sula-tech/webcomponents 0.23.1 → 0.24.1

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 (129) hide show
  1. package/dist/cjs/index.cjs.js +8 -7
  2. package/dist/cjs/index.cjs.js.map +1 -1
  3. package/dist/cjs/loader.cjs.js +1 -1
  4. package/dist/cjs/sula-avatar_32.cjs.entry.js +24 -23
  5. package/dist/cjs/sula-avatar_32.cjs.entry.js.map +1 -1
  6. package/dist/cjs/sula-calendar.model-CxjS_EJv.js +10 -0
  7. package/dist/cjs/sula-calendar.model-CxjS_EJv.js.map +1 -0
  8. package/dist/cjs/{sula-calendar.model-BI5cNrUo.js → sula-menu.model-BDxbWyPG.js} +2 -8
  9. package/dist/cjs/sula-menu.model-BDxbWyPG.js.map +1 -0
  10. package/dist/cjs/sula-profile-menu.cjs.entry.js +55 -0
  11. package/dist/cjs/sula-profile-menu.cjs.entry.js.map +1 -0
  12. package/dist/cjs/sula-profile-menu.entry.cjs.js.map +1 -0
  13. package/dist/cjs/sula-workbench-menu.cjs.entry.js +602 -0
  14. package/dist/cjs/sula-workbench-menu.cjs.entry.js.map +1 -0
  15. package/dist/cjs/sula-workbench-menu.entry.cjs.js.map +1 -0
  16. package/dist/cjs/webcomponents.cjs.js +1 -1
  17. package/dist/collection/collection-manifest.json +3 -1
  18. package/dist/collection/components/sula-icon/sula-icon.css +1 -1
  19. package/dist/collection/components/sula-menu/sula-menu.css +1 -1
  20. package/dist/collection/components/sula-menu/sula-menu.js +13 -13
  21. package/dist/collection/components/sula-menu/sula-menu.js.map +1 -1
  22. package/dist/collection/components/sula-profile-menu/model/sula-profile-menu.model.js +2 -0
  23. package/dist/collection/components/sula-profile-menu/model/sula-profile-menu.model.js.map +1 -0
  24. package/dist/collection/components/sula-profile-menu/sula-profile-menu.css +1 -0
  25. package/dist/collection/components/sula-profile-menu/sula-profile-menu.js +163 -0
  26. package/dist/collection/components/sula-profile-menu/sula-profile-menu.js.map +1 -0
  27. package/dist/collection/components/sula-profile-menu/sula-profile-menu.stories.js +74 -0
  28. package/dist/collection/components/sula-profile-menu/sula-profile-menu.stories.js.map +1 -0
  29. package/dist/collection/components/sula-switch/sula-switch.css +1 -1
  30. package/dist/collection/components/sula-workbench-menu/model/sula-workbench-menu.model.js +2 -0
  31. package/dist/collection/components/sula-workbench-menu/model/sula-workbench-menu.model.js.map +1 -0
  32. package/dist/collection/components/sula-workbench-menu/sula-workbench-menu.css +1 -0
  33. package/dist/collection/components/sula-workbench-menu/sula-workbench-menu.js +1040 -0
  34. package/dist/collection/components/sula-workbench-menu/sula-workbench-menu.js.map +1 -0
  35. package/dist/collection/components/sula-workbench-menu/sula-workbench-menu.stories.js +490 -0
  36. package/dist/collection/components/sula-workbench-menu/sula-workbench-menu.stories.js.map +1 -0
  37. package/dist/collection/index.js.map +1 -1
  38. package/dist/components/{p-Dl7qXhBf.js → p-B_WIoxzn.js} +4 -4
  39. package/dist/components/{p-Dl7qXhBf.js.map → p-B_WIoxzn.js.map} +1 -1
  40. package/dist/components/{p-V9D4rqf7.js → p-BssyNhpP.js} +3 -3
  41. package/dist/components/{p-V9D4rqf7.js.map → p-BssyNhpP.js.map} +1 -1
  42. package/dist/components/{p-DzGiAQVF.js → p-CGpfhGAG.js} +3 -3
  43. package/dist/components/{p-DzGiAQVF.js.map → p-CGpfhGAG.js.map} +1 -1
  44. package/dist/components/{p-DRskhGOW.js → p-CWTfj4TV.js} +3 -3
  45. package/dist/components/{p-DRskhGOW.js.map → p-CWTfj4TV.js.map} +1 -1
  46. package/dist/components/p-DEhN6ZhJ.js +110 -0
  47. package/dist/components/p-DEhN6ZhJ.js.map +1 -0
  48. package/dist/components/{p-DjPqgTzy.js → p-DK8hW-Cd.js} +3 -3
  49. package/dist/components/{p-DjPqgTzy.js.map → p-DK8hW-Cd.js.map} +1 -1
  50. package/dist/components/{p-BhhQBGyJ.js → p-DwZCdDhF.js} +3 -3
  51. package/dist/components/{p-BhhQBGyJ.js.map → p-DwZCdDhF.js.map} +1 -1
  52. package/dist/components/{p-jsqtM3Ie.js → p-GEr9Dmhq.js} +3 -3
  53. package/dist/components/{p-jsqtM3Ie.js.map → p-GEr9Dmhq.js.map} +1 -1
  54. package/dist/components/p-KitH8bea.js +84 -0
  55. package/dist/components/p-KitH8bea.js.map +1 -0
  56. package/dist/components/sula-avatar.js +1 -1
  57. package/dist/components/sula-badge.js +1 -1
  58. package/dist/components/sula-breadcrumb.js +1 -1
  59. package/dist/components/sula-button.js +1 -1
  60. package/dist/components/sula-calendar.js +2 -2
  61. package/dist/components/sula-checkbox.js +1 -1
  62. package/dist/components/sula-chip.js +2 -2
  63. package/dist/components/sula-dropdown.js +1 -1
  64. package/dist/components/sula-icon-picker.js +4 -4
  65. package/dist/components/sula-icon.js +1 -1
  66. package/dist/components/sula-menu-select-list.js +1 -1
  67. package/dist/components/sula-menu.js +15 -15
  68. package/dist/components/sula-menu.js.map +1 -1
  69. package/dist/components/sula-modal.js +2 -2
  70. package/dist/components/sula-profile-menu.d.ts +11 -0
  71. package/dist/components/sula-profile-menu.js +9 -0
  72. package/dist/components/sula-profile-menu.js.map +1 -0
  73. package/dist/components/sula-progress-bar.js +1 -1
  74. package/dist/components/sula-search-bar.js +1 -1
  75. package/dist/components/sula-segmented-control.js +1 -1
  76. package/dist/components/sula-switch.js +1 -105
  77. package/dist/components/sula-switch.js.map +1 -1
  78. package/dist/components/sula-tag.js +1 -1
  79. package/dist/components/sula-textfield.js +1 -1
  80. package/dist/components/sula-tiles.js +1 -1
  81. package/dist/components/sula-timeline-list.js +1 -1
  82. package/dist/components/sula-toast-stack.js +2 -2
  83. package/dist/components/sula-toast.js +1 -1
  84. package/dist/components/sula-toggle.js +1 -1
  85. package/dist/components/sula-tooltip.js +1 -1
  86. package/dist/components/sula-workbench-menu.d.ts +11 -0
  87. package/dist/components/sula-workbench-menu.js +659 -0
  88. package/dist/components/sula-workbench-menu.js.map +1 -0
  89. package/dist/esm/index.js +2 -1
  90. package/dist/esm/index.js.map +1 -1
  91. package/dist/esm/loader.js +1 -1
  92. package/dist/esm/sula-avatar_32.entry.js +18 -17
  93. package/dist/esm/sula-avatar_32.entry.js.map +1 -1
  94. package/dist/esm/sula-calendar.model-Cp_4qTxj.js +10 -0
  95. package/dist/esm/sula-calendar.model-Cp_4qTxj.js.map +1 -0
  96. package/dist/esm/{sula-calendar.model-BbsLJDfp.js → sula-menu.model-Cs9RR1ZV.js} +3 -9
  97. package/dist/esm/sula-menu.model-Cs9RR1ZV.js.map +1 -0
  98. package/dist/esm/sula-profile-menu.entry.js +53 -0
  99. package/dist/esm/sula-profile-menu.entry.js.map +1 -0
  100. package/dist/esm/sula-workbench-menu.entry.js +600 -0
  101. package/dist/esm/sula-workbench-menu.entry.js.map +1 -0
  102. package/dist/esm/webcomponents.js +1 -1
  103. package/dist/types/components/sula-profile-menu/model/sula-profile-menu.model.d.ts +22 -0
  104. package/dist/types/components/sula-profile-menu/sula-profile-menu.d.ts +35 -0
  105. package/dist/types/components/sula-profile-menu/sula-profile-menu.stories.d.ts +34 -0
  106. package/dist/types/components/sula-workbench-menu/model/sula-workbench-menu.model.d.ts +19 -0
  107. package/dist/types/components/sula-workbench-menu/sula-workbench-menu.d.ts +182 -0
  108. package/dist/types/components/sula-workbench-menu/sula-workbench-menu.stories.d.ts +168 -0
  109. package/dist/types/components.d.ts +275 -0
  110. package/dist/types/index.d.ts +1 -0
  111. package/dist/webcomponents/index.esm.js +3 -1
  112. package/dist/webcomponents/index.esm.js.map +1 -1
  113. package/dist/webcomponents/p-50ad82d0.entry.js +827 -0
  114. package/dist/webcomponents/p-50ad82d0.entry.js.map +1 -0
  115. package/dist/webcomponents/p-88e5171a.entry.js +100 -0
  116. package/dist/webcomponents/p-88e5171a.entry.js.map +1 -0
  117. package/dist/webcomponents/{p-20b3135d.entry.js → p-907588e9.entry.js} +193 -191
  118. package/dist/webcomponents/{p-20b3135d.entry.js.map → p-907588e9.entry.js.map} +1 -1
  119. package/dist/webcomponents/p-Cp_4qTxj.js +10 -0
  120. package/dist/webcomponents/p-Cp_4qTxj.js.map +1 -0
  121. package/dist/webcomponents/{p-BbsLJDfp.js → p-Cs9RR1ZV.js} +4 -11
  122. package/dist/webcomponents/p-Cs9RR1ZV.js.map +1 -0
  123. package/dist/webcomponents/sula-profile-menu.entry.esm.js.map +1 -0
  124. package/dist/webcomponents/sula-workbench-menu.entry.esm.js.map +1 -0
  125. package/dist/webcomponents/webcomponents.esm.js +34 -9
  126. package/package.json +1 -1
  127. package/dist/cjs/sula-calendar.model-BI5cNrUo.js.map +0 -1
  128. package/dist/esm/sula-calendar.model-BbsLJDfp.js.map +0 -1
  129. package/dist/webcomponents/p-BbsLJDfp.js.map +0 -1
@@ -0,0 +1,168 @@
1
+ import { SulaMenuDensity, SulaMenuLabelOverflow } from '../sula-menu/model/sula-menu.model';
2
+ import { SulaProfileMenuItem } from '../sula-profile-menu/model/sula-profile-menu.model';
3
+ import { SulaWorkbenchMenuItem, SulaWorkbenchMenuUser } from './model/sula-workbench-menu.model';
4
+ type StoryArgs = {
5
+ menuTitle: string;
6
+ density: SulaMenuDensity;
7
+ labelOverflow: SulaMenuLabelOverflow;
8
+ drilldownLevel: number;
9
+ drillPath?: string[];
10
+ items: SulaWorkbenchMenuItem[];
11
+ user: SulaWorkbenchMenuUser;
12
+ profileItems?: SulaProfileMenuItem[];
13
+ profileClicked: EventListener;
14
+ profileItemClicked: EventListener;
15
+ profileSwitchChanged: EventListener;
16
+ itemSelected: EventListener;
17
+ itemClicked: EventListener;
18
+ levelChanged: EventListener;
19
+ menuToggled: EventListener;
20
+ };
21
+ declare const _default: {
22
+ title: string;
23
+ tags: string[];
24
+ argTypes: {
25
+ menuTitle: {
26
+ control: string;
27
+ defaultValue: string;
28
+ description: string;
29
+ };
30
+ density: {
31
+ control: {
32
+ type: string;
33
+ };
34
+ options: SulaMenuDensity[];
35
+ description: string;
36
+ };
37
+ labelOverflow: {
38
+ control: {
39
+ type: string;
40
+ };
41
+ options: SulaMenuLabelOverflow[];
42
+ description: string;
43
+ };
44
+ drilldownLevel: {
45
+ control: {
46
+ type: string;
47
+ min: number;
48
+ };
49
+ description: string;
50
+ };
51
+ drillPath: {
52
+ control: string;
53
+ description: string;
54
+ };
55
+ items: {
56
+ control: string;
57
+ description: string;
58
+ };
59
+ itemSelected: {
60
+ action: string;
61
+ description: string;
62
+ };
63
+ itemClicked: {
64
+ action: string;
65
+ description: string;
66
+ };
67
+ levelChanged: {
68
+ action: string;
69
+ description: string;
70
+ };
71
+ user: {
72
+ control: string;
73
+ description: string;
74
+ };
75
+ profileClicked: {
76
+ action: string;
77
+ description: string;
78
+ };
79
+ profileItems: {
80
+ control: string;
81
+ description: string;
82
+ };
83
+ profileItemClicked: {
84
+ action: string;
85
+ description: string;
86
+ };
87
+ profileSwitchChanged: {
88
+ action: string;
89
+ description: string;
90
+ };
91
+ menuToggled: {
92
+ action: string;
93
+ description: string;
94
+ };
95
+ };
96
+ parameters: {
97
+ docs: {
98
+ description: {
99
+ component: string;
100
+ };
101
+ };
102
+ };
103
+ };
104
+ export default _default;
105
+ export declare const Default: any;
106
+ export declare const WithoutPhotoOrEmail: any;
107
+ export declare const WithProfileMenu: {
108
+ (args: StoryArgs): any;
109
+ args: {
110
+ menuTitle: string;
111
+ density: SulaMenuDensity;
112
+ labelOverflow: SulaMenuLabelOverflow;
113
+ drilldownLevel: number;
114
+ items: SulaWorkbenchMenuItem[];
115
+ user: {
116
+ name: string;
117
+ email: string;
118
+ };
119
+ profileItems: SulaProfileMenuItem[];
120
+ };
121
+ parameters: {
122
+ docs: {
123
+ description: {
124
+ story: string;
125
+ };
126
+ };
127
+ };
128
+ };
129
+ export declare const CustomProfileItems: any;
130
+ export declare const ControlledDrillPath: {
131
+ (args: StoryArgs): HTMLDivElement;
132
+ args: {
133
+ menuTitle: string;
134
+ density: SulaMenuDensity;
135
+ labelOverflow: SulaMenuLabelOverflow;
136
+ drilldownLevel: number;
137
+ items: SulaWorkbenchMenuItem[];
138
+ user: SulaWorkbenchMenuUser;
139
+ };
140
+ parameters: {
141
+ docs: {
142
+ description: {
143
+ story: string;
144
+ };
145
+ };
146
+ };
147
+ };
148
+ export declare const InlineOnly: any;
149
+ export declare const ComparisonWithCurrentSulaMenu: {
150
+ (): HTMLDivElement;
151
+ parameters: {
152
+ docs: {
153
+ description: {
154
+ story: string;
155
+ };
156
+ };
157
+ };
158
+ };
159
+ export declare const ComparisonDrilldownFourthLevel: {
160
+ (): HTMLDivElement;
161
+ parameters: {
162
+ docs: {
163
+ description: {
164
+ story: string;
165
+ };
166
+ };
167
+ };
168
+ };
@@ -18,6 +18,7 @@ import { SulaIconPickerIcon } from "./components/sula-icon-picker/model/sula-ico
18
18
  import { SulaLoaderSize } from "./components/sula-loader/model/sula-loader.model";
19
19
  import { SulaMenuDensity, SulaMenuItem, SulaMenuLabelOverflow, SulaMenuMainItem, SulaMenuSubItem } from "./components/sula-menu/model/sula-menu.model";
20
20
  import { SulaModalSlotOverflow, SulaModalType } from "./components/sula-modal/model/sula-modal.model";
21
+ import { SulaProfileMenuItem, SulaProfileMenuSwitchChange, SulaProfileMenuUser } from "./components/sula-profile-menu/model/sula-profile-menu.model";
21
22
  import { SulaProgressBarAppearance, SulaProgressBarState } from "./components/sula-progress-bar/model/sula-progress-bar.model";
22
23
  import { SulaSearchBarStyle } from "./components/sula-search-bar/model/sula-search.bar-model";
23
24
  import { SulaSegmentedControlColor, SulaSegmentedControlOption, SulaSegmentedControlSize, SulaSegmentedControlType } from "./components/sula-segmented-control/model/sula-segmented-control.model";
@@ -31,6 +32,7 @@ import { SulaTimelineListItem } from "./components/sula-timeline-list/model/sula
31
32
  import { SulaToastAnnouncement, SulaToastDismissEvent, SulaToastItem, SulaToastStackActionEvent, SulaToastStackDismissEvent, SulaToastType } from "./components/sula-toast/model/sula-toast.model";
32
33
  import { SulaToggleEvent } from "./components/sula-toggle/model/sula-toggle.model";
33
34
  import { SulaTooltipPosition, SulaTooltipTrigger } from "./components/sula-tooltip/model/sula-tooltip.model";
35
+ import { SulaWorkbenchMenuItem, SulaWorkbenchMenuPath, SulaWorkbenchMenuUser } from "./components/sula-workbench-menu/model/sula-workbench-menu.model";
34
36
  export { SulaAvatarSize } from "./components/sula-avatar/model/sula-avatar.model";
35
37
  export { SulaBadgeSize, SulaBadgeStatus, SulaBadgeType } from "./components/sula-badge/model/sula-badge.model";
36
38
  export { SulaMenuBreadcrumb } from "./components/sula-breadcrumb/model/sula-breadcrumb.model";
@@ -44,6 +46,7 @@ export { SulaIconPickerIcon } from "./components/sula-icon-picker/model/sula-ico
44
46
  export { SulaLoaderSize } from "./components/sula-loader/model/sula-loader.model";
45
47
  export { SulaMenuDensity, SulaMenuItem, SulaMenuLabelOverflow, SulaMenuMainItem, SulaMenuSubItem } from "./components/sula-menu/model/sula-menu.model";
46
48
  export { SulaModalSlotOverflow, SulaModalType } from "./components/sula-modal/model/sula-modal.model";
49
+ export { SulaProfileMenuItem, SulaProfileMenuSwitchChange, SulaProfileMenuUser } from "./components/sula-profile-menu/model/sula-profile-menu.model";
47
50
  export { SulaProgressBarAppearance, SulaProgressBarState } from "./components/sula-progress-bar/model/sula-progress-bar.model";
48
51
  export { SulaSearchBarStyle } from "./components/sula-search-bar/model/sula-search.bar-model";
49
52
  export { SulaSegmentedControlColor, SulaSegmentedControlOption, SulaSegmentedControlSize, SulaSegmentedControlType } from "./components/sula-segmented-control/model/sula-segmented-control.model";
@@ -57,6 +60,7 @@ export { SulaTimelineListItem } from "./components/sula-timeline-list/model/sula
57
60
  export { SulaToastAnnouncement, SulaToastDismissEvent, SulaToastItem, SulaToastStackActionEvent, SulaToastStackDismissEvent, SulaToastType } from "./components/sula-toast/model/sula-toast.model";
58
61
  export { SulaToggleEvent } from "./components/sula-toggle/model/sula-toggle.model";
59
62
  export { SulaTooltipPosition, SulaTooltipTrigger } from "./components/sula-tooltip/model/sula-tooltip.model";
63
+ export { SulaWorkbenchMenuItem, SulaWorkbenchMenuPath, SulaWorkbenchMenuUser } from "./components/sula-workbench-menu/model/sula-workbench-menu.model";
60
64
  export namespace Components {
61
65
  interface SulaAvatar {
62
66
  /**
@@ -535,6 +539,22 @@ export namespace Components {
535
539
  */
536
540
  "type": SulaModalType;
537
541
  }
542
+ /**
543
+ * Profile card with the logged user and a configurable list of options.
544
+ * It has no positioning of its own: place it inside a popover, dropdown or panel.
545
+ * The component only emits events: what each option does is up to the host application.
546
+ */
547
+ interface SulaProfileMenu {
548
+ /**
549
+ * Options of the list. Use `divider` for a separator and `hasSwitch` + `active` for a toggle row.
550
+ * @default []
551
+ */
552
+ "items": SulaProfileMenuItem[];
553
+ /**
554
+ * Logged user. Without a photo, the initials are shown.
555
+ */
556
+ "user"?: SulaProfileMenuUser;
557
+ }
538
558
  interface SulaProgressBar {
539
559
  /**
540
560
  * The style of the progress bar.
@@ -967,6 +987,68 @@ export namespace Components {
967
987
  */
968
988
  "trigger": SulaTooltipTrigger;
969
989
  }
990
+ /**
991
+ * Navigation menu that combines an inline expandable tree with a drill-down panel.
992
+ * Levels above `drilldownLevel` expand in place, as in `sula-menu`. Items at or below
993
+ * that level with children open a single-level panel with a breadcrumb trail.
994
+ * @cssprop --sula-menu-width - Width of the expanded menu. Defaults to 256px.
995
+ * @cssprop --sula-menu-collapsed-width - Width of the collapsed menu. Defaults to 88px.
996
+ */
997
+ interface SulaWorkbenchMenu {
998
+ /**
999
+ * Icon used for items without `icon` or `image`. Use an empty string to show no icon.
1000
+ * @default 'ph ph-dot-outline'
1001
+ */
1002
+ "defaultIcon": string;
1003
+ /**
1004
+ * Density applied to menu items.
1005
+ * @default SulaMenuDensity.Default
1006
+ */
1007
+ "density": SulaMenuDensity;
1008
+ /**
1009
+ * Controls the drill-down from the host: ids from the root to the item whose children are shown. An empty array shows the tree (leaves the drill-down). Leave it undefined to let only user clicks navigate.
1010
+ */
1011
+ "drillPath"?: string[];
1012
+ /**
1013
+ * Depth (1-based) from which items with children open a drill-down panel instead of expanding in place. With the default of 3, the first two levels expand inline and deeper branches drill down.
1014
+ * @default 3
1015
+ */
1016
+ "drilldownLevel": number;
1017
+ /**
1018
+ * Menu image
1019
+ * @default ''
1020
+ */
1021
+ "image": string;
1022
+ /**
1023
+ * Menu items. Each item may use `icon` (icon font class) or `image` (URL or data URI of an image or SVG).
1024
+ * @default []
1025
+ */
1026
+ "items": SulaWorkbenchMenuItem[];
1027
+ /**
1028
+ * Overflow behavior for item labels.
1029
+ * @default SulaMenuLabelOverflow.Wrap
1030
+ */
1031
+ "labelOverflow": SulaMenuLabelOverflow;
1032
+ /**
1033
+ * Menu title
1034
+ * @default ''
1035
+ */
1036
+ "menuTitle": string;
1037
+ /**
1038
+ * Options of the profile popover. Use `divider` for a separator and `hasSwitch` + `active` for a toggle row.
1039
+ * @default []
1040
+ */
1041
+ "profileItems": SulaProfileMenuItem[];
1042
+ /**
1043
+ * Logged user shown at the bottom of the menu. Without a photo, the initials are shown.
1044
+ */
1045
+ "user"?: SulaWorkbenchMenuUser;
1046
+ /**
1047
+ * Menu width in expanded state. Use a CSS length that does not depend on the host width, for example: 256px, 20rem or clamp(16rem, 25vw, 24rem).
1048
+ * @default ''
1049
+ */
1050
+ "width": string;
1051
+ }
970
1052
  }
971
1053
  export interface SulaBreadcrumbCustomEvent<T> extends CustomEvent<T> {
972
1054
  detail: T;
@@ -1008,6 +1090,10 @@ export interface SulaModalCustomEvent<T> extends CustomEvent<T> {
1008
1090
  detail: T;
1009
1091
  target: HTMLSulaModalElement;
1010
1092
  }
1093
+ export interface SulaProfileMenuCustomEvent<T> extends CustomEvent<T> {
1094
+ detail: T;
1095
+ target: HTMLSulaProfileMenuElement;
1096
+ }
1011
1097
  export interface SulaRadioButtonCustomEvent<T> extends CustomEvent<T> {
1012
1098
  detail: T;
1013
1099
  target: HTMLSulaRadioButtonElement;
@@ -1052,6 +1138,10 @@ export interface SulaToggleCustomEvent<T> extends CustomEvent<T> {
1052
1138
  detail: T;
1053
1139
  target: HTMLSulaToggleElement;
1054
1140
  }
1141
+ export interface SulaWorkbenchMenuCustomEvent<T> extends CustomEvent<T> {
1142
+ detail: T;
1143
+ target: HTMLSulaWorkbenchMenuElement;
1144
+ }
1055
1145
  declare global {
1056
1146
  interface HTMLSulaAvatarElement extends Components.SulaAvatar, HTMLStencilElement {
1057
1147
  }
@@ -1274,6 +1364,29 @@ declare global {
1274
1364
  prototype: HTMLSulaModalElement;
1275
1365
  new (): HTMLSulaModalElement;
1276
1366
  };
1367
+ interface HTMLSulaProfileMenuElementEventMap {
1368
+ "itemClicked": SulaProfileMenuItem;
1369
+ "switchChanged": SulaProfileMenuSwitchChange;
1370
+ }
1371
+ /**
1372
+ * Profile card with the logged user and a configurable list of options.
1373
+ * It has no positioning of its own: place it inside a popover, dropdown or panel.
1374
+ * The component only emits events: what each option does is up to the host application.
1375
+ */
1376
+ interface HTMLSulaProfileMenuElement extends Components.SulaProfileMenu, HTMLStencilElement {
1377
+ addEventListener<K extends keyof HTMLSulaProfileMenuElementEventMap>(type: K, listener: (this: HTMLSulaProfileMenuElement, ev: SulaProfileMenuCustomEvent<HTMLSulaProfileMenuElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
1378
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1379
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1380
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
1381
+ removeEventListener<K extends keyof HTMLSulaProfileMenuElementEventMap>(type: K, listener: (this: HTMLSulaProfileMenuElement, ev: SulaProfileMenuCustomEvent<HTMLSulaProfileMenuElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
1382
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1383
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1384
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
1385
+ }
1386
+ var HTMLSulaProfileMenuElement: {
1387
+ prototype: HTMLSulaProfileMenuElement;
1388
+ new (): HTMLSulaProfileMenuElement;
1389
+ };
1277
1390
  interface HTMLSulaProgressBarElement extends Components.SulaProgressBar, HTMLStencilElement {
1278
1391
  }
1279
1392
  var HTMLSulaProgressBarElement: {
@@ -1534,6 +1647,36 @@ declare global {
1534
1647
  prototype: HTMLSulaTooltipElement;
1535
1648
  new (): HTMLSulaTooltipElement;
1536
1649
  };
1650
+ interface HTMLSulaWorkbenchMenuElementEventMap {
1651
+ "itemSelected": SulaWorkbenchMenuItem;
1652
+ "itemClicked": SulaWorkbenchMenuItem;
1653
+ "levelChanged": SulaWorkbenchMenuPath;
1654
+ "profileClicked": SulaWorkbenchMenuUser;
1655
+ "profileItemClicked": SulaProfileMenuItem;
1656
+ "profileSwitchChanged": SulaProfileMenuSwitchChange;
1657
+ "menuToggled": boolean;
1658
+ }
1659
+ /**
1660
+ * Navigation menu that combines an inline expandable tree with a drill-down panel.
1661
+ * Levels above `drilldownLevel` expand in place, as in `sula-menu`. Items at or below
1662
+ * that level with children open a single-level panel with a breadcrumb trail.
1663
+ * @cssprop --sula-menu-width - Width of the expanded menu. Defaults to 256px.
1664
+ * @cssprop --sula-menu-collapsed-width - Width of the collapsed menu. Defaults to 88px.
1665
+ */
1666
+ interface HTMLSulaWorkbenchMenuElement extends Components.SulaWorkbenchMenu, HTMLStencilElement {
1667
+ addEventListener<K extends keyof HTMLSulaWorkbenchMenuElementEventMap>(type: K, listener: (this: HTMLSulaWorkbenchMenuElement, ev: SulaWorkbenchMenuCustomEvent<HTMLSulaWorkbenchMenuElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
1668
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1669
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1670
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
1671
+ removeEventListener<K extends keyof HTMLSulaWorkbenchMenuElementEventMap>(type: K, listener: (this: HTMLSulaWorkbenchMenuElement, ev: SulaWorkbenchMenuCustomEvent<HTMLSulaWorkbenchMenuElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
1672
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1673
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1674
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
1675
+ }
1676
+ var HTMLSulaWorkbenchMenuElement: {
1677
+ prototype: HTMLSulaWorkbenchMenuElement;
1678
+ new (): HTMLSulaWorkbenchMenuElement;
1679
+ };
1537
1680
  interface HTMLElementTagNameMap {
1538
1681
  "sula-avatar": HTMLSulaAvatarElement;
1539
1682
  "sula-badge": HTMLSulaBadgeElement;
@@ -1549,6 +1692,7 @@ declare global {
1549
1692
  "sula-menu": HTMLSulaMenuElement;
1550
1693
  "sula-menu-select-list": HTMLSulaMenuSelectListElement;
1551
1694
  "sula-modal": HTMLSulaModalElement;
1695
+ "sula-profile-menu": HTMLSulaProfileMenuElement;
1552
1696
  "sula-progress-bar": HTMLSulaProgressBarElement;
1553
1697
  "sula-radio-button": HTMLSulaRadioButtonElement;
1554
1698
  "sula-search-bar": HTMLSulaSearchBarElement;
@@ -1569,6 +1713,7 @@ declare global {
1569
1713
  "sula-toast-stack": HTMLSulaToastStackElement;
1570
1714
  "sula-toggle": HTMLSulaToggleElement;
1571
1715
  "sula-tooltip": HTMLSulaTooltipElement;
1716
+ "sula-workbench-menu": HTMLSulaWorkbenchMenuElement;
1572
1717
  }
1573
1718
  }
1574
1719
  declare namespace LocalJSX {
@@ -2162,6 +2307,30 @@ declare namespace LocalJSX {
2162
2307
  */
2163
2308
  "type"?: SulaModalType;
2164
2309
  }
2310
+ /**
2311
+ * Profile card with the logged user and a configurable list of options.
2312
+ * It has no positioning of its own: place it inside a popover, dropdown or panel.
2313
+ * The component only emits events: what each option does is up to the host application.
2314
+ */
2315
+ interface SulaProfileMenu {
2316
+ /**
2317
+ * Options of the list. Use `divider` for a separator and `hasSwitch` + `active` for a toggle row.
2318
+ * @default []
2319
+ */
2320
+ "items"?: SulaProfileMenuItem[];
2321
+ /**
2322
+ * Emitted when an option without switch is clicked
2323
+ */
2324
+ "onItemClicked"?: (event: SulaProfileMenuCustomEvent<SulaProfileMenuItem>) => void;
2325
+ /**
2326
+ * Emitted when the switch of an option changes
2327
+ */
2328
+ "onSwitchChanged"?: (event: SulaProfileMenuCustomEvent<SulaProfileMenuSwitchChange>) => void;
2329
+ /**
2330
+ * Logged user. Without a photo, the initials are shown.
2331
+ */
2332
+ "user"?: SulaProfileMenuUser;
2333
+ }
2165
2334
  interface SulaProgressBar {
2166
2335
  /**
2167
2336
  * The style of the progress bar.
@@ -2704,6 +2873,96 @@ declare namespace LocalJSX {
2704
2873
  */
2705
2874
  "trigger"?: SulaTooltipTrigger;
2706
2875
  }
2876
+ /**
2877
+ * Navigation menu that combines an inline expandable tree with a drill-down panel.
2878
+ * Levels above `drilldownLevel` expand in place, as in `sula-menu`. Items at or below
2879
+ * that level with children open a single-level panel with a breadcrumb trail.
2880
+ * @cssprop --sula-menu-width - Width of the expanded menu. Defaults to 256px.
2881
+ * @cssprop --sula-menu-collapsed-width - Width of the collapsed menu. Defaults to 88px.
2882
+ */
2883
+ interface SulaWorkbenchMenu {
2884
+ /**
2885
+ * Icon used for items without `icon` or `image`. Use an empty string to show no icon.
2886
+ * @default 'ph ph-dot-outline'
2887
+ */
2888
+ "defaultIcon"?: string;
2889
+ /**
2890
+ * Density applied to menu items.
2891
+ * @default SulaMenuDensity.Default
2892
+ */
2893
+ "density"?: SulaMenuDensity;
2894
+ /**
2895
+ * Controls the drill-down from the host: ids from the root to the item whose children are shown. An empty array shows the tree (leaves the drill-down). Leave it undefined to let only user clicks navigate.
2896
+ */
2897
+ "drillPath"?: string[];
2898
+ /**
2899
+ * Depth (1-based) from which items with children open a drill-down panel instead of expanding in place. With the default of 3, the first two levels expand inline and deeper branches drill down.
2900
+ * @default 3
2901
+ */
2902
+ "drilldownLevel"?: number;
2903
+ /**
2904
+ * Menu image
2905
+ * @default ''
2906
+ */
2907
+ "image"?: string;
2908
+ /**
2909
+ * Menu items. Each item may use `icon` (icon font class) or `image` (URL or data URI of an image or SVG).
2910
+ * @default []
2911
+ */
2912
+ "items"?: SulaWorkbenchMenuItem[];
2913
+ /**
2914
+ * Overflow behavior for item labels.
2915
+ * @default SulaMenuLabelOverflow.Wrap
2916
+ */
2917
+ "labelOverflow"?: SulaMenuLabelOverflow;
2918
+ /**
2919
+ * Menu title
2920
+ * @default ''
2921
+ */
2922
+ "menuTitle"?: string;
2923
+ /**
2924
+ * Emitted when any item is clicked
2925
+ */
2926
+ "onItemClicked"?: (event: SulaWorkbenchMenuCustomEvent<SulaWorkbenchMenuItem>) => void;
2927
+ /**
2928
+ * Emitted when a leaf item is selected
2929
+ */
2930
+ "onItemSelected"?: (event: SulaWorkbenchMenuCustomEvent<SulaWorkbenchMenuItem>) => void;
2931
+ /**
2932
+ * Emitted when the drill-down level changes, with the ids from the root to the level shown (empty at the root)
2933
+ */
2934
+ "onLevelChanged"?: (event: SulaWorkbenchMenuCustomEvent<SulaWorkbenchMenuPath>) => void;
2935
+ /**
2936
+ * Emitted when the menu is toggled between collapsed and expanded states True: Menu is expanded False: Menu is collapsed
2937
+ */
2938
+ "onMenuToggled"?: (event: SulaWorkbenchMenuCustomEvent<boolean>) => void;
2939
+ /**
2940
+ * Emitted when the user area is clicked. Call `preventDefault()` to keep the profile popover closed.
2941
+ */
2942
+ "onProfileClicked"?: (event: SulaWorkbenchMenuCustomEvent<SulaWorkbenchMenuUser>) => void;
2943
+ /**
2944
+ * Emitted when a profile popover option without switch is clicked. The popover closes.
2945
+ */
2946
+ "onProfileItemClicked"?: (event: SulaWorkbenchMenuCustomEvent<SulaProfileMenuItem>) => void;
2947
+ /**
2948
+ * Emitted when the switch of a profile popover option changes. The popover stays open.
2949
+ */
2950
+ "onProfileSwitchChanged"?: (event: SulaWorkbenchMenuCustomEvent<SulaProfileMenuSwitchChange>) => void;
2951
+ /**
2952
+ * Options of the profile popover. Use `divider` for a separator and `hasSwitch` + `active` for a toggle row.
2953
+ * @default []
2954
+ */
2955
+ "profileItems"?: SulaProfileMenuItem[];
2956
+ /**
2957
+ * Logged user shown at the bottom of the menu. Without a photo, the initials are shown.
2958
+ */
2959
+ "user"?: SulaWorkbenchMenuUser;
2960
+ /**
2961
+ * Menu width in expanded state. Use a CSS length that does not depend on the host width, for example: 256px, 20rem or clamp(16rem, 25vw, 24rem).
2962
+ * @default ''
2963
+ */
2964
+ "width"?: string;
2965
+ }
2707
2966
  interface IntrinsicElements {
2708
2967
  "sula-avatar": SulaAvatar;
2709
2968
  "sula-badge": SulaBadge;
@@ -2719,6 +2978,7 @@ declare namespace LocalJSX {
2719
2978
  "sula-menu": SulaMenu;
2720
2979
  "sula-menu-select-list": SulaMenuSelectList;
2721
2980
  "sula-modal": SulaModal;
2981
+ "sula-profile-menu": SulaProfileMenu;
2722
2982
  "sula-progress-bar": SulaProgressBar;
2723
2983
  "sula-radio-button": SulaRadioButton;
2724
2984
  "sula-search-bar": SulaSearchBar;
@@ -2739,6 +2999,7 @@ declare namespace LocalJSX {
2739
2999
  "sula-toast-stack": SulaToastStack;
2740
3000
  "sula-toggle": SulaToggle;
2741
3001
  "sula-tooltip": SulaTooltip;
3002
+ "sula-workbench-menu": SulaWorkbenchMenu;
2742
3003
  }
2743
3004
  }
2744
3005
  export { LocalJSX as JSX };
@@ -2768,6 +3029,12 @@ declare module "@stencil/core" {
2768
3029
  "sula-menu": LocalJSX.SulaMenu & JSXBase.HTMLAttributes<HTMLSulaMenuElement>;
2769
3030
  "sula-menu-select-list": LocalJSX.SulaMenuSelectList & JSXBase.HTMLAttributes<HTMLSulaMenuSelectListElement>;
2770
3031
  "sula-modal": LocalJSX.SulaModal & JSXBase.HTMLAttributes<HTMLSulaModalElement>;
3032
+ /**
3033
+ * Profile card with the logged user and a configurable list of options.
3034
+ * It has no positioning of its own: place it inside a popover, dropdown or panel.
3035
+ * The component only emits events: what each option does is up to the host application.
3036
+ */
3037
+ "sula-profile-menu": LocalJSX.SulaProfileMenu & JSXBase.HTMLAttributes<HTMLSulaProfileMenuElement>;
2771
3038
  "sula-progress-bar": LocalJSX.SulaProgressBar & JSXBase.HTMLAttributes<HTMLSulaProgressBarElement>;
2772
3039
  "sula-radio-button": LocalJSX.SulaRadioButton & JSXBase.HTMLAttributes<HTMLSulaRadioButtonElement>;
2773
3040
  "sula-search-bar": LocalJSX.SulaSearchBar & JSXBase.HTMLAttributes<HTMLSulaSearchBarElement>;
@@ -2791,6 +3058,14 @@ declare module "@stencil/core" {
2791
3058
  "sula-toast-stack": LocalJSX.SulaToastStack & JSXBase.HTMLAttributes<HTMLSulaToastStackElement>;
2792
3059
  "sula-toggle": LocalJSX.SulaToggle & JSXBase.HTMLAttributes<HTMLSulaToggleElement>;
2793
3060
  "sula-tooltip": LocalJSX.SulaTooltip & JSXBase.HTMLAttributes<HTMLSulaTooltipElement>;
3061
+ /**
3062
+ * Navigation menu that combines an inline expandable tree with a drill-down panel.
3063
+ * Levels above `drilldownLevel` expand in place, as in `sula-menu`. Items at or below
3064
+ * that level with children open a single-level panel with a breadcrumb trail.
3065
+ * @cssprop --sula-menu-width - Width of the expanded menu. Defaults to 256px.
3066
+ * @cssprop --sula-menu-collapsed-width - Width of the collapsed menu. Defaults to 88px.
3067
+ */
3068
+ "sula-workbench-menu": LocalJSX.SulaWorkbenchMenu & JSXBase.HTMLAttributes<HTMLSulaWorkbenchMenuElement>;
2794
3069
  }
2795
3070
  }
2796
3071
  }
@@ -12,5 +12,6 @@ export { SulaMenuDensity, SulaMenuLabelOverflow } from './components/sula-menu/m
12
12
  export { SulaCalendarStatus } from './components/sula-calendar/model/sula-calendar.model';
13
13
  export type { SulaCalendarDay, SulaCalendarWeekday, SulaCalendarMonthChange, SulaCalendarRange } from './components/sula-calendar/model/sula-calendar.model';
14
14
  export type { SulaToggleEvent } from './components/sula-toggle/model/sula-toggle.model';
15
+ export type { SulaProfileMenuItem, SulaProfileMenuSwitchChange, SulaProfileMenuUser } from './components/sula-profile-menu/model/sula-profile-menu.model';
15
16
  export { SulaToastType } from './components/sula-toast/model/sula-toast.model';
16
17
  export type { SulaToastItem, SulaToastAnnouncement, SulaToastDismissReason, SulaToastDismissEvent, SulaToastStackDismissEvent, SulaToastStackActionEvent, } from './components/sula-toast/model/sula-toast.model';
@@ -1,4 +1,6 @@
1
- export { b as SulaCalendarStatus, S as SulaMenuDensity, a as SulaMenuLabelOverflow } from "./p-BbsLJDfp.js";
1
+ export { S as SulaMenuDensity, a as SulaMenuLabelOverflow } from "./p-Cs9RR1ZV.js";
2
+
3
+ export { S as SulaCalendarStatus } from "./p-Cp_4qTxj.js";
2
4
 
3
5
  export { S as SulaToastType } from "./p-t0X4JATS.js";
4
6
  //# sourceMappingURL=index.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}