@sula-tech/webcomponents 0.7.6 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/dist/cjs/{index-Bbryl0vg.js → index-LR6yFDX7.js} +16 -2
  2. package/dist/cjs/index-LR6yFDX7.js.map +1 -0
  3. package/dist/cjs/loader.cjs.js +2 -2
  4. package/dist/cjs/{sula-avatar_18.cjs.entry.js → sula-avatar_19.cjs.entry.js} +612 -45
  5. package/dist/cjs/sula-avatar_19.cjs.entry.js.map +1 -0
  6. package/dist/cjs/webcomponents.cjs.js +2 -2
  7. package/dist/collection/collection-manifest.json +1 -0
  8. package/dist/collection/components/sula-button/sula-button.css +1 -1
  9. package/dist/collection/components/sula-chip/sula-chip.css +1 -1
  10. package/dist/collection/components/sula-dropdown/sula-dropdown.css +1 -1
  11. package/dist/collection/components/sula-dropdown/sula-dropdown.js +74 -9
  12. package/dist/collection/components/sula-dropdown/sula-dropdown.js.map +1 -1
  13. package/dist/collection/components/sula-dropdown/sula-dropdown.stories.js +53 -0
  14. package/dist/collection/components/sula-dropdown/sula-dropdown.stories.js.map +1 -1
  15. package/dist/collection/components/sula-icon/sula-icon.css +1 -1
  16. package/dist/collection/components/sula-icon/sula-icon.js +1 -1
  17. package/dist/collection/components/sula-loader/sula-loader.css +1 -1
  18. package/dist/collection/components/sula-loader/sula-loader.js +1 -1
  19. package/dist/collection/components/sula-menu-select-list/sula-menu-select-list.css +1 -1
  20. package/dist/collection/components/sula-menu-select-list/sula-menu-select-list.js +33 -2
  21. package/dist/collection/components/sula-menu-select-list/sula-menu-select-list.js.map +1 -1
  22. package/dist/collection/components/sula-modal/model/sula-modal.model.js +16 -0
  23. package/dist/collection/components/sula-modal/model/sula-modal.model.js.map +1 -0
  24. package/dist/collection/components/sula-modal/sula-modal.css +1 -0
  25. package/dist/collection/components/sula-modal/sula-modal.js +558 -0
  26. package/dist/collection/components/sula-modal/sula-modal.js.map +1 -0
  27. package/dist/collection/components/sula-modal/sula-modal.stories.js +193 -0
  28. package/dist/collection/components/sula-modal/sula-modal.stories.js.map +1 -0
  29. package/dist/collection/components/sula-progress-bar/sula-progress-bar.js +2 -2
  30. package/dist/collection/components/sula-radio-button/sula-radio-button.js +2 -2
  31. package/dist/collection/components/sula-search-bar/sula-search-bar.js +2 -2
  32. package/dist/collection/components/sula-switch/sula-switch.js +4 -4
  33. package/dist/collection/components/sula-tag/sula-tag.js +3 -3
  34. package/dist/collection/components/sula-textarea/sula-textarea.js +6 -6
  35. package/dist/collection/components/sula-textfield/sula-textfield.js +31 -2
  36. package/dist/collection/components/sula-textfield/sula-textfield.js.map +1 -1
  37. package/dist/collection/components/sula-textfield/sula-textfield.stories.js +22 -0
  38. package/dist/collection/components/sula-textfield/sula-textfield.stories.js.map +1 -1
  39. package/dist/collection/components/sula-tiles/sula-tiles.js +1 -1
  40. package/dist/collection/components/sula-timeline-list/sula-timeline-list.js +1 -1
  41. package/dist/components/index.js +19 -0
  42. package/dist/components/index.js.map +1 -1
  43. package/dist/components/p-B85MJLTf.js +8 -0
  44. package/dist/components/p-B85MJLTf.js.map +1 -0
  45. package/dist/components/p-BhxK9El6.js +231 -0
  46. package/dist/components/p-BhxK9El6.js.map +1 -0
  47. package/dist/components/{p-DoGc7jLn.js → p-CyIObO0v.js} +5 -8
  48. package/dist/components/p-CyIObO0v.js.map +1 -0
  49. package/dist/components/{p-BNtk_d_S.js → p-DvWN7hVP.js} +14 -6
  50. package/dist/components/p-DvWN7hVP.js.map +1 -0
  51. package/dist/components/{p-BrY8WoEl.js → p-ff6chV3i.js} +4 -4
  52. package/dist/components/{p-BrY8WoEl.js.map → p-ff6chV3i.js.map} +1 -1
  53. package/dist/components/sula-avatar.js +1 -1
  54. package/dist/components/sula-badge.js +1 -1
  55. package/dist/components/sula-button.js +1 -226
  56. package/dist/components/sula-button.js.map +1 -1
  57. package/dist/components/sula-checkbox.js +1 -1
  58. package/dist/components/sula-chip.js +3 -3
  59. package/dist/components/sula-chip.js.map +1 -1
  60. package/dist/components/sula-dropdown.js +60 -14
  61. package/dist/components/sula-dropdown.js.map +1 -1
  62. package/dist/components/sula-icon.js +1 -1
  63. package/dist/components/sula-loader.js +1 -1
  64. package/dist/components/sula-menu-select-list.js +1 -1
  65. package/dist/components/sula-modal.d.ts +11 -0
  66. package/dist/components/sula-modal.js +332 -0
  67. package/dist/components/sula-modal.js.map +1 -0
  68. package/dist/components/sula-progress-bar.js +3 -3
  69. package/dist/components/sula-radio-button.js +2 -2
  70. package/dist/components/sula-search-bar.js +3 -3
  71. package/dist/components/sula-switch.js +4 -4
  72. package/dist/components/sula-tag.js +4 -4
  73. package/dist/components/sula-textarea.js +6 -6
  74. package/dist/components/sula-textfield.js +249 -3
  75. package/dist/components/sula-textfield.js.map +1 -1
  76. package/dist/components/sula-tiles.js +2 -2
  77. package/dist/components/sula-timeline-list.js +2 -2
  78. package/dist/esm/{index-or7qTZgT.js → index-CrFclBiX.js} +16 -2
  79. package/dist/esm/index-CrFclBiX.js.map +1 -0
  80. package/dist/esm/loader.js +3 -3
  81. package/dist/esm/{sula-avatar_18.entry.js → sula-avatar_19.entry.js} +612 -46
  82. package/dist/esm/sula-avatar_19.entry.js.map +1 -0
  83. package/dist/esm/webcomponents.js +3 -3
  84. package/dist/types/components/sula-dropdown/sula-dropdown.d.ts +11 -0
  85. package/dist/types/components/sula-dropdown/sula-dropdown.stories.d.ts +10 -0
  86. package/dist/types/components/sula-menu-select-list/sula-menu-select-list.d.ts +4 -0
  87. package/dist/types/components/sula-modal/model/sula-modal.model.d.ts +13 -0
  88. package/dist/types/components/sula-modal/sula-modal.d.ts +94 -0
  89. package/dist/types/components/sula-modal/sula-modal.stories.d.ts +83 -0
  90. package/dist/types/components/sula-textfield/sula-textfield.d.ts +7 -0
  91. package/dist/types/components/sula-textfield/sula-textfield.stories.d.ts +9 -0
  92. package/dist/types/components.d.ts +178 -0
  93. package/dist/webcomponents/{p-or7qTZgT.js → p-CrFclBiX.js} +28 -16
  94. package/dist/webcomponents/p-CrFclBiX.js.map +1 -0
  95. package/dist/webcomponents/{p-af46ad3b.entry.js → p-e4fa59d5.entry.js} +854 -285
  96. package/dist/webcomponents/p-e4fa59d5.entry.js.map +1 -0
  97. package/dist/webcomponents/webcomponents.esm.js +42 -20
  98. package/package.json +4 -4
  99. package/dist/cjs/index-Bbryl0vg.js.map +0 -1
  100. package/dist/cjs/sula-avatar_18.cjs.entry.js.map +0 -1
  101. package/dist/components/p-BNtk_d_S.js.map +0 -1
  102. package/dist/components/p-DoGc7jLn.js.map +0 -1
  103. package/dist/esm/index-or7qTZgT.js.map +0 -1
  104. package/dist/esm/sula-avatar_18.entry.js.map +0 -1
  105. package/dist/webcomponents/p-af46ad3b.entry.js.map +0 -1
  106. package/dist/webcomponents/p-or7qTZgT.js.map +0 -1
@@ -1,5 +1,5 @@
1
- import { p as promiseResolve, g as globalScripts, b as bootstrapLazy } from './index-or7qTZgT.js';
2
- export { s as setNonce } from './index-or7qTZgT.js';
1
+ import { p as promiseResolve, g as globalScripts, b as bootstrapLazy } from './index-CrFclBiX.js';
2
+ export { s as setNonce } from './index-CrFclBiX.js';
3
3
 
4
4
  /*
5
5
  Stencil Client Patch Browser v4.35.1 | MIT Licensed | https://stenciljs.com
@@ -16,7 +16,7 @@ var patchBrowser = () => {
16
16
 
17
17
  patchBrowser().then(async (options) => {
18
18
  await globalScripts();
19
- return bootstrapLazy([["sula-avatar_18",[[1,"sula-button",{"text":[1025],"icon":[1025],"leftIcon":[1025,"left-icon"],"rightIcon":[1025,"right-icon"],"appearance":[1025],"type":[1025],"size":[1025],"status":[1025],"loading":[1028],"buttonDisabled":[1028,"button-disabled"],"fullWidth":[1028,"full-width"]}],[1,"sula-chip",{"text":[1025],"appearance":[1025],"disabled":[1028],"items":[1040],"isFocused":[32],"showItems":[32]},[[4,"click","handleDocumentClick"]]],[1,"sula-dropdown",{"label":[1025],"disabled":[1028],"items":[1040],"value":[1040],"selectedItem":[32],"showItems":[32],"isFocused":[32]},[[4,"click","handleDocumentClick"]],{"value":["handleValueChange"]}],[1,"sula-avatar",{"size":[1],"imageUrl":[1,"image-url"],"text":[1],"icon":[1]}],[1,"sula-badge",{"status":[1025],"size":[1025],"type":[1025],"text":[1025],"icon":[1025],"hasSlotContent":[32]}],[1,"sula-checkbox",{"type":[1025],"label":[1025],"subTitle":[1025,"sub-title"],"disabled":[1028],"checked":[1028],"isFocus":[32]}],[1,"sula-progress-bar",{"appearance":[1025],"state":[1025],"topLabel":[1025,"top-label"],"bottomLabel":[1025,"bottom-label"],"progress":[1026],"showProgress":[1028,"show-progress"]},null,{"progress":["validateProgress"]}],[1,"sula-search-bar",{"value":[1025],"searchBarStyle":[1025,"search-bar-style"],"placeholder":[1025],"leftIcon":[1025,"left-icon"],"rightIcon":[1025,"right-icon"],"isFocused":[32],"textValue":[32]}],[1,"sula-tag",{"label":[1025],"icon":[1025],"iconStatus":[1025,"icon-status"],"size":[1025],"appearance":[1025],"fontWeight":[1025,"font-weight"]}],[1,"sula-textfield",{"value":[1025],"type":[1],"status":[1025],"label":[1],"placeholder":[1],"disabled":[1028],"helpText":[1,"help-text"],"maxLength":[2,"max-length"],"icon":[1],"inputIsOpen":[32],"textValue":[32],"showPassword":[32],"inputIsFocused":[32]},[[4,"click","handleClick"]],{"value":["watchValueHandler"]}],[1,"sula-tiles",{"type":[1],"size":[1],"ellipsis":[4],"icon":[1],"text":[1],"subText":[1,"sub-text"],"disabled":[4]}],[1,"sula-timeline-list",{"sulaTimelineList":[1040,"sula-timeline-list"]}],[1,"sula-radio-button",{"checked":[1028],"label":[1025],"disabled":[1028],"radioIsFocus":[32]}],[1,"sula-switch",{"type":[1025],"active":[1028],"disabled":[1028],"label":[1025],"subTitle":[1025,"sub-title"],"isFocus":[32]}],[1,"sula-textarea",{"value":[1025],"status":[1025],"label":[1],"placeholder":[1],"disabled":[1028],"helpText":[1,"help-text"],"maxLength":[2,"max-length"],"rows":[2],"isActive":[32],"textValue":[32],"textareaIsFocused":[32],"labelPadding":[32]},[[4,"click","handleClick"]],{"value":["watchValueHandler"]}],[1,"sula-loader",{"size":[1],"animationInstance":[32]}],[1,"sula-menu-select-list",{"items":[1040],"fullWidth":[4,"full-width"]}],[0,"sula-icon",{"icon":[1],"customClass":[1,"custom-class"]}]]]], options);
19
+ return bootstrapLazy([["sula-avatar_19",[[1,"sula-modal",{"opened":[1028],"blockBodyScroll":[1028,"block-body-scroll"],"closeOnClickOutside":[1028,"close-on-click-outside"],"type":[1],"headerIcon":[1,"header-icon"],"modalTitle":[1,"modal-title"],"promoImage":[1,"promo-image"],"subTitle":[1,"sub-title"],"primaryButtonText":[1,"primary-button-text"],"secondaryButtonText":[1,"secondary-button-text"],"slotOverflow":[1,"slot-overflow"],"isAnimating":[32],"shouldRender":[32]},null,{"opened":["handleOpenedChange"]}],[1,"sula-chip",{"text":[1025],"appearance":[1025],"disabled":[1028],"items":[1040],"isFocused":[32],"showItems":[32]},[[4,"click","handleDocumentClick"]]],[1,"sula-dropdown",{"label":[1025],"disabled":[1028],"items":[1040],"value":[1040],"searchable":[516],"selectedItem":[32],"showItems":[32],"isFocused":[32],"searchTerm":[32],"filteredItems":[32]},[[4,"click","handleDocumentClick"]],{"value":["handleValueChange"],"showItems":["handleShowItemsChange"]}],[1,"sula-avatar",{"size":[1],"imageUrl":[1,"image-url"],"text":[1],"icon":[1]}],[1,"sula-badge",{"status":[1025],"size":[1025],"type":[1025],"text":[1025],"icon":[1025],"hasSlotContent":[32]}],[1,"sula-checkbox",{"type":[1025],"label":[1025],"subTitle":[1025,"sub-title"],"disabled":[1028],"checked":[1028],"isFocus":[32]}],[1,"sula-progress-bar",{"appearance":[1025],"state":[1025],"topLabel":[1025,"top-label"],"bottomLabel":[1025,"bottom-label"],"progress":[1026],"showProgress":[1028,"show-progress"]},null,{"progress":["validateProgress"]}],[1,"sula-search-bar",{"value":[1025],"searchBarStyle":[1025,"search-bar-style"],"placeholder":[1025],"leftIcon":[1025,"left-icon"],"rightIcon":[1025,"right-icon"],"isFocused":[32],"textValue":[32]}],[1,"sula-tag",{"label":[1025],"icon":[1025],"iconStatus":[1025,"icon-status"],"size":[1025],"appearance":[1025],"fontWeight":[1025,"font-weight"]}],[1,"sula-textfield",{"value":[1025],"type":[1],"status":[1025],"label":[1],"placeholder":[1],"disabled":[1028],"helpText":[1,"help-text"],"maxLength":[2,"max-length"],"icon":[1],"maskPattern":[1,"mask-pattern"],"inputIsOpen":[32],"textValue":[32],"showPassword":[32],"inputIsFocused":[32]},[[4,"click","handleClick"]],{"value":["watchValueHandler"]}],[1,"sula-tiles",{"type":[1],"size":[1],"ellipsis":[4],"icon":[1],"text":[1],"subText":[1,"sub-text"],"disabled":[4]}],[1,"sula-timeline-list",{"sulaTimelineList":[1040,"sula-timeline-list"]}],[1,"sula-radio-button",{"checked":[1028],"label":[1025],"disabled":[1028],"radioIsFocus":[32]}],[1,"sula-switch",{"type":[1025],"active":[1028],"disabled":[1028],"label":[1025],"subTitle":[1025,"sub-title"],"isFocus":[32]}],[1,"sula-textarea",{"value":[1025],"status":[1025],"label":[1],"placeholder":[1],"disabled":[1028],"helpText":[1,"help-text"],"maxLength":[2,"max-length"],"rows":[2],"isActive":[32],"textValue":[32],"textareaIsFocused":[32],"labelPadding":[32]},[[4,"click","handleClick"]],{"value":["watchValueHandler"]}],[1,"sula-button",{"text":[1025],"icon":[1025],"leftIcon":[1025,"left-icon"],"rightIcon":[1025,"right-icon"],"appearance":[1025],"type":[1025],"size":[1025],"status":[1025],"loading":[1028],"buttonDisabled":[1028,"button-disabled"],"fullWidth":[1028,"full-width"]}],[1,"sula-loader",{"size":[1],"animationInstance":[32]}],[1,"sula-menu-select-list",{"items":[1040],"fullWidth":[4,"full-width"],"selectedValue":[16,"selected-value"]}],[0,"sula-icon",{"icon":[1],"customClass":[1,"custom-class"]}]]]], options);
20
20
  });
21
21
  //# sourceMappingURL=webcomponents.js.map
22
22
 
@@ -17,6 +17,10 @@ export declare class SulaDropdown {
17
17
  * Value for dropdown
18
18
  */
19
19
  value?: SulaMenuListItem;
20
+ /**
21
+ * Enable search/filter functionality in dropdown
22
+ */
23
+ searchable?: boolean;
20
24
  /**
21
25
  * Event emitted when dropdown is clicked
22
26
  */
@@ -36,12 +40,19 @@ export declare class SulaDropdown {
36
40
  selectedItem?: SulaMenuListItem;
37
41
  showItems: boolean;
38
42
  isFocused: boolean;
43
+ searchTerm: string;
44
+ filteredItems: SulaMenuListItem[];
39
45
  node?: HTMLElement;
46
+ searchInputRef?: HTMLInputElement;
40
47
  handleValueChange(): void;
48
+ handleShowItemsChange(newValue: boolean): void;
41
49
  handleDocumentClick(event: Event): void;
42
50
  componentWillLoad(): void;
51
+ componentDidRender(): void;
43
52
  handleClick: () => void;
44
53
  handleItemSelected: (item: SulaMenuSelectListCustomEvent<SulaMenuListItem>) => void;
54
+ filterItems: () => SulaMenuListItem[];
55
+ handleSearchInput: (event: Event) => void;
45
56
  getIconClass(): "text-text-primary" | "text-icon-disabled";
46
57
  handleFocus: () => void;
47
58
  handleBlur: () => void;
@@ -34,6 +34,14 @@ declare const _default: {
34
34
  required: boolean;
35
35
  };
36
36
  };
37
+ searchable: {
38
+ control: string;
39
+ defaultValue: boolean;
40
+ description: string;
41
+ type: {
42
+ required: boolean;
43
+ };
44
+ };
37
45
  dropdownClicked: {
38
46
  action: string;
39
47
  description: string;
@@ -66,3 +74,5 @@ export declare const Disabled: any;
66
74
  export declare const DisabledWithValue: any;
67
75
  export declare const EmptyItems: any;
68
76
  export declare const LongItemsList: any;
77
+ export declare const Searchable: any;
78
+ export declare const SearchableWithSelectedValue: any;
@@ -9,6 +9,10 @@ export declare class SulaMenuSelectList {
9
9
  * Menu is full width
10
10
  */
11
11
  fullWidth: boolean;
12
+ /**
13
+ * Selected value
14
+ */
15
+ selectedValue?: SulaMenuListItem;
12
16
  /**
13
17
  * Event emitted when item is selected
14
18
  */
@@ -0,0 +1,13 @@
1
+ export declare enum SulaModalType {
2
+ Alert = "alert",
3
+ Custom = "custom",
4
+ Promo = "promo",
5
+ List = "list",
6
+ CustomFull = "custom-full",
7
+ Side = "side",
8
+ SpecialSide = "special-side"
9
+ }
10
+ export declare enum SulaModalSlotOverflow {
11
+ Auto = "auto",
12
+ Hidden = "hidden"
13
+ }
@@ -0,0 +1,94 @@
1
+ import { EventEmitter } from '../../stencil-public-runtime';
2
+ import { SulaModalSlotOverflow, SulaModalType } from './model/sula-modal.model';
3
+ export declare class SulaModal {
4
+ /**
5
+ * Is modal opened
6
+ */
7
+ opened: boolean;
8
+ /**
9
+ * Block body scroll when modal is opened
10
+ */
11
+ blockBodyScroll: boolean;
12
+ /**
13
+ * Close modal when clicking outside
14
+ */
15
+ closeOnClickOutside: boolean;
16
+ /**
17
+ * Type of the modal
18
+ */
19
+ type: SulaModalType;
20
+ /**
21
+ * Icon of the modal header
22
+ */
23
+ headerIcon: string;
24
+ /**
25
+ * Title of the modal
26
+ */
27
+ modalTitle: string;
28
+ /**
29
+ * Promotional image URL for promo type modal
30
+ */
31
+ promoImage: string;
32
+ /**
33
+ * Subtitle of the modal
34
+ */
35
+ subTitle: string;
36
+ /**
37
+ * Primary button text
38
+ */
39
+ primaryButtonText: string;
40
+ /**
41
+ * Secondary button text
42
+ */
43
+ secondaryButtonText: string;
44
+ /**
45
+ * Slot overflow behavior
46
+ */
47
+ slotOverflow: SulaModalSlotOverflow;
48
+ /**
49
+ * Event emitted when the modal is closed
50
+ */
51
+ modalClosed: EventEmitter<void>;
52
+ /**
53
+ * Event emitted when the primary button is clicked
54
+ */
55
+ primaryButtonClicked: EventEmitter<void>;
56
+ /**
57
+ * Event emitted when the secondary button is clicked
58
+ */
59
+ secondaryButtonClicked: EventEmitter<void>;
60
+ hostElement: HTMLElement;
61
+ isAnimating: boolean;
62
+ shouldRender: boolean;
63
+ private closeTimeout;
64
+ handleOpenedChange(newValue: boolean): void;
65
+ componentWillLoad(): void;
66
+ disconnectedCallback(): void;
67
+ handleParentOverflow(): void;
68
+ closeModal(): void;
69
+ handleClickOutside(event: MouseEvent): void;
70
+ handlePrimaryButtonClick(): void;
71
+ handleSecondaryButtonClick(): void;
72
+ isAlertOrCustomOrPromo(): boolean;
73
+ isListOrCustomFull(): boolean;
74
+ isSideModal(): boolean;
75
+ isPromoOrSpecialSide(): boolean;
76
+ hasSlotContent(): boolean;
77
+ hasButtons(): boolean;
78
+ getOverlayClasses(): Record<string, boolean>;
79
+ getWrapperClasses(): Record<string, boolean>;
80
+ getContentClasses(): Record<string, boolean>;
81
+ getHeaderClasses(): Record<string, boolean>;
82
+ getCloseButtonClasses(): Record<string, boolean>;
83
+ getTitleContainerClasses(): Record<string, boolean>;
84
+ getTitleClasses(): Record<string, boolean>;
85
+ getSlotClasses(): Record<string, boolean>;
86
+ getButtonContainerClasses(): Record<string, boolean>;
87
+ renderPromoImage(): any;
88
+ renderHeaderIcon(): any;
89
+ renderCloseButton(): any;
90
+ renderTitleSection(): any;
91
+ renderSlot(): any;
92
+ renderButtons(): any;
93
+ render(): any;
94
+ }
@@ -0,0 +1,83 @@
1
+ import { SulaModalType, SulaModalSlotOverflow } from './model/sula-modal.model';
2
+ declare const _default: {
3
+ title: string;
4
+ tags: string[];
5
+ argTypes: {
6
+ opened: {
7
+ control: string;
8
+ description: string;
9
+ };
10
+ type: {
11
+ control: {
12
+ type: string;
13
+ };
14
+ options: SulaModalType[];
15
+ };
16
+ modalTitle: {
17
+ control: string;
18
+ description: string;
19
+ };
20
+ subTitle: {
21
+ control: string;
22
+ description: string;
23
+ };
24
+ headerIcon: {
25
+ control: string;
26
+ description: string;
27
+ };
28
+ promoImage: {
29
+ control: string;
30
+ description: string;
31
+ };
32
+ primaryButtonText: {
33
+ control: string;
34
+ description: string;
35
+ };
36
+ secondaryButtonText: {
37
+ control: string;
38
+ description: string;
39
+ };
40
+ slotOverflow: {
41
+ control: {
42
+ type: string;
43
+ };
44
+ options: SulaModalSlotOverflow[];
45
+ };
46
+ blockBodyScroll: {
47
+ control: string;
48
+ description: string;
49
+ };
50
+ closeOnClickOutside: {
51
+ control: string;
52
+ description: string;
53
+ };
54
+ modalClosed: {
55
+ action: string;
56
+ description: string;
57
+ };
58
+ primaryButtonClicked: {
59
+ action: string;
60
+ description: string;
61
+ };
62
+ secondaryButtonClicked: {
63
+ action: string;
64
+ description: string;
65
+ };
66
+ };
67
+ parameters: {
68
+ docs: {
69
+ description: {
70
+ component: string;
71
+ };
72
+ };
73
+ };
74
+ };
75
+ export default _default;
76
+ export declare const Playground: any;
77
+ export declare const AlertType: any;
78
+ export declare const PromoType: any;
79
+ export declare const SideType: any;
80
+ export declare const ListType: any;
81
+ export declare const CustomFullType: any;
82
+ export declare const SpecialSideType: any;
83
+ export declare const WithCustomSlot: any;
@@ -41,6 +41,12 @@ export declare class SulaTextfield {
41
41
  * Event emitted when input value changes.
42
42
  */
43
43
  valueChanged: EventEmitter<string>;
44
+ /**
45
+ * The textfield mask pattern
46
+ * The mask pattern should follow the VMasker pattern format
47
+ * More info: https://github.com/vanilla-masker/vanilla-masker?tab=readme-ov-file#custom-pattern
48
+ */
49
+ maskPattern?: string;
44
50
  /**
45
51
  * Event emitted when input is focused.
46
52
  */
@@ -69,6 +75,7 @@ export declare class SulaTextfield {
69
75
  handleBlur: () => void;
70
76
  handleInputFocus: () => void;
71
77
  handleIconClick: (event: MouseEvent) => void;
78
+ handleInputMask(): void;
72
79
  handlePasswordIconClicked(): void;
73
80
  getInputIcon(): string;
74
81
  render(): any;
@@ -41,6 +41,14 @@ declare const _default: {
41
41
  required: boolean;
42
42
  };
43
43
  };
44
+ maskPattern: {
45
+ control: string;
46
+ defaultValue: string;
47
+ description: string;
48
+ type: {
49
+ required: boolean;
50
+ };
51
+ };
44
52
  placeholder: {
45
53
  control: string;
46
54
  defaultValue: string;
@@ -104,6 +112,7 @@ declare const _default: {
104
112
  };
105
113
  export default _default;
106
114
  export declare const Default: any;
115
+ export declare const WithMask: any;
107
116
  export declare const WithValue: any;
108
117
  export declare const WithHelpText: any;
109
118
  export declare const WithMaxLength: any;
@@ -13,6 +13,7 @@ import { SulaChipAppearance } from "./components/sula-chip/model/sula-chip.model
13
13
  import { SulaMenuListItem } from "./components/sula-menu-select-list/model/sula-menu-select-list.model";
14
14
  import { SulaMenuListItem as SulaMenuListItem1 } from "./components";
15
15
  import { SulaLoaderSize } from "./components/sula-loader/model/sula-loader.model";
16
+ import { SulaModalSlotOverflow, SulaModalType } from "./components/sula-modal/model/sula-modal.model";
16
17
  import { SulaProgressBarAppearance, SulaProgressBarState } from "./components/sula-progress-bar/model/sula-progress-bar.model";
17
18
  import { SulaSearchBarStyle } from "./components/sula-search-bar/model/sula-search.bar-model";
18
19
  import { SulaSwitchType } from "./components/sula-switch/model/sula-switch.model";
@@ -29,6 +30,7 @@ export { SulaChipAppearance } from "./components/sula-chip/model/sula-chip.model
29
30
  export { SulaMenuListItem } from "./components/sula-menu-select-list/model/sula-menu-select-list.model";
30
31
  export { SulaMenuListItem as SulaMenuListItem1 } from "./components";
31
32
  export { SulaLoaderSize } from "./components/sula-loader/model/sula-loader.model";
33
+ export { SulaModalSlotOverflow, SulaModalType } from "./components/sula-modal/model/sula-modal.model";
32
34
  export { SulaProgressBarAppearance, SulaProgressBarState } from "./components/sula-progress-bar/model/sula-progress-bar.model";
33
35
  export { SulaSearchBarStyle } from "./components/sula-search-bar/model/sula-search.bar-model";
34
36
  export { SulaSwitchType } from "./components/sula-switch/model/sula-switch.model";
@@ -199,6 +201,10 @@ export namespace Components {
199
201
  * Dropdown label
200
202
  */
201
203
  "label": string;
204
+ /**
205
+ * Enable search/filter functionality in dropdown
206
+ */
207
+ "searchable"?: boolean;
202
208
  /**
203
209
  * Value for dropdown
204
210
  */
@@ -233,6 +239,67 @@ export namespace Components {
233
239
  * @default []
234
240
  */
235
241
  "items": SulaMenuListItem[];
242
+ /**
243
+ * Selected value
244
+ */
245
+ "selectedValue"?: SulaMenuListItem;
246
+ }
247
+ interface SulaModal {
248
+ /**
249
+ * Block body scroll when modal is opened
250
+ * @default true
251
+ */
252
+ "blockBodyScroll": boolean;
253
+ /**
254
+ * Close modal when clicking outside
255
+ * @default true
256
+ */
257
+ "closeOnClickOutside": boolean;
258
+ /**
259
+ * Icon of the modal header
260
+ * @default ''
261
+ */
262
+ "headerIcon": string;
263
+ /**
264
+ * Title of the modal
265
+ * @default ''
266
+ */
267
+ "modalTitle": string;
268
+ /**
269
+ * Is modal opened
270
+ * @default false
271
+ */
272
+ "opened": boolean;
273
+ /**
274
+ * Primary button text
275
+ * @default ''
276
+ */
277
+ "primaryButtonText": string;
278
+ /**
279
+ * Promotional image URL for promo type modal
280
+ * @default ''
281
+ */
282
+ "promoImage": string;
283
+ /**
284
+ * Secondary button text
285
+ * @default ''
286
+ */
287
+ "secondaryButtonText": string;
288
+ /**
289
+ * Slot overflow behavior
290
+ * @default SulaModalSlotOverflow.Auto
291
+ */
292
+ "slotOverflow": SulaModalSlotOverflow;
293
+ /**
294
+ * Subtitle of the modal
295
+ * @default ''
296
+ */
297
+ "subTitle": string;
298
+ /**
299
+ * Type of the modal
300
+ * @default SulaModalType.Custom
301
+ */
302
+ "type": SulaModalType;
236
303
  }
237
304
  interface SulaProgressBar {
238
305
  /**
@@ -413,6 +480,10 @@ export namespace Components {
413
480
  * The textfield label
414
481
  */
415
482
  "label": string;
483
+ /**
484
+ * The textfield mask pattern The mask pattern should follow the VMasker pattern format More info: https://github.com/vanilla-masker/vanilla-masker?tab=readme-ov-file#custom-pattern
485
+ */
486
+ "maskPattern"?: string;
416
487
  /**
417
488
  * The textfield max length
418
489
  */
@@ -501,6 +572,10 @@ export interface SulaMenuSelectListCustomEvent<T> extends CustomEvent<T> {
501
572
  detail: T;
502
573
  target: HTMLSulaMenuSelectListElement;
503
574
  }
575
+ export interface SulaModalCustomEvent<T> extends CustomEvent<T> {
576
+ detail: T;
577
+ target: HTMLSulaModalElement;
578
+ }
504
579
  export interface SulaRadioButtonCustomEvent<T> extends CustomEvent<T> {
505
580
  detail: T;
506
581
  target: HTMLSulaRadioButtonElement;
@@ -645,6 +720,25 @@ declare global {
645
720
  prototype: HTMLSulaMenuSelectListElement;
646
721
  new (): HTMLSulaMenuSelectListElement;
647
722
  };
723
+ interface HTMLSulaModalElementEventMap {
724
+ "modalClosed": void;
725
+ "primaryButtonClicked": void;
726
+ "secondaryButtonClicked": void;
727
+ }
728
+ interface HTMLSulaModalElement extends Components.SulaModal, HTMLStencilElement {
729
+ addEventListener<K extends keyof HTMLSulaModalElementEventMap>(type: K, listener: (this: HTMLSulaModalElement, ev: SulaModalCustomEvent<HTMLSulaModalElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
730
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
731
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
732
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
733
+ removeEventListener<K extends keyof HTMLSulaModalElementEventMap>(type: K, listener: (this: HTMLSulaModalElement, ev: SulaModalCustomEvent<HTMLSulaModalElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
734
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
735
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
736
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
737
+ }
738
+ var HTMLSulaModalElement: {
739
+ prototype: HTMLSulaModalElement;
740
+ new (): HTMLSulaModalElement;
741
+ };
648
742
  interface HTMLSulaProgressBarElement extends Components.SulaProgressBar, HTMLStencilElement {
649
743
  }
650
744
  var HTMLSulaProgressBarElement: {
@@ -797,6 +891,7 @@ declare global {
797
891
  "sula-icon": HTMLSulaIconElement;
798
892
  "sula-loader": HTMLSulaLoaderElement;
799
893
  "sula-menu-select-list": HTMLSulaMenuSelectListElement;
894
+ "sula-modal": HTMLSulaModalElement;
800
895
  "sula-progress-bar": HTMLSulaProgressBarElement;
801
896
  "sula-radio-button": HTMLSulaRadioButtonElement;
802
897
  "sula-search-bar": HTMLSulaSearchBarElement;
@@ -1011,6 +1106,10 @@ declare namespace LocalJSX {
1011
1106
  * Event emitted when item is selected
1012
1107
  */
1013
1108
  "onMenuItemSelected"?: (event: SulaDropdownCustomEvent<SulaMenuListItem1>) => void;
1109
+ /**
1110
+ * Enable search/filter functionality in dropdown
1111
+ */
1112
+ "searchable"?: boolean;
1014
1113
  /**
1015
1114
  * Value for dropdown
1016
1115
  */
@@ -1049,6 +1148,79 @@ declare namespace LocalJSX {
1049
1148
  * Event emitted when item is selected
1050
1149
  */
1051
1150
  "onItemSelected"?: (event: SulaMenuSelectListCustomEvent<SulaMenuListItem>) => void;
1151
+ /**
1152
+ * Selected value
1153
+ */
1154
+ "selectedValue"?: SulaMenuListItem;
1155
+ }
1156
+ interface SulaModal {
1157
+ /**
1158
+ * Block body scroll when modal is opened
1159
+ * @default true
1160
+ */
1161
+ "blockBodyScroll"?: boolean;
1162
+ /**
1163
+ * Close modal when clicking outside
1164
+ * @default true
1165
+ */
1166
+ "closeOnClickOutside"?: boolean;
1167
+ /**
1168
+ * Icon of the modal header
1169
+ * @default ''
1170
+ */
1171
+ "headerIcon"?: string;
1172
+ /**
1173
+ * Title of the modal
1174
+ * @default ''
1175
+ */
1176
+ "modalTitle"?: string;
1177
+ /**
1178
+ * Event emitted when the modal is closed
1179
+ */
1180
+ "onModalClosed"?: (event: SulaModalCustomEvent<void>) => void;
1181
+ /**
1182
+ * Event emitted when the primary button is clicked
1183
+ */
1184
+ "onPrimaryButtonClicked"?: (event: SulaModalCustomEvent<void>) => void;
1185
+ /**
1186
+ * Event emitted when the secondary button is clicked
1187
+ */
1188
+ "onSecondaryButtonClicked"?: (event: SulaModalCustomEvent<void>) => void;
1189
+ /**
1190
+ * Is modal opened
1191
+ * @default false
1192
+ */
1193
+ "opened"?: boolean;
1194
+ /**
1195
+ * Primary button text
1196
+ * @default ''
1197
+ */
1198
+ "primaryButtonText"?: string;
1199
+ /**
1200
+ * Promotional image URL for promo type modal
1201
+ * @default ''
1202
+ */
1203
+ "promoImage"?: string;
1204
+ /**
1205
+ * Secondary button text
1206
+ * @default ''
1207
+ */
1208
+ "secondaryButtonText"?: string;
1209
+ /**
1210
+ * Slot overflow behavior
1211
+ * @default SulaModalSlotOverflow.Auto
1212
+ */
1213
+ "slotOverflow"?: SulaModalSlotOverflow;
1214
+ /**
1215
+ * Subtitle of the modal
1216
+ * @default ''
1217
+ */
1218
+ "subTitle"?: string;
1219
+ /**
1220
+ * Type of the modal
1221
+ * @default SulaModalType.Custom
1222
+ */
1223
+ "type"?: SulaModalType;
1052
1224
  }
1053
1225
  interface SulaProgressBar {
1054
1226
  /**
@@ -1281,6 +1453,10 @@ declare namespace LocalJSX {
1281
1453
  * The textfield label
1282
1454
  */
1283
1455
  "label"?: string;
1456
+ /**
1457
+ * The textfield mask pattern The mask pattern should follow the VMasker pattern format More info: https://github.com/vanilla-masker/vanilla-masker?tab=readme-ov-file#custom-pattern
1458
+ */
1459
+ "maskPattern"?: string;
1284
1460
  /**
1285
1461
  * The textfield max length
1286
1462
  */
@@ -1379,6 +1555,7 @@ declare namespace LocalJSX {
1379
1555
  "sula-icon": SulaIcon;
1380
1556
  "sula-loader": SulaLoader;
1381
1557
  "sula-menu-select-list": SulaMenuSelectList;
1558
+ "sula-modal": SulaModal;
1382
1559
  "sula-progress-bar": SulaProgressBar;
1383
1560
  "sula-radio-button": SulaRadioButton;
1384
1561
  "sula-search-bar": SulaSearchBar;
@@ -1403,6 +1580,7 @@ declare module "@stencil/core" {
1403
1580
  "sula-icon": LocalJSX.SulaIcon & JSXBase.HTMLAttributes<HTMLSulaIconElement>;
1404
1581
  "sula-loader": LocalJSX.SulaLoader & JSXBase.HTMLAttributes<HTMLSulaLoaderElement>;
1405
1582
  "sula-menu-select-list": LocalJSX.SulaMenuSelectList & JSXBase.HTMLAttributes<HTMLSulaMenuSelectListElement>;
1583
+ "sula-modal": LocalJSX.SulaModal & JSXBase.HTMLAttributes<HTMLSulaModalElement>;
1406
1584
  "sula-progress-bar": LocalJSX.SulaProgressBar & JSXBase.HTMLAttributes<HTMLSulaProgressBarElement>;
1407
1585
  "sula-radio-button": LocalJSX.SulaRadioButton & JSXBase.HTMLAttributes<HTMLSulaRadioButtonElement>;
1408
1586
  "sula-search-bar": LocalJSX.SulaSearchBar & JSXBase.HTMLAttributes<HTMLSulaSearchBarElement>;
@@ -806,22 +806,27 @@ var insertBefore = (e, t, n) => {
806
806
 
807
807
  var renderVdom = (e, t, n = false) => {
808
808
  const o = e.$hostElement$;
809
- const i = e._$$vnode$$_ || newVNode(null, null);
810
- const r = isHost(t);
811
- const s = r ? t : h(null, null, t);
809
+ const i = e._$$cmpMeta$$_;
810
+ const r = e._$$vnode$$_ || newVNode(null, null);
811
+ const s = isHost(t);
812
+ const l = s ? t : h(null, null, t);
812
813
  k = o.tagName;
813
- if (n && s._$$attrs$$_) {
814
- for (const e of Object.keys(s._$$attrs$$_)) {
814
+ if (i._$$attrsToReflect$$_) {
815
+ l._$$attrs$$_ = l._$$attrs$$_ || {};
816
+ i._$$attrsToReflect$$_.map((([e, t]) => l._$$attrs$$_[t] = o[e]));
817
+ }
818
+ if (n && l._$$attrs$$_) {
819
+ for (const e of Object.keys(l._$$attrs$$_)) {
815
820
  if (o.hasAttribute(e) && ![ "key", "ref", "style", "class" ].includes(e)) {
816
- s._$$attrs$$_[e] = o[e];
821
+ l._$$attrs$$_[e] = o[e];
817
822
  }
818
823
  }
819
824
  }
820
- s._$$tag$$_ = null;
821
- s._$$flags$$_ |= 4 /* isHost */;
822
- e._$$vnode$$_ = s;
823
- s._$$elm$$_ = i._$$elm$$_ = o.shadowRoot || o;
824
- patch(i, s, n);
825
+ l._$$tag$$_ = null;
826
+ l._$$flags$$_ |= 4 /* isHost */;
827
+ e._$$vnode$$_ = l;
828
+ l._$$elm$$_ = r._$$elm$$_ = o.shadowRoot || o;
829
+ patch(r, l, n);
825
830
  };
826
831
 
827
832
  // src/runtime/update-component.ts
@@ -1163,9 +1168,13 @@ var proxyComponent = (e, n, o) => {
1163
1168
  };
1164
1169
  e.observedAttributes = Array.from(
1165
1170
  new Set([ ...Object.keys((r = n._$$watchers$$_) != null ? r : {}), ...l.filter((([e, t]) => t[0] & 15 /* HasAttribute */)).map((([e, t]) => {
1166
- const n = t[1] || e;
1167
- o.set(n, e);
1168
- return n;
1171
+ var i;
1172
+ const r = t[1] || e;
1173
+ o.set(r, e);
1174
+ if (t[0] & 512 /* ReflectAttr */) {
1175
+ (i = n._$$attrsToReflect$$_) == null ? void 0 : i.push([ e, r ]);
1176
+ }
1177
+ return r;
1169
1178
  })) ]));
1170
1179
  }
1171
1180
  }
@@ -1355,6 +1364,9 @@ var bootstrapLazy = (e, t = {}) => {
1355
1364
  {
1356
1365
  o._$$listeners$$_ = t[3];
1357
1366
  }
1367
+ {
1368
+ o._$$attrsToReflect$$_ = [];
1369
+ }
1358
1370
  {
1359
1371
  o._$$watchers$$_ = (n = t[4]) != null ? n : {};
1360
1372
  }
@@ -1490,5 +1502,5 @@ var hostListenerOpts = e => f ? {
1490
1502
  var setNonce = e => c._$$nonce$$_ = e;
1491
1503
 
1492
1504
  export { b as H, getElement as a, bootstrapLazy as b, createEvent as c, globalScripts as g, h, promiseResolve as p, registerInstance as r, setNonce as s };
1493
- //# sourceMappingURL=p-or7qTZgT.js.map
1494
- //# sourceMappingURL=p-or7qTZgT.js.map
1505
+ //# sourceMappingURL=p-CrFclBiX.js.map
1506
+ //# sourceMappingURL=p-CrFclBiX.js.map