@sula-tech/webcomponents 0.19.3 → 0.20.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 (202) hide show
  1. package/dist/cjs/{index-i5WGQEGK.js → index-BjAGuSPl.js} +30 -5
  2. package/dist/cjs/index-BjAGuSPl.js.map +1 -0
  3. package/dist/cjs/index.cjs.js +17 -11
  4. package/dist/cjs/index.cjs.js.map +1 -1
  5. package/dist/cjs/loader.cjs.js +2 -2
  6. package/dist/cjs/sula-avatar_31.cjs.entry.js +41 -41
  7. package/dist/cjs/sula-avatar_31.cjs.entry.js.map +1 -1
  8. package/dist/cjs/sula-menu.model-BDxbWyPG.js +16 -0
  9. package/dist/cjs/sula-menu.model-BDxbWyPG.js.map +1 -0
  10. package/dist/cjs/sula-toast-stack.cjs.entry.js +314 -0
  11. package/dist/cjs/sula-toast-stack.cjs.entry.js.map +1 -0
  12. package/dist/cjs/sula-toast-stack.entry.cjs.js.map +1 -0
  13. package/dist/cjs/sula-toast.cjs.entry.js +195 -0
  14. package/dist/cjs/sula-toast.cjs.entry.js.map +1 -0
  15. package/dist/cjs/sula-toast.entry.cjs.js.map +1 -0
  16. package/dist/cjs/sula-toast.model-frnF9yhp.js +14 -0
  17. package/dist/cjs/sula-toast.model-frnF9yhp.js.map +1 -0
  18. package/dist/cjs/webcomponents.cjs.js +2 -2
  19. package/dist/collection/collection-manifest.json +2 -0
  20. package/dist/collection/components/sula-avatar/sula-avatar.css +1 -1
  21. package/dist/collection/components/sula-badge/sula-badge.css +1 -1
  22. package/dist/collection/components/sula-breadcrumb/sula-breadcrumb.css +1 -1
  23. package/dist/collection/components/sula-button/sula-button.css +1 -1
  24. package/dist/collection/components/sula-checkbox/sula-checkbox.css +1 -1
  25. package/dist/collection/components/sula-chip/sula-chip.css +1 -1
  26. package/dist/collection/components/sula-dropdown/sula-dropdown.css +1 -1
  27. package/dist/collection/components/sula-icon/sula-icon.css +1 -1
  28. package/dist/collection/components/sula-icon-picker/sula-icon-picker.css +1 -1
  29. package/dist/collection/components/sula-loader/sula-loader.css +1 -1
  30. package/dist/collection/components/sula-menu/sula-menu.css +1 -1
  31. package/dist/collection/components/sula-menu-select-list/sula-menu-select-list.css +1 -1
  32. package/dist/collection/components/sula-modal/sula-modal.css +1 -1
  33. package/dist/collection/components/sula-progress-bar/sula-progress-bar.css +1 -1
  34. package/dist/collection/components/sula-radio-button/sula-radio-button.css +1 -1
  35. package/dist/collection/components/sula-search-bar/sula-search-bar.css +1 -1
  36. package/dist/collection/components/sula-segmented-control/sula-segmented-control.css +1 -1
  37. package/dist/collection/components/sula-switch/sula-switch.css +1 -1
  38. package/dist/collection/components/sula-table/sula-table.css +1 -1
  39. package/dist/collection/components/sula-table-body/sula-table-body.css +1 -1
  40. package/dist/collection/components/sula-table-cell/sula-table-cell.css +1 -1
  41. package/dist/collection/components/sula-table-head-cell/sula-table-head-cell.css +1 -1
  42. package/dist/collection/components/sula-table-header/sula-table-header.css +1 -1
  43. package/dist/collection/components/sula-table-row/sula-table-row.css +1 -1
  44. package/dist/collection/components/sula-tag/sula-tag.css +1 -1
  45. package/dist/collection/components/sula-textarea/sula-textarea.css +1 -1
  46. package/dist/collection/components/sula-textfield/sula-textfield.css +1 -1
  47. package/dist/collection/components/sula-tiles/sula-tiles.css +1 -1
  48. package/dist/collection/components/sula-timeline-list/sula-timeline-list.css +1 -1
  49. package/dist/collection/components/sula-toast/model/sula-toast.model.js +10 -0
  50. package/dist/collection/components/sula-toast/model/sula-toast.model.js.map +1 -0
  51. package/dist/collection/components/sula-toast/sula-toast.css +1 -0
  52. package/dist/collection/components/sula-toast/sula-toast.js +501 -0
  53. package/dist/collection/components/sula-toast/sula-toast.js.map +1 -0
  54. package/dist/collection/components/sula-toast/sula-toast.stories.js +101 -0
  55. package/dist/collection/components/sula-toast/sula-toast.stories.js.map +1 -0
  56. package/dist/collection/components/sula-toast-stack/model/sula-toast-stack.model.js +2 -0
  57. package/dist/collection/components/sula-toast-stack/model/sula-toast-stack.model.js.map +1 -0
  58. package/dist/collection/components/sula-toast-stack/sula-toast-stack.css +1 -0
  59. package/dist/collection/components/sula-toast-stack/sula-toast-stack.js +333 -0
  60. package/dist/collection/components/sula-toast-stack/sula-toast-stack.js.map +1 -0
  61. package/dist/collection/components/sula-toast-stack/sula-toast-stack.motion.js +67 -0
  62. package/dist/collection/components/sula-toast-stack/sula-toast-stack.motion.js.map +1 -0
  63. package/dist/collection/components/sula-toast-stack/sula-toast-stack.stories.js +87 -0
  64. package/dist/collection/components/sula-toast-stack/sula-toast-stack.stories.js.map +1 -0
  65. package/dist/collection/components/sula-toggle/sula-toggle.css +1 -1
  66. package/dist/collection/components/sula-toggle/sula-toggle.js +1 -1
  67. package/dist/collection/components/sula-tooltip/sula-tooltip.css +1 -1
  68. package/dist/collection/components/sula-tooltip/sula-tooltip.js +1 -1
  69. package/dist/collection/index.js +1 -0
  70. package/dist/collection/index.js.map +1 -1
  71. package/dist/components/index.js +3 -15
  72. package/dist/components/index.js.map +1 -1
  73. package/dist/components/{p-CelSwSJG.js → p-CJ2i2jVV.js} +5 -5
  74. package/dist/components/{p-CelSwSJG.js.map → p-CJ2i2jVV.js.map} +1 -1
  75. package/dist/components/p-Cs9RR1ZV.js +16 -0
  76. package/dist/components/p-Cs9RR1ZV.js.map +1 -0
  77. package/dist/components/{p-Bqd5Y-Ir.js → p-D0ZAC0yK.js} +6 -6
  78. package/dist/components/p-D0ZAC0yK.js.map +1 -0
  79. package/dist/components/{p-BJQZqrGi.js → p-DGfvh6dZ.js} +5 -5
  80. package/dist/components/{p-BJQZqrGi.js.map → p-DGfvh6dZ.js.map} +1 -1
  81. package/dist/components/{p-Cy4ZswbA.js → p-DYfmicjp.js} +31 -6
  82. package/dist/components/p-DYfmicjp.js.map +1 -0
  83. package/dist/components/{p-f7rEWsEo.js → p-DmCNhtp_.js} +4 -4
  84. package/dist/components/{p-f7rEWsEo.js.map → p-DmCNhtp_.js.map} +1 -1
  85. package/dist/components/p-DmQoJS86.js +235 -0
  86. package/dist/components/p-DmQoJS86.js.map +1 -0
  87. package/dist/components/{p-bHiC51v2.js → p-DqRqPukj.js} +4 -4
  88. package/dist/components/{p-bHiC51v2.js.map → p-DqRqPukj.js.map} +1 -1
  89. package/dist/components/{p-D1tWu3qb.js → p-b7t6bSNa.js} +6 -6
  90. package/dist/components/{p-D1tWu3qb.js.map → p-b7t6bSNa.js.map} +1 -1
  91. package/dist/components/p-t0X4JATS.js +14 -0
  92. package/dist/components/p-t0X4JATS.js.map +1 -0
  93. package/dist/components/sula-avatar.js +3 -3
  94. package/dist/components/sula-avatar.js.map +1 -1
  95. package/dist/components/sula-badge.js +3 -3
  96. package/dist/components/sula-badge.js.map +1 -1
  97. package/dist/components/sula-breadcrumb.js +3 -3
  98. package/dist/components/sula-breadcrumb.js.map +1 -1
  99. package/dist/components/sula-button.js +1 -1
  100. package/dist/components/sula-checkbox.js +3 -3
  101. package/dist/components/sula-checkbox.js.map +1 -1
  102. package/dist/components/sula-chip.js +4 -4
  103. package/dist/components/sula-chip.js.map +1 -1
  104. package/dist/components/sula-dropdown.js +1 -1
  105. package/dist/components/sula-icon-picker.js +6 -6
  106. package/dist/components/sula-icon-picker.js.map +1 -1
  107. package/dist/components/sula-icon.js +1 -1
  108. package/dist/components/sula-loader.js +1 -1
  109. package/dist/components/sula-menu-select-list.js +1 -1
  110. package/dist/components/sula-menu.js +4 -4
  111. package/dist/components/sula-menu.js.map +1 -1
  112. package/dist/components/sula-modal.js +5 -5
  113. package/dist/components/sula-modal.js.map +1 -1
  114. package/dist/components/sula-progress-bar.js +3 -3
  115. package/dist/components/sula-progress-bar.js.map +1 -1
  116. package/dist/components/sula-radio-button.js +2 -2
  117. package/dist/components/sula-radio-button.js.map +1 -1
  118. package/dist/components/sula-search-bar.js +1 -1
  119. package/dist/components/sula-segmented-control.js +3 -3
  120. package/dist/components/sula-segmented-control.js.map +1 -1
  121. package/dist/components/sula-switch.js +2 -2
  122. package/dist/components/sula-switch.js.map +1 -1
  123. package/dist/components/sula-table-body.js +2 -2
  124. package/dist/components/sula-table-body.js.map +1 -1
  125. package/dist/components/sula-table-cell.js +2 -2
  126. package/dist/components/sula-table-cell.js.map +1 -1
  127. package/dist/components/sula-table-head-cell.js +2 -2
  128. package/dist/components/sula-table-head-cell.js.map +1 -1
  129. package/dist/components/sula-table-header.js +2 -2
  130. package/dist/components/sula-table-header.js.map +1 -1
  131. package/dist/components/sula-table-row.js +2 -2
  132. package/dist/components/sula-table-row.js.map +1 -1
  133. package/dist/components/sula-table.js +2 -2
  134. package/dist/components/sula-table.js.map +1 -1
  135. package/dist/components/sula-tag.js +3 -3
  136. package/dist/components/sula-tag.js.map +1 -1
  137. package/dist/components/sula-textarea.js +2 -2
  138. package/dist/components/sula-textarea.js.map +1 -1
  139. package/dist/components/sula-textfield.js +3 -3
  140. package/dist/components/sula-textfield.js.map +1 -1
  141. package/dist/components/sula-tiles.js +3 -3
  142. package/dist/components/sula-tiles.js.map +1 -1
  143. package/dist/components/sula-timeline-list.js +3 -3
  144. package/dist/components/sula-timeline-list.js.map +1 -1
  145. package/dist/components/sula-toast-stack.d.ts +11 -0
  146. package/dist/components/sula-toast-stack.js +352 -0
  147. package/dist/components/sula-toast-stack.js.map +1 -0
  148. package/dist/components/sula-toast.d.ts +11 -0
  149. package/dist/components/sula-toast.js +9 -0
  150. package/dist/components/sula-toast.js.map +1 -0
  151. package/dist/components/sula-toggle.js +4 -4
  152. package/dist/components/sula-toggle.js.map +1 -1
  153. package/dist/components/sula-tooltip.js +4 -4
  154. package/dist/components/sula-tooltip.js.map +1 -1
  155. package/dist/esm/{index-lrQT_q8m.js → index-BL15Tt3m.js} +30 -5
  156. package/dist/esm/index-BL15Tt3m.js.map +1 -0
  157. package/dist/esm/index.js +2 -13
  158. package/dist/esm/index.js.map +1 -1
  159. package/dist/esm/loader.js +3 -3
  160. package/dist/esm/sula-avatar_31.entry.js +35 -35
  161. package/dist/esm/sula-avatar_31.entry.js.map +1 -1
  162. package/dist/esm/sula-menu.model-Cs9RR1ZV.js +16 -0
  163. package/dist/esm/sula-menu.model-Cs9RR1ZV.js.map +1 -0
  164. package/dist/esm/sula-toast-stack.entry.js +312 -0
  165. package/dist/esm/sula-toast-stack.entry.js.map +1 -0
  166. package/dist/esm/sula-toast.entry.js +193 -0
  167. package/dist/esm/sula-toast.entry.js.map +1 -0
  168. package/dist/esm/sula-toast.model-t0X4JATS.js +14 -0
  169. package/dist/esm/sula-toast.model-t0X4JATS.js.map +1 -0
  170. package/dist/esm/webcomponents.js +3 -3
  171. package/dist/types/components/sula-toast/model/sula-toast.model.d.ts +31 -0
  172. package/dist/types/components/sula-toast/sula-toast.d.ts +64 -0
  173. package/dist/types/components/sula-toast/sula-toast.stories.d.ts +188 -0
  174. package/dist/types/components/sula-toast-stack/model/sula-toast-stack.model.d.ts +8 -0
  175. package/dist/types/components/sula-toast-stack/sula-toast-stack.d.ts +51 -0
  176. package/dist/types/components/sula-toast-stack/sula-toast-stack.motion.d.ts +9 -0
  177. package/dist/types/components/sula-toast-stack/sula-toast-stack.stories.d.ts +64 -0
  178. package/dist/types/components.d.ts +204 -0
  179. package/dist/types/index.d.ts +2 -0
  180. package/dist/webcomponents/index.esm.js +2 -15
  181. package/dist/webcomponents/index.esm.js.map +1 -1
  182. package/dist/webcomponents/p-170854a5.entry.js +270 -0
  183. package/dist/webcomponents/p-170854a5.entry.js.map +1 -0
  184. package/dist/webcomponents/{p-lrQT_q8m.js → p-BL15Tt3m.js} +240 -215
  185. package/dist/webcomponents/p-BL15Tt3m.js.map +1 -0
  186. package/dist/webcomponents/p-Cs9RR1ZV.js +18 -0
  187. package/dist/webcomponents/p-Cs9RR1ZV.js.map +1 -0
  188. package/dist/webcomponents/p-c58125e1.entry.js +376 -0
  189. package/dist/webcomponents/p-c58125e1.entry.js.map +1 -0
  190. package/dist/webcomponents/{p-95ca03c9.entry.js → p-fcc1a28c.entry.js} +42 -42
  191. package/dist/webcomponents/p-t0X4JATS.js +14 -0
  192. package/dist/webcomponents/p-t0X4JATS.js.map +1 -0
  193. package/dist/webcomponents/sula-toast-stack.entry.esm.js.map +1 -0
  194. package/dist/webcomponents/sula-toast.entry.esm.js.map +1 -0
  195. package/dist/webcomponents/webcomponents.esm.js +35 -6
  196. package/package.json +2 -2
  197. package/dist/cjs/index-i5WGQEGK.js.map +0 -1
  198. package/dist/components/p-Bqd5Y-Ir.js.map +0 -1
  199. package/dist/components/p-Cy4ZswbA.js.map +0 -1
  200. package/dist/esm/index-lrQT_q8m.js.map +0 -1
  201. package/dist/webcomponents/p-lrQT_q8m.js.map +0 -1
  202. /package/dist/webcomponents/{p-95ca03c9.entry.js.map → p-fcc1a28c.entry.js.map} +0 -0
@@ -0,0 +1,18 @@
1
+ var a;
2
+
3
+ (function(a) {
4
+ a["Compact"] = "compact";
5
+ a["Default"] = "default";
6
+ a["Comfortable"] = "comfortable";
7
+ })(a || (a = {}));
8
+
9
+ var t;
10
+
11
+ (function(a) {
12
+ a["Truncate"] = "truncate";
13
+ a["Wrap"] = "wrap";
14
+ })(t || (t = {}));
15
+
16
+ export { a as S, t as a };
17
+ //# sourceMappingURL=p-Cs9RR1ZV.js.map
18
+ //# sourceMappingURL=p-Cs9RR1ZV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"p-Cs9RR1ZV.js","sources":["src/components/sula-menu/model/sula-menu.model.ts"],"sourcesContent":["export enum SulaMenuDensity {\n Compact = 'compact',\n Default = 'default',\n Comfortable = 'comfortable',\n}\n\nexport enum SulaMenuLabelOverflow {\n Truncate = 'truncate',\n Wrap = 'wrap',\n}\n\nexport interface SulaMenuMainItem extends SulaMenuItem {\n children?: SulaMenuSubItem[];\n}\n\nexport interface SulaMenuSubItem extends SulaMenuItem {\n children?: SulaMenuItem[];\n}\n\nexport interface SulaMenuItem {\n id: string;\n label: string;\n icon: string;\n hidden?: boolean;\n open?: boolean;\n route?: string;\n expanded?: boolean;\n selected?: boolean;\n disabled?: boolean;\n}\n\nexport type SelectedMenuItem = {\n id: string;\n parentItemId?: string;\n parentChildId?: string;\n};\n"],"names":[],"mappings":"IAAY;AAAZ,CAAA,UAAY,eAAe,EAAA;AACzB,IAAA,eAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,eAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,eAAA,CAAA,aAAA,CAAA,GAAA,aAA2B;AAC7B,CAAC,EAJW,eAAe,KAAf,eAAe,GAI1B,EAAA,CAAA,CAAA;IAEW;AAAZ,CAAA,UAAY,qBAAqB,EAAA;AAC/B,IAAA,qBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,qBAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACf,CAAC,EAHW,qBAAqB,KAArB,qBAAqB,GAGhC,EAAA,CAAA,CAAA;;;;"}
@@ -0,0 +1,376 @@
1
+ import { r as t, c as o, h as e, H as a, a as i } from "./p-BL15Tt3m.js";
2
+
3
+ const r = 260;
4
+
5
+ const s = "cubic-bezier(0.2, 0.8, 0.2, 1)";
6
+
7
+ class l {
8
+ constructor() {
9
+ this.animations = new Set;
10
+ }
11
+ capture(t, o) {
12
+ const e = new Map;
13
+ o.querySelectorAll("[data-toast-id]").forEach((t => {
14
+ const o = t.getBoundingClientRect();
15
+ if (t.dataset.toastId && o.width && o.height) {
16
+ e.set(t.dataset.toastId, {
17
+ rect: o,
18
+ opacity: Number(getComputedStyle(t).opacity)
19
+ });
20
+ }
21
+ }));
22
+ const a = {
23
+ height: t.getBoundingClientRect().height,
24
+ cards: e
25
+ };
26
+ this.cancelAnimations();
27
+ this.previous = a;
28
+ }
29
+ play(t, o) {
30
+ const e = this.previous;
31
+ this.previous = undefined;
32
+ if (!e) return;
33
+ o.querySelectorAll("[data-toast-id]").forEach((t => {
34
+ const o = t.getBoundingClientRect();
35
+ const a = getComputedStyle(t).transform;
36
+ const i = a === "none" ? "" : a;
37
+ const r = e.cards.get(t.dataset.toastId);
38
+ if (!o.width || !o.height) return;
39
+ if (!r) return;
40
+ const s = r.rect.left - o.left;
41
+ const l = r.rect.top - o.top;
42
+ const n = r.rect.width / o.width;
43
+ const c = r.rect.height / o.height;
44
+ const f = Math.abs(s) > .5 || Math.abs(l) > .5 || Math.abs(n - 1) > .005 || Math.abs(c - 1) > .005;
45
+ if (!f && r.opacity > .995) return;
46
+ this.animate(t, [ {
47
+ opacity: r.opacity,
48
+ transformOrigin: "top left",
49
+ transform: `translate(${s}px, ${l}px) ${i} scale(${n}, ${c})`
50
+ }, {
51
+ opacity: 1,
52
+ transformOrigin: "top left",
53
+ transform: a
54
+ } ]);
55
+ }));
56
+ const a = t.getBoundingClientRect().height;
57
+ if (e.height !== a) this.animate(t, [ {
58
+ height: `${e.height}px`
59
+ }, {
60
+ height: `${a}px`
61
+ } ]);
62
+ }
63
+ cancel() {
64
+ this.previous = undefined;
65
+ this.cancelAnimations();
66
+ }
67
+ animate(t, o) {
68
+ const e = t.animate(o, {
69
+ duration: r,
70
+ easing: s
71
+ });
72
+ this.animations.add(e);
73
+ e.onfinish = e.oncancel = () => this.animations.delete(e);
74
+ }
75
+ cancelAnimations() {
76
+ this.animations.forEach((t => t.cancel()));
77
+ this.animations.clear();
78
+ }
79
+ }
80
+
81
+ const n = '*,: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{font-family:Figtree;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}.absolute{position:absolute}.block{display:block}.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))}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}:host,:host button,:host input,:host option,:host select,:host textarea{font-family:Figtree,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:host{background-color:transparent;display:block;max-width:400px;width:100%}.toast-region{background-color:transparent}.toast-list--collapsed{padding-top:var(--toast-layer-offset)}.toast-layer--entering{animation:sula-toast-stack-enter .2s cubic-bezier(.2,.8,.2,1)}@keyframes sula-toast-stack-enter{0%{scale:.98;translate:0 -8px}to{scale:1;translate:0}}@media (prefers-reduced-motion:reduce){.toast-layer--entering{animation:none}}.toast-layer.toast-layer--covered{bottom:0;clip-path:inset(0 0 calc(100% - 12px) 0);position:absolute;top:var(--toast-layer-offset);inset-inline:0;margin-inline:auto;pointer-events:none;transform:translateY(calc(var(--toast-depth)*-12px));width:var(--toast-width)}.toast-layer.toast-layer--covered sula-toast,.toast-layer.toast-layer--covered sula-toast::part(container){height:100%}.toast-layer.toast-layer--covered sula-toast::part(container){box-shadow:none;isolation:auto;overflow:hidden}.toast-layer.toast-layer--covered sula-toast::part(close-button),.toast-layer.toast-layer--covered sula-toast::part(content),.toast-layer.toast-layer--covered sula-toast::part(icon){visibility:hidden}@font-face{font-display:swap;font-family:Figtree;font-style:normal;font-weight:300;src:local("Figtree"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-Light.ttf) format("truetype")}@font-face{font-display:swap;font-family:Figtree;font-style:italic;font-weight:300;src:local("Figtree"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-LightItalic.ttf) format("truetype")}@font-face{font-display:swap;font-family:Figtree;font-style:normal;font-weight:400;src:local("Figtree"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-Regular.ttf) format("truetype")}@font-face{font-display:swap;font-family:Figtree;font-style:italic;font-weight:400;src:local("Figtree"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-Italic.ttf) format("truetype")}@font-face{font-display:swap;font-family:Figtree;font-style:normal;font-weight:500;src:local("Figtree"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-Medium.ttf) format("truetype")}@font-face{font-display:swap;font-family:Figtree;font-style:italic;font-weight:500;src:local("Figtree"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-MediumItalic.ttf) format("truetype")}@font-face{font-display:swap;font-family:Figtree;font-style:normal;font-weight:600;src:local("Figtree"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-SemiBold.ttf) format("truetype")}@font-face{font-display:swap;font-family:Figtree;font-style:italic;font-weight:600;src:local("Figtree"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-SemiBoldItalic.ttf) format("truetype")}@font-face{font-display:swap;font-family:Figtree;font-style:normal;font-weight:700;src:local("Figtree"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-Bold.ttf) format("truetype")}@font-face{font-display:swap;font-family:Figtree;font-style:italic;font-weight:700;src:local("Figtree"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-BoldItalic.ttf) format("truetype")}@font-face{font-display:swap;font-family:Figtree;font-style:normal;font-weight:800;src:local("Figtree"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-ExtraBold.ttf) format("truetype")}@font-face{font-display:swap;font-family:Figtree;font-style:italic;font-weight:800;src:local("Figtree"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-ExtraBoldItalic.ttf) format("truetype")}@font-face{font-display:swap;font-family:Figtree;font-style:normal;font-weight:900;src:local("Figtree"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-Black.ttf) format("truetype")}@font-face{font-display:swap;font-family:Figtree;font-style:italic;font-weight:900;src:local("Figtree"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-BlackItalic.ttf) format("truetype")}: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-opacity-toast:#ffffff45;--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)}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.static{position:static}.relative{position:relative}.flex{display:flex}.w-full{width:100%}.min-w-0{min-width:0}.shrink-0{flex-shrink:0}.flex-col{flex-direction:column}.gap-12{gap:.75rem}.rounded-sm{border-radius:.75rem}.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)}.blur{--tw-blur:blur(8px)}.blur,.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)}.focus-visible\\:outline:focus-visible{outline-style:solid}.focus-visible\\:outline-2:focus-visible{outline-width:2px}.focus-visible\\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\\:outline-feedback-informational:focus-visible{outline-color:var(--color-feedback-informational)}';
82
+
83
+ const c = 3;
84
+
85
+ const f = 12;
86
+
87
+ const d = 5;
88
+
89
+ const h = class {
90
+ constructor(e) {
91
+ t(this, e);
92
+ this.toastDismissRequested = o(this, "toastDismissRequested");
93
+ this.toastAction = o(this, "toastAction");
94
+ /** Notifications in chronological order, oldest first. Only the latest three are rendered. Replace the array to update it. IDs must be unique. */ this.items = [];
95
+ this.hovering = false;
96
+ this.focused = false;
97
+ this.noHover = false;
98
+ this.retainingPointerExpansion = false;
99
+ this.announcements = [];
100
+ this.announcementVersions = 0;
101
+ this.announcementSignatures = new Map;
102
+ this.enteringIds = new Set;
103
+ this.keyboardInteraction = false;
104
+ this.releaseFocusAfterRender = false;
105
+ this.ready = false;
106
+ this.connected = false;
107
+ this.motion = new l;
108
+ this.handleMediaChange = t => {
109
+ this.noHover = t.matches;
110
+ this.hovering = false;
111
+ this.stopRetainingPointerExpansion();
112
+ };
113
+ this.handlePointerMove = t => {
114
+ var o;
115
+ const e = (o = this.region) === null || o === void 0 ? void 0 : o.getBoundingClientRect();
116
+ this.hovering = !!e && t.clientX >= e.left && t.clientX <= e.right && t.clientY >= e.top && t.clientY <= e.bottom;
117
+ this.stopRetainingPointerExpansion();
118
+ };
119
+ this.handleFocusOut = () => {
120
+ if (this.focusFrame !== undefined) cancelAnimationFrame(this.focusFrame);
121
+ this.focusFrame = requestAnimationFrame((() => {
122
+ var t;
123
+ this.focusFrame = undefined;
124
+ this.focused = !!((t = this.hostElement.shadowRoot) === null || t === void 0 ? void 0 : t.activeElement);
125
+ }));
126
+ };
127
+ this.dismiss = (t, o) => {
128
+ t.stopPropagation();
129
+ this.toastDismissRequested.emit({
130
+ id: o,
131
+ reason: t.detail.reason
132
+ });
133
+ };
134
+ this.action = (t, o) => {
135
+ t.stopPropagation();
136
+ this.toastAction.emit({
137
+ id: o
138
+ });
139
+ };
140
+ }
141
+ get expanded() {
142
+ return this.noHover || this.hovering || this.focused || this.retainingPointerExpansion;
143
+ }
144
+ get visibleItems() {
145
+ return this.items.slice(-3);
146
+ }
147
+ get motionTargets() {
148
+ var t, o, e;
149
+ const a = (o = (t = window.matchMedia) === null || t === void 0 ? void 0 : t.call(window, "(prefers-reduced-motion: reduce)").matches) !== null && o !== void 0 ? o : false;
150
+ if (!this.ready || this.noHover || a || !((e = this.region) === null || e === void 0 ? void 0 : e.animate) || !this.list) return;
151
+ return {
152
+ region: this.region,
153
+ list: this.list
154
+ };
155
+ }
156
+ connectedCallback() {
157
+ this.connected = true;
158
+ if (this.ready) this.connectListeners();
159
+ }
160
+ componentDidLoad() {
161
+ this.ready = true;
162
+ this.connectListeners();
163
+ Promise.resolve().then((() => {
164
+ if (this.connected) this.updateAnnouncements();
165
+ }));
166
+ }
167
+ componentWillRender() {
168
+ if (this.renderedExpanded === this.expanded) return;
169
+ this.renderedExpanded = this.expanded;
170
+ const t = this.motionTargets;
171
+ if (!t) {
172
+ this.motion.cancel();
173
+ return;
174
+ }
175
+ this.motion.capture(t.region, t.list);
176
+ }
177
+ componentDidRender() {
178
+ this.restoreFocus();
179
+ this.releasePointerFocus();
180
+ if (this.region && this.list) this.motion.play(this.region, this.list);
181
+ }
182
+ disconnectedCallback() {
183
+ var t;
184
+ this.connected = false;
185
+ this.motion.cancel();
186
+ (t = this.media) === null || t === void 0 ? void 0 : t.removeEventListener("change", this.handleMediaChange);
187
+ window.removeEventListener("pointermove", this.handlePointerMove);
188
+ if (this.focusFrame !== undefined) cancelAnimationFrame(this.focusFrame);
189
+ this.focusFrame = undefined;
190
+ this.keyboardInteraction = false;
191
+ this.retainingPointerExpansion = false;
192
+ this.hovering = false;
193
+ this.focused = false;
194
+ }
195
+ handleItemsChange(t, o = []) {
196
+ var e, a, i, r, s, l;
197
+ const n = this.motionTargets;
198
+ if (n) this.motion.capture(n.region, n.list); else this.motion.cancel();
199
+ const c = (e = this.hostElement.shadowRoot) === null || e === void 0 ? void 0 : e.activeElement;
200
+ const f = (a = c === null || c === void 0 ? void 0 : c.closest("[data-toast-id]")) === null || a === void 0 ? void 0 : a.dataset.toastId;
201
+ const d = t.slice(-3);
202
+ const h = new Set(o.slice(-3).map((t => t.id)));
203
+ this.enteringIds = this.ready ? new Set(d.filter((t => !h.has(t.id))).map((t => t.id))) : new Set;
204
+ if (f !== undefined && !d.some((t => t.id === f))) {
205
+ if (this.keyboardInteraction) {
206
+ const t = new Set(d.map((t => t.id)));
207
+ const e = o.findIndex((t => t.id === f));
208
+ const a = o.slice(e + 1).find((o => t.has(o.id)));
209
+ const n = o.slice(0, e).reverse().find((o => t.has(o.id)));
210
+ this.focusTarget = (l = (r = (i = a === null || a === void 0 ? void 0 : a.id) !== null && i !== void 0 ? i : n === null || n === void 0 ? void 0 : n.id) !== null && r !== void 0 ? r : (s = d[0]) === null || s === void 0 ? void 0 : s.id) !== null && l !== void 0 ? l : "";
211
+ } else {
212
+ this.focusTarget = undefined;
213
+ this.releaseFocusAfterRender = true;
214
+ if (d.length && !this.noHover) {
215
+ this.retainingPointerExpansion = true;
216
+ window.addEventListener("pointermove", this.handlePointerMove, {
217
+ once: true
218
+ });
219
+ }
220
+ this.focused = false;
221
+ }
222
+ }
223
+ if (this.ready) this.updateAnnouncements();
224
+ }
225
+ updateAnnouncements() {
226
+ const t = [];
227
+ const o = new Map;
228
+ for (const e of this.visibleItems) {
229
+ const a = e.announcement || "polite";
230
+ const i = [ e.title, e.message ].filter(Boolean).join(". ");
231
+ const r = JSON.stringify([ i, a ]);
232
+ o.set(e.id, r);
233
+ if (a === "off" || !i) continue;
234
+ const s = this.announcements.find((t => t.id === e.id));
235
+ t.push(this.announcementSignatures.get(e.id) === r && s ? s : {
236
+ id: e.id,
237
+ text: i,
238
+ priority: a,
239
+ version: ++this.announcementVersions
240
+ });
241
+ }
242
+ this.announcementSignatures = o;
243
+ this.announcements = t;
244
+ }
245
+ connectListeners() {
246
+ var t, o, e, a;
247
+ this.media = (t = window.matchMedia) === null || t === void 0 ? void 0 : t.call(window, "(hover: none)");
248
+ this.noHover = (e = (o = this.media) === null || o === void 0 ? void 0 : o.matches) !== null && e !== void 0 ? e : false;
249
+ (a = this.media) === null || a === void 0 ? void 0 : a.addEventListener("change", this.handleMediaChange);
250
+ }
251
+ stopRetainingPointerExpansion() {
252
+ window.removeEventListener("pointermove", this.handlePointerMove);
253
+ this.retainingPointerExpansion = false;
254
+ }
255
+ restoreFocus() {
256
+ var t, o;
257
+ if (this.focusTarget === undefined) return;
258
+ const e = this.focusTarget;
259
+ this.focusTarget = undefined;
260
+ const a = Array.from(((t = this.list) === null || t === void 0 ? void 0 : t.querySelectorAll("[data-toast-id]")) || []).find((t => t.dataset.toastId === e));
261
+ (o = a || this.region) === null || o === void 0 ? void 0 : o.focus();
262
+ }
263
+ releasePointerFocus() {
264
+ var t, o;
265
+ if (!this.releaseFocusAfterRender) return;
266
+ this.releaseFocusAfterRender = false;
267
+ let e = (t = this.hostElement.shadowRoot) === null || t === void 0 ? void 0 : t.activeElement;
268
+ while ((o = e === null || e === void 0 ? void 0 : e.shadowRoot) === null || o === void 0 ? void 0 : o.activeElement) e = e.shadowRoot.activeElement;
269
+ e === null || e === void 0 ? void 0 : e.blur();
270
+ this.focused = false;
271
+ }
272
+ render() {
273
+ const t = this.expanded;
274
+ const o = this.visibleItems;
275
+ return e(a, {
276
+ key: "e52aeb1dd9f0d54498a4c7a0ad2300cdc5d24484"
277
+ }, e("section", {
278
+ key: "7c829968e841616450c308571cd1b60341b3c38b",
279
+ ref: t => this.region = t,
280
+ role: "region",
281
+ "aria-label": "Notificações",
282
+ tabIndex: 0,
283
+ class: "toast-region w-full rounded-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-feedback-informational focus-visible:outline-offset-2",
284
+ onMouseEnter: () => {
285
+ if (!this.noHover) this.hovering = true;
286
+ },
287
+ onMouseLeave: () => this.hovering = false,
288
+ onPointerDown: () => {
289
+ this.keyboardInteraction = false;
290
+ this.stopRetainingPointerExpansion();
291
+ },
292
+ onKeyDown: () => {
293
+ this.keyboardInteraction = true;
294
+ this.stopRetainingPointerExpansion();
295
+ },
296
+ onFocusin: () => this.focused = true,
297
+ onFocusout: this.handleFocusOut
298
+ }, e("div", {
299
+ key: "2327880499750943034cf47d8f2ea2dfd13d0e5a",
300
+ ref: t => this.list = t,
301
+ class: {
302
+ "toast-list relative flex flex-col gap-12": true,
303
+ "toast-list--collapsed": !t
304
+ },
305
+ style: {
306
+ "--toast-layer-offset": `${Math.max(0, o.length - 1) * f}px`
307
+ }
308
+ }, o.map(((a, i) => {
309
+ var r, s, l, n;
310
+ const f = o.length - 1 - i;
311
+ const h = !t && f > 0;
312
+ return e("div", {
313
+ key: a.id,
314
+ "data-toast-id": a.id,
315
+ tabIndex: -1,
316
+ "aria-hidden": h ? "true" : undefined,
317
+ inert: h,
318
+ class: {
319
+ "toast-layer relative w-full min-w-0 shrink-0": true,
320
+ "toast-layer--covered": h,
321
+ "toast-layer--entering": this.enteringIds.has(a.id)
322
+ },
323
+ style: {
324
+ "--toast-depth": String(f),
325
+ "--toast-width": `${100 - Math.min(f, c - 1) * d}%`
326
+ }
327
+ }, e("sula-toast", {
328
+ toastTitle: a.title,
329
+ message: (r = a.message) !== null && r !== void 0 ? r : "",
330
+ type: a.type,
331
+ icon: a.icon,
332
+ actionText: (s = a.actionText) !== null && s !== void 0 ? s : "",
333
+ closable: (l = a.closable) !== null && l !== void 0 ? l : true,
334
+ duration: a.duration,
335
+ closeLabel: (n = a.closeLabel) !== null && n !== void 0 ? n : "Fechar notificação",
336
+ paused: h || this.hovering || this.focused || this.retainingPointerExpansion,
337
+ announcement: "off",
338
+ animated: f === 0,
339
+ onToastDismissRequested: t => this.dismiss(t, a.id),
340
+ onToastAction: t => this.action(t, a.id)
341
+ }));
342
+ })))), e("div", {
343
+ key: "be446beb46594f14b6079a5a0649c9bf3a17b0cb",
344
+ class: "sr-only",
345
+ role: "status",
346
+ "aria-live": "polite",
347
+ "aria-atomic": "false",
348
+ "aria-relevant": "additions text"
349
+ }, this.announcements.filter((t => t.priority === "polite")).map((t => e("p", {
350
+ key: t.version
351
+ }, t.text)))), e("div", {
352
+ key: "5d9e871c11e91fb293f22c92ddd5a590517576f1",
353
+ class: "sr-only",
354
+ role: "alert",
355
+ "aria-live": "assertive",
356
+ "aria-atomic": "false",
357
+ "aria-relevant": "additions text"
358
+ }, this.announcements.filter((t => t.priority === "assertive")).map((t => e("p", {
359
+ key: t.version
360
+ }, t.text)))));
361
+ }
362
+ get hostElement() {
363
+ return i(this);
364
+ }
365
+ static get watchers() {
366
+ return {
367
+ items: [ "handleItemsChange" ]
368
+ };
369
+ }
370
+ };
371
+
372
+ h.style = n;
373
+
374
+ export { h as sula_toast_stack };
375
+ //# sourceMappingURL=sula-toast-stack.entry.esm.js.map
376
+ //# sourceMappingURL=p-c58125e1.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["MOTION_DURATION","MOTION_EASING","SulaToastStackMotion","constructor","this","animations","Set","capture","region","list","cards","Map","querySelectorAll","forEach","element","rect","getBoundingClientRect","dataset","toastId","width","height","set","opacity","Number","getComputedStyle","previous","cancelAnimations","play","undefined","transform","restingTransform","origin","get","deltaX","left","deltaY","top","scaleX","scaleY","moved","Math","abs","animate","transformOrigin","cancel","frames","animation","duration","easing","add","onfinish","oncancel","delete","clear","sulaToastStackCss","MAX_VISIBLE_LAYERS","LAYER_OFFSET","LAYER_WIDTH_STEP","SulaToastStack","hostRef","items","hovering","focused","noHover","retainingPointerExpansion","announcements","announcementVersions","announcementSignatures","enteringIds","keyboardInteraction","releaseFocusAfterRender","ready","connected","motion","handleMediaChange","event","matches","stopRetainingPointerExpansion","handlePointerMove","bounds","_a","clientX","right","clientY","bottom","handleFocusOut","focusFrame","cancelAnimationFrame","requestAnimationFrame","hostElement","shadowRoot","activeElement","dismiss","id","stopPropagation","toastDismissRequested","emit","reason","detail","action","toastAction","expanded","visibleItems","slice","motionTargets","reduceMotion","_b","window","matchMedia","call","_c","connectedCallback","connectListeners","componentDidLoad","Promise","resolve","then","updateAnnouncements","componentWillRender","renderedExpanded","targets","componentDidRender","restoreFocus","releasePointerFocus","disconnectedCallback","media","removeEventListener","handleItemsChange","next","active","focusedId","closest","nextVisible","previousVisibleIds","map","item","filter","has","some","visibleIds","index","findIndex","following","find","preceding","reverse","focusTarget","_f","_d","_e","length","addEventListener","once","records","signatures","priority","announcement","text","title","message","Boolean","join","signature","JSON","stringify","record","push","version","targetId","target","Array","from","focus","blur","render","h","Host","key","ref","el","role","tabIndex","class","onMouseEnter","onMouseLeave","onPointerDown","onKeyDown","onFocusin","onFocusout","style","max","depth","covered","inert","String","min","toastTitle","type","icon","actionText","closable","closeLabel","paused","animated","onToastDismissRequested","onToastAction"],"sources":["src/components/sula-toast-stack/sula-toast-stack.motion.ts","src/components/sula-toast-stack/sula-toast-stack.scss?tag=sula-toast-stack&encapsulation=shadow","src/components/sula-toast-stack/sula-toast-stack.tsx"],"sourcesContent":["const MOTION_DURATION = 260;\nconst MOTION_EASING = 'cubic-bezier(0.2, 0.8, 0.2, 1)';\n\ninterface CardLayout {\n rect: DOMRect;\n opacity: number;\n}\n\ninterface StackLayout {\n height: number;\n cards: Map<string, CardLayout>;\n}\n\nexport class SulaToastStackMotion {\n private previous?: StackLayout;\n private animations = new Set<Animation>();\n\n capture(region: HTMLElement, list: HTMLElement) {\n const cards = new Map<string, CardLayout>();\n list.querySelectorAll<HTMLElement>('[data-toast-id]').forEach(element => {\n const rect = element.getBoundingClientRect();\n if (element.dataset.toastId && rect.width && rect.height) {\n cards.set(element.dataset.toastId, { rect, opacity: Number(getComputedStyle(element).opacity) });\n }\n });\n\n const previous = { height: region.getBoundingClientRect().height, cards };\n this.cancelAnimations();\n this.previous = previous;\n }\n\n play(region: HTMLElement, list: HTMLElement) {\n const previous = this.previous;\n this.previous = undefined;\n if (!previous) return;\n\n list.querySelectorAll<HTMLElement>('[data-toast-id]').forEach(element => {\n const rect = element.getBoundingClientRect();\n const transform = getComputedStyle(element).transform;\n const restingTransform = transform === 'none' ? '' : transform;\n const origin = previous.cards.get(element.dataset.toastId);\n if (!rect.width || !rect.height) return;\n if (!origin) return;\n\n const deltaX = origin.rect.left - rect.left;\n const deltaY = origin.rect.top - rect.top;\n const scaleX = origin.rect.width / rect.width;\n const scaleY = origin.rect.height / rect.height;\n const moved = Math.abs(deltaX) > 0.5 || Math.abs(deltaY) > 0.5 || Math.abs(scaleX - 1) > 0.005 || Math.abs(scaleY - 1) > 0.005;\n if (!moved && origin.opacity > 0.995) return;\n\n this.animate(element, [\n {\n opacity: origin.opacity,\n transformOrigin: 'top left',\n transform: `translate(${deltaX}px, ${deltaY}px) ${restingTransform} scale(${scaleX}, ${scaleY})`,\n },\n { opacity: 1, transformOrigin: 'top left', transform },\n ]);\n });\n\n const height = region.getBoundingClientRect().height;\n if (previous.height !== height) this.animate(region, [{ height: `${previous.height}px` }, { height: `${height}px` }]);\n }\n\n cancel() {\n this.previous = undefined;\n this.cancelAnimations();\n }\n\n private animate(element: HTMLElement, frames: Keyframe[]) {\n const animation = element.animate(frames, { duration: MOTION_DURATION, easing: MOTION_EASING });\n this.animations.add(animation);\n animation.onfinish = animation.oncancel = () => this.animations.delete(animation);\n }\n\n private cancelAnimations() {\n this.animations.forEach(animation => animation.cancel());\n this.animations.clear();\n }\n}\n",":host {\n display: block;\n width: 100%;\n max-width: 400px;\n background-color: transparent;\n}\n\n.toast-region {\n background-color: transparent;\n}\n\n.toast-list--collapsed {\n padding-top: var(--toast-layer-offset);\n}\n\n.toast-layer--entering {\n animation: sula-toast-stack-enter 200ms cubic-bezier(0.2, 0.8, 0.2, 1);\n}\n\n@keyframes sula-toast-stack-enter {\n from {\n translate: 0 -8px;\n scale: 0.98;\n }\n\n to {\n translate: 0;\n scale: 1;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .toast-layer--entering {\n animation: none;\n }\n}\n\n.toast-layer.toast-layer--covered {\n position: absolute;\n top: var(--toast-layer-offset);\n bottom: 0;\n inset-inline: 0;\n margin-inline: auto;\n width: var(--toast-width);\n transform: translateY(calc(var(--toast-depth) * -12px));\n clip-path: inset(0 0 calc(100% - 12px) 0);\n pointer-events: none;\n\n sula-toast,\n sula-toast::part(container) {\n height: 100%;\n }\n\n sula-toast::part(container) {\n overflow: hidden;\n box-shadow: none;\n isolation: auto;\n }\n\n sula-toast::part(icon),\n sula-toast::part(content),\n sula-toast::part(close-button) {\n visibility: hidden;\n }\n}\n","import { Component, Element, Event, EventEmitter, Host, Prop, State, Watch, h } from '@stencil/core';\nimport { SulaToastDismissEvent, SulaToastItem, SulaToastStackActionEvent, SulaToastStackDismissEvent } from '../sula-toast/model/sula-toast.model';\nimport type { Announcement } from './model/sula-toast-stack.model';\nimport { SulaToastStackMotion } from './sula-toast-stack.motion';\n\nconst MAX_VISIBLE_LAYERS = 3;\nconst LAYER_OFFSET = 12;\nconst LAYER_WIDTH_STEP = 5;\n\n@Component({ tag: 'sula-toast-stack', styleUrl: 'sula-toast-stack.scss', shadow: true })\nexport class SulaToastStack {\n @Element() hostElement: HTMLElement;\n\n /** Notifications in chronological order, oldest first. Only the latest three are rendered. Replace the array to update it. IDs must be unique. */\n @Prop() items: SulaToastItem[] = [];\n\n /** Requests removal of the identified notification by the consumer. */\n @Event() toastDismissRequested: EventEmitter<SulaToastStackDismissEvent>;\n\n /** Requests the identified notification's action without removing it. */\n @Event() toastAction: EventEmitter<SulaToastStackActionEvent>;\n\n @State() hovering = false;\n @State() focused = false;\n @State() noHover = false;\n @State() retainingPointerExpansion = false;\n @State() announcements: Announcement[] = [];\n\n private region?: HTMLElement;\n private list?: HTMLElement;\n private media?: MediaQueryList;\n private announcementVersions = 0;\n private announcementSignatures = new Map<string, string>();\n private enteringIds = new Set<string>();\n private focusTarget?: string;\n private focusFrame?: number;\n private keyboardInteraction = false;\n private releaseFocusAfterRender = false;\n private ready = false;\n private connected = false;\n private renderedExpanded?: boolean;\n private motion = new SulaToastStackMotion();\n\n private get expanded() {\n return this.noHover || this.hovering || this.focused || this.retainingPointerExpansion;\n }\n\n private get visibleItems() {\n return this.items.slice(-MAX_VISIBLE_LAYERS);\n }\n\n private get motionTargets() {\n const reduceMotion = window.matchMedia?.('(prefers-reduced-motion: reduce)').matches ?? false;\n if (!this.ready || this.noHover || reduceMotion || !this.region?.animate || !this.list) return;\n return { region: this.region, list: this.list };\n }\n\n connectedCallback() {\n this.connected = true;\n if (this.ready) this.connectListeners();\n }\n\n componentDidLoad() {\n this.ready = true;\n this.connectListeners();\n Promise.resolve().then(() => {\n if (this.connected) this.updateAnnouncements();\n });\n }\n\n componentWillRender() {\n if (this.renderedExpanded === this.expanded) return;\n this.renderedExpanded = this.expanded;\n const targets = this.motionTargets;\n if (!targets) {\n this.motion.cancel();\n return;\n }\n this.motion.capture(targets.region, targets.list);\n }\n\n componentDidRender() {\n this.restoreFocus();\n this.releasePointerFocus();\n if (this.region && this.list) this.motion.play(this.region, this.list);\n }\n\n disconnectedCallback() {\n this.connected = false;\n this.motion.cancel();\n this.media?.removeEventListener('change', this.handleMediaChange);\n window.removeEventListener('pointermove', this.handlePointerMove);\n if (this.focusFrame !== undefined) cancelAnimationFrame(this.focusFrame);\n this.focusFrame = undefined;\n this.keyboardInteraction = false;\n this.retainingPointerExpansion = false;\n this.hovering = false;\n this.focused = false;\n }\n\n @Watch('items')\n handleItemsChange(next: SulaToastItem[], previous: SulaToastItem[] = []) {\n const targets = this.motionTargets;\n if (targets) this.motion.capture(targets.region, targets.list);\n else this.motion.cancel();\n const active = this.hostElement.shadowRoot?.activeElement as HTMLElement | null;\n const focusedId = active?.closest<HTMLElement>('[data-toast-id]')?.dataset.toastId;\n const nextVisible = next.slice(-MAX_VISIBLE_LAYERS);\n const previousVisibleIds = new Set(previous.slice(-MAX_VISIBLE_LAYERS).map(item => item.id));\n this.enteringIds = this.ready ? new Set(nextVisible.filter(item => !previousVisibleIds.has(item.id)).map(item => item.id)) : new Set();\n if (focusedId !== undefined && !nextVisible.some(item => item.id === focusedId)) {\n if (this.keyboardInteraction) {\n const visibleIds = new Set(nextVisible.map(item => item.id));\n const index = previous.findIndex(item => item.id === focusedId);\n const following = previous.slice(index + 1).find(item => visibleIds.has(item.id));\n const preceding = previous\n .slice(0, index)\n .reverse()\n .find(item => visibleIds.has(item.id));\n this.focusTarget = following?.id ?? preceding?.id ?? nextVisible[0]?.id ?? '';\n } else {\n this.focusTarget = undefined;\n this.releaseFocusAfterRender = true;\n if (nextVisible.length && !this.noHover) {\n this.retainingPointerExpansion = true;\n window.addEventListener('pointermove', this.handlePointerMove, { once: true });\n }\n this.focused = false;\n }\n }\n if (this.ready) this.updateAnnouncements();\n }\n\n private updateAnnouncements() {\n const records: Announcement[] = [];\n const signatures = new Map<string, string>();\n for (const item of this.visibleItems) {\n const priority = item.announcement || 'polite';\n const text = [item.title, item.message].filter(Boolean).join('. ');\n const signature = JSON.stringify([text, priority]);\n signatures.set(item.id, signature);\n if (priority === 'off' || !text) continue;\n const previous = this.announcements.find(record => record.id === item.id);\n records.push(\n this.announcementSignatures.get(item.id) === signature && previous\n ? previous\n : {\n id: item.id,\n text,\n priority,\n version: ++this.announcementVersions,\n },\n );\n }\n this.announcementSignatures = signatures;\n this.announcements = records;\n }\n\n private connectListeners() {\n this.media = window.matchMedia?.('(hover: none)');\n this.noHover = this.media?.matches ?? false;\n this.media?.addEventListener('change', this.handleMediaChange);\n }\n\n private handleMediaChange = (event: MediaQueryListEvent) => {\n this.noHover = event.matches;\n this.hovering = false;\n this.stopRetainingPointerExpansion();\n };\n\n private handlePointerMove = (event: PointerEvent) => {\n const bounds = this.region?.getBoundingClientRect();\n this.hovering = !!bounds && event.clientX >= bounds.left && event.clientX <= bounds.right && event.clientY >= bounds.top && event.clientY <= bounds.bottom;\n this.stopRetainingPointerExpansion();\n };\n\n private stopRetainingPointerExpansion() {\n window.removeEventListener('pointermove', this.handlePointerMove);\n this.retainingPointerExpansion = false;\n }\n\n private restoreFocus() {\n if (this.focusTarget === undefined) return;\n const targetId = this.focusTarget;\n this.focusTarget = undefined;\n const target = Array.from(this.list?.querySelectorAll<HTMLElement>('[data-toast-id]') || []).find(element => element.dataset.toastId === targetId);\n (target || this.region)?.focus();\n }\n\n private releasePointerFocus() {\n if (!this.releaseFocusAfterRender) return;\n this.releaseFocusAfterRender = false;\n let active = this.hostElement.shadowRoot?.activeElement as HTMLElement | null;\n while (active?.shadowRoot?.activeElement) active = active.shadowRoot.activeElement as HTMLElement;\n active?.blur();\n this.focused = false;\n }\n\n private handleFocusOut = () => {\n if (this.focusFrame !== undefined) cancelAnimationFrame(this.focusFrame);\n this.focusFrame = requestAnimationFrame(() => {\n this.focusFrame = undefined;\n this.focused = !!this.hostElement.shadowRoot?.activeElement;\n });\n };\n\n private dismiss = (event: CustomEvent<SulaToastDismissEvent>, id: string) => {\n event.stopPropagation();\n this.toastDismissRequested.emit({ id, reason: event.detail.reason });\n };\n\n private action = (event: CustomEvent<void>, id: string) => {\n event.stopPropagation();\n this.toastAction.emit({ id });\n };\n\n render() {\n const expanded = this.expanded;\n const visibleItems = this.visibleItems;\n return (\n <Host>\n <section\n ref={el => (this.region = el)}\n role=\"region\"\n aria-label=\"Notificações\"\n tabIndex={0}\n class=\"toast-region w-full rounded-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-feedback-informational focus-visible:outline-offset-2\"\n onMouseEnter={() => {\n if (!this.noHover) this.hovering = true;\n }}\n onMouseLeave={() => (this.hovering = false)}\n onPointerDown={() => {\n this.keyboardInteraction = false;\n this.stopRetainingPointerExpansion();\n }}\n onKeyDown={() => {\n this.keyboardInteraction = true;\n this.stopRetainingPointerExpansion();\n }}\n onFocusin={() => (this.focused = true)}\n onFocusout={this.handleFocusOut}\n >\n <div\n ref={el => (this.list = el)}\n class={{ 'toast-list relative flex flex-col gap-12': true, 'toast-list--collapsed': !expanded }}\n style={{\n '--toast-layer-offset': `${Math.max(0, visibleItems.length - 1) * LAYER_OFFSET}px`,\n }}\n >\n {visibleItems.map((item, index) => {\n const depth = visibleItems.length - 1 - index;\n const covered = !expanded && depth > 0;\n return (\n <div\n key={item.id}\n data-toast-id={item.id}\n tabIndex={-1}\n aria-hidden={covered ? 'true' : undefined}\n inert={covered}\n class={{\n 'toast-layer relative w-full min-w-0 shrink-0': true,\n 'toast-layer--covered': covered,\n 'toast-layer--entering': this.enteringIds.has(item.id),\n }}\n style={{\n '--toast-depth': String(depth),\n '--toast-width': `${100 - Math.min(depth, MAX_VISIBLE_LAYERS - 1) * LAYER_WIDTH_STEP}%`,\n }}\n >\n <sula-toast\n toastTitle={item.title}\n message={item.message ?? ''}\n type={item.type}\n icon={item.icon}\n actionText={item.actionText ?? ''}\n closable={item.closable ?? true}\n duration={item.duration}\n closeLabel={item.closeLabel ?? 'Fechar notificação'}\n paused={covered || this.hovering || this.focused || this.retainingPointerExpansion}\n announcement=\"off\"\n animated={depth === 0}\n onToastDismissRequested={event => this.dismiss(event, item.id)}\n onToastAction={event => this.action(event, item.id)}\n />\n </div>\n );\n })}\n </div>\n </section>\n <div class=\"sr-only\" role=\"status\" aria-live=\"polite\" aria-atomic=\"false\" aria-relevant=\"additions text\">\n {this.announcements\n .filter(record => record.priority === 'polite')\n .map(record => (\n <p key={record.version}>{record.text}</p>\n ))}\n </div>\n <div class=\"sr-only\" role=\"alert\" aria-live=\"assertive\" aria-atomic=\"false\" aria-relevant=\"additions text\">\n {this.announcements\n .filter(record => record.priority === 'assertive')\n .map(record => (\n <p key={record.version}>{record.text}</p>\n ))}\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}