@getflip/swirl-components 0.5.0 → 0.6.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 (146) hide show
  1. package/dist/cjs/flip-app-layout_5.cjs.entry.js +8 -6
  2. package/dist/cjs/flip-button.cjs.entry.js +10 -5
  3. package/dist/cjs/flip-checkbox.cjs.entry.js +13 -6
  4. package/dist/cjs/flip-console-layout.cjs.entry.js +31 -0
  5. package/dist/cjs/flip-date-input.cjs.entry.js +9 -7
  6. package/dist/cjs/flip-date-picker_2.cjs.entry.js +11 -5
  7. package/dist/cjs/flip-file-viewer_7.cjs.entry.js +8 -6
  8. package/dist/cjs/flip-form-control.cjs.entry.js +23 -6
  9. package/dist/cjs/{flip-text.cjs.entry.js → flip-heading_2.cjs.entry.js} +18 -1
  10. package/dist/cjs/flip-icon-check-small_3.cjs.entry.js +9 -7
  11. package/dist/cjs/flip-icon-help.cjs.entry.js +20 -0
  12. package/dist/cjs/flip-pdf-reader.cjs.entry.js +1 -1
  13. package/dist/cjs/flip-popover.cjs.entry.js +74 -23
  14. package/dist/cjs/flip-radio.cjs.entry.js +11 -2
  15. package/dist/cjs/flip-select.cjs.entry.js +71 -0
  16. package/dist/cjs/flip-text-input.cjs.entry.js +12 -16
  17. package/dist/cjs/flip-toast-provider.cjs.entry.js +7 -5
  18. package/dist/cjs/flip-tooltip.cjs.entry.js +1 -1
  19. package/dist/cjs/loader.cjs.js +1 -1
  20. package/dist/cjs/swirl-components.cjs.js +1 -1
  21. package/dist/collection/collection-manifest.json +4 -1
  22. package/dist/collection/components/flip-app-layout/flip-app-layout.css +1 -1
  23. package/dist/collection/components/flip-app-layout/flip-app-layout.js +7 -5
  24. package/dist/collection/components/flip-button/flip-button.js +10 -5
  25. package/dist/collection/components/flip-checkbox/flip-checkbox.js +13 -6
  26. package/dist/collection/components/flip-console-layout/flip-console-layout.css +144 -0
  27. package/dist/collection/components/flip-console-layout/flip-console-layout.js +250 -0
  28. package/dist/collection/components/flip-console-layout/flip-console-layout.stories.js +29 -0
  29. package/dist/collection/components/flip-date-input/flip-date-input.js +9 -7
  30. package/dist/collection/components/flip-date-input/flip-date-input.stories.js +4 -1
  31. package/dist/collection/components/flip-date-picker/flip-date-picker.js +11 -5
  32. package/dist/collection/components/flip-file-viewer/viewers/flip-file-viewer-pdf/flip-file-viewer-pdf.css +12 -15
  33. package/dist/collection/components/flip-file-viewer/viewers/flip-file-viewer-pdf/flip-file-viewer-pdf.js +7 -5
  34. package/dist/collection/components/flip-form-control/flip-form-control.css +14 -2
  35. package/dist/collection/components/flip-form-control/flip-form-control.js +23 -4
  36. package/dist/collection/components/flip-form-control/flip-form-control.stories.js +26 -1
  37. package/dist/collection/components/flip-icon/icons/flip-icon-help.js +49 -0
  38. package/dist/collection/components/flip-option-list/flip-option-list.js +9 -7
  39. package/dist/collection/components/flip-pdf-reader/flip-pdf-reader.css +0 -1
  40. package/dist/collection/components/flip-popover/flip-popover.css +42 -4
  41. package/dist/collection/components/flip-popover/flip-popover.js +186 -28
  42. package/dist/collection/components/flip-popover/flip-popover.stories.js +12 -0
  43. package/dist/collection/components/flip-progress-indicator/flip-progress-indicator.css +0 -3
  44. package/dist/collection/components/flip-radio/flip-radio.css +0 -1
  45. package/dist/collection/components/flip-radio/flip-radio.js +10 -1
  46. package/dist/collection/components/flip-select/flip-select.css +52 -0
  47. package/dist/collection/components/flip-select/flip-select.js +218 -0
  48. package/dist/collection/components/flip-select/flip-select.stories.js +45 -0
  49. package/dist/collection/components/flip-text/flip-text.js +1 -1
  50. package/dist/collection/components/flip-text-input/flip-text-input.css +3 -5
  51. package/dist/collection/components/flip-text-input/flip-text-input.js +11 -15
  52. package/dist/collection/components/flip-text-input/flip-text-input.stories.js +4 -1
  53. package/dist/collection/components/flip-toast-provider/flip-toast-provider.js +7 -5
  54. package/dist/collection/components/flip-tooltip/flip-tooltip.css +0 -1
  55. package/dist/collection/utils.js +2 -1
  56. package/dist/components/flip-app-layout2.js +8 -6
  57. package/dist/components/flip-button2.js +10 -5
  58. package/dist/components/flip-checkbox.js +13 -6
  59. package/dist/components/flip-console-layout.d.ts +11 -0
  60. package/dist/components/flip-console-layout.js +74 -0
  61. package/dist/components/flip-date-input.js +9 -7
  62. package/dist/components/flip-date-picker2.js +11 -5
  63. package/dist/components/flip-file-viewer-pdf2.js +8 -6
  64. package/dist/components/flip-form-control.js +23 -6
  65. package/dist/components/flip-icon-help.d.ts +11 -0
  66. package/dist/components/flip-icon-help.js +37 -0
  67. package/dist/components/flip-option-list2.js +9 -7
  68. package/dist/components/flip-pdf-reader.js +1 -1
  69. package/dist/components/flip-popover2.js +81 -26
  70. package/dist/components/flip-radio.js +11 -2
  71. package/dist/components/flip-select.d.ts +11 -0
  72. package/dist/components/flip-select.js +118 -0
  73. package/dist/components/flip-text-input2.js +12 -16
  74. package/dist/components/flip-text2.js +1 -1
  75. package/dist/components/flip-toast-provider.js +7 -5
  76. package/dist/components/flip-tooltip.js +1 -1
  77. package/dist/components/index.d.ts +3 -0
  78. package/dist/components/index.js +3 -0
  79. package/dist/esm/flip-app-layout_5.entry.js +8 -6
  80. package/dist/esm/flip-button.entry.js +10 -5
  81. package/dist/esm/flip-checkbox.entry.js +13 -6
  82. package/dist/esm/flip-console-layout.entry.js +27 -0
  83. package/dist/esm/flip-date-input.entry.js +9 -7
  84. package/dist/esm/flip-date-picker_2.entry.js +11 -5
  85. package/dist/esm/flip-file-viewer_7.entry.js +8 -6
  86. package/dist/esm/flip-form-control.entry.js +23 -6
  87. package/dist/esm/{flip-text.entry.js → flip-heading_2.entry.js} +18 -2
  88. package/dist/esm/flip-icon-check-small_3.entry.js +9 -7
  89. package/dist/esm/flip-icon-help.entry.js +16 -0
  90. package/dist/esm/flip-pdf-reader.entry.js +1 -1
  91. package/dist/esm/flip-popover.entry.js +76 -25
  92. package/dist/esm/flip-radio.entry.js +11 -2
  93. package/dist/esm/flip-select.entry.js +67 -0
  94. package/dist/esm/flip-text-input.entry.js +12 -16
  95. package/dist/esm/flip-toast-provider.entry.js +7 -5
  96. package/dist/esm/flip-tooltip.entry.js +1 -1
  97. package/dist/esm/loader.js +1 -1
  98. package/dist/esm/swirl-components.js +1 -1
  99. package/dist/swirl-components/{p-691cf427.entry.js → p-1a41a293.entry.js} +1 -1
  100. package/dist/swirl-components/p-1bf07805.entry.js +1 -0
  101. package/dist/swirl-components/p-1e74139c.entry.js +1 -0
  102. package/dist/swirl-components/p-215365c6.entry.js +1 -0
  103. package/dist/swirl-components/{p-3436f57d.entry.js → p-2b35b65a.entry.js} +1 -1
  104. package/dist/swirl-components/p-3574a311.entry.js +1 -0
  105. package/dist/swirl-components/p-4743c7ae.entry.js +1 -0
  106. package/dist/swirl-components/p-4d82b925.entry.js +1 -0
  107. package/dist/swirl-components/{p-fffbace2.entry.js → p-5b14d410.entry.js} +1 -1
  108. package/dist/swirl-components/p-6b6ccfd4.entry.js +1 -0
  109. package/dist/swirl-components/p-6b7077e3.entry.js +1 -0
  110. package/dist/swirl-components/{p-b7ffc9ca.entry.js → p-8f9ff36b.entry.js} +1 -1
  111. package/dist/swirl-components/p-96c0db13.entry.js +1 -0
  112. package/dist/swirl-components/p-b71da729.entry.js +1 -0
  113. package/dist/swirl-components/p-b9d65b7d.entry.js +1 -0
  114. package/dist/swirl-components/{p-56d05761.entry.js → p-de892e4e.entry.js} +1 -1
  115. package/dist/swirl-components/p-e1434bcd.entry.js +1 -0
  116. package/dist/swirl-components/p-ead5c136.entry.js +1 -0
  117. package/dist/swirl-components/swirl-components.esm.js +1 -1
  118. package/dist/types/components/flip-button/flip-button.d.ts +1 -0
  119. package/dist/types/components/flip-checkbox/flip-checkbox.d.ts +1 -0
  120. package/dist/types/components/flip-console-layout/flip-console-layout.d.ts +17 -0
  121. package/dist/types/components/flip-console-layout/flip-console-layout.stories.d.ts +14 -0
  122. package/dist/types/components/flip-form-control/flip-form-control.d.ts +1 -0
  123. package/dist/types/components/flip-icon/icons/flip-icon-help.d.ts +5 -0
  124. package/dist/types/components/flip-option-list/flip-option-list.d.ts +1 -0
  125. package/dist/types/components/flip-popover/flip-popover.d.ts +13 -4
  126. package/dist/types/components/flip-popover/flip-popover.stories.d.ts +12 -0
  127. package/dist/types/components/flip-radio/flip-radio.d.ts +1 -0
  128. package/dist/types/components/flip-select/flip-select.d.ts +25 -0
  129. package/dist/types/components/flip-select/flip-select.stories.d.ts +13 -0
  130. package/dist/types/components.d.ts +99 -0
  131. package/dist/types/utils.d.ts +1 -1
  132. package/package.json +2 -2
  133. package/vscode-data.json +115 -0
  134. package/dist/cjs/flip-heading.cjs.entry.js +0 -25
  135. package/dist/esm/flip-heading.entry.js +0 -21
  136. package/dist/swirl-components/p-1cf5d228.entry.js +0 -1
  137. package/dist/swirl-components/p-21acd8c1.entry.js +0 -1
  138. package/dist/swirl-components/p-56baecad.entry.js +0 -1
  139. package/dist/swirl-components/p-5c9e99ff.entry.js +0 -1
  140. package/dist/swirl-components/p-5eecafeb.entry.js +0 -1
  141. package/dist/swirl-components/p-697ed33b.entry.js +0 -1
  142. package/dist/swirl-components/p-81a41df8.entry.js +0 -1
  143. package/dist/swirl-components/p-93a9605c.entry.js +0 -1
  144. package/dist/swirl-components/p-a7eebf1e.entry.js +0 -1
  145. package/dist/swirl-components/p-ca3b3145.entry.js +0 -1
  146. package/dist/swirl-components/p-ec150068.entry.js +0 -1
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface FlipIconHelp extends Components.FlipIconHelp, HTMLElement {}
4
+ export const FlipIconHelp: {
5
+ prototype: FlipIconHelp;
6
+ new (): FlipIconHelp;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,37 @@
1
+ import { proxyCustomElement, HTMLElement, h, Fragment } from '@stencil/core/internal/client';
2
+
3
+ const flipIconCss = ":host{display:inline-flex}";
4
+
5
+ const FlipIconHelp$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
6
+ constructor() {
7
+ super();
8
+ this.__registerHost();
9
+ this.__attachShadow();
10
+ this.size = 24;
11
+ }
12
+ render() {
13
+ return (h("svg", { class: "flip-icon", fill: "none", height: this.size, part: "icon", viewBox: `0 0 ${this.size} ${this.size}`, width: this.size, xmlns: "http://www.w3.org/2000/svg" }, this.size === 16 && (h(Fragment, null, h("path", { d: "M7.96665 11.9987C8.19998 11.9987 8.39731 11.918 8.55865 11.7567C8.71953 11.5958 8.79998 11.3987 8.79998 11.1654C8.79998 10.932 8.71953 10.7349 8.55865 10.574C8.39731 10.4127 8.19998 10.332 7.96665 10.332C7.73331 10.332 7.53598 10.4127 7.37465 10.574C7.21376 10.7349 7.13331 10.932 7.13331 11.1654C7.13331 11.3987 7.21376 11.5958 7.37465 11.7567C7.53598 11.918 7.73331 11.9987 7.96665 11.9987ZM8.06665 5.13203C8.37776 5.13203 8.62776 5.21803 8.81665 5.39003C9.00554 5.56248 9.09998 5.78759 9.09998 6.06536C9.09998 6.25425 9.0362 6.44581 8.90865 6.64003C8.78065 6.8347 8.59998 7.03759 8.36665 7.2487C8.03331 7.53759 7.78887 7.81536 7.63331 8.08203C7.47776 8.3487 7.39998 8.61536 7.39998 8.88203C7.39998 9.03759 7.45842 9.16803 7.57531 9.27336C7.69176 9.37914 7.82776 9.43203 7.98331 9.43203C8.13887 9.43203 8.27776 9.37648 8.39998 9.26536C8.5222 9.15425 8.59998 9.01536 8.63331 8.8487C8.66665 8.65981 8.74176 8.48492 8.85865 8.32403C8.97509 8.1627 9.16665 7.95425 9.43331 7.6987C9.77776 7.37648 10.0195 7.08203 10.1586 6.81536C10.2973 6.5487 10.3666 6.25425 10.3666 5.93203C10.3666 5.36536 10.1529 4.90136 9.72531 4.54003C9.29731 4.17914 8.74442 3.9987 8.06665 3.9987C7.59998 3.9987 7.1862 4.08759 6.82531 4.26536C6.46398 4.44314 6.18331 4.71536 5.98331 5.08203C5.90554 5.22648 5.87776 5.36803 5.89998 5.5067C5.9222 5.64581 5.99998 5.75981 6.13331 5.8487C6.27776 5.93759 6.4362 5.96536 6.60865 5.93203C6.78065 5.8987 6.9222 5.80425 7.03331 5.6487C7.15554 5.48203 7.30287 5.35425 7.47531 5.26536C7.64731 5.17648 7.84442 5.13203 8.06665 5.13203ZM7.99998 14.6654C7.08887 14.6654 6.22776 14.4903 5.41665 14.14C4.60554 13.7903 3.89731 13.3154 3.29198 12.7154C2.6862 12.1154 2.20842 11.4098 1.85865 10.5987C1.50842 9.78759 1.33331 8.92092 1.33331 7.9987C1.33331 7.07648 1.50842 6.20981 1.85865 5.3987C2.20842 4.58759 2.6862 3.88203 3.29198 3.28203C3.89731 2.68203 4.60554 2.20692 5.41665 1.8567C6.22776 1.50692 7.08887 1.33203 7.99998 1.33203C8.93331 1.33203 9.80553 1.50692 10.6166 1.8567C11.4278 2.20692 12.1333 2.68203 12.7333 3.28203C13.3333 3.88203 13.8055 4.58759 14.15 5.3987C14.4944 6.20981 14.6666 7.07648 14.6666 7.9987C14.6666 8.92092 14.4944 9.78759 14.15 10.5987C13.8055 11.4098 13.3333 12.1154 12.7333 12.7154C12.1333 13.3154 11.4278 13.7903 10.6166 14.14C9.80553 14.4903 8.93331 14.6654 7.99998 14.6654ZM7.99998 13.332C9.48887 13.332 10.75 12.8127 11.7833 11.774C12.8166 10.7349 13.3333 9.47647 13.3333 7.9987C13.3333 6.52092 12.8166 5.26248 11.7833 4.22336C10.75 3.1847 9.48887 2.66536 7.99998 2.66536C6.54442 2.66536 5.29153 3.1847 4.24131 4.22336C3.19154 5.26248 2.66665 6.52092 2.66665 7.9987C2.66665 9.47647 3.19154 10.7349 4.24131 11.774C5.29153 12.8127 6.54442 13.332 7.99998 13.332Z", fill: "currentColor" }))), this.size === 24 && (h(Fragment, null, h("path", { d: "M11.95 18C12.3 18 12.596 17.879 12.838 17.637C13.0793 17.3957 13.2 17.1 13.2 16.75C13.2 16.4 13.0793 16.1043 12.838 15.863C12.596 15.621 12.3 15.5 11.95 15.5C11.6 15.5 11.304 15.621 11.062 15.863C10.8207 16.1043 10.7 16.4 10.7 16.75C10.7 17.1 10.8207 17.3957 11.062 17.637C11.304 17.879 11.6 18 11.95 18ZM12.1 7.7C12.5667 7.7 12.9417 7.829 13.225 8.087C13.5083 8.34567 13.65 8.68333 13.65 9.1C13.65 9.38333 13.5543 9.67067 13.363 9.962C13.171 10.254 12.9 10.5583 12.55 10.875C12.05 11.3083 11.6833 11.725 11.45 12.125C11.2167 12.525 11.1 12.925 11.1 13.325C11.1 13.5583 11.1877 13.754 11.363 13.912C11.5377 14.0707 11.7417 14.15 11.975 14.15C12.2083 14.15 12.4167 14.0667 12.6 13.9C12.7833 13.7333 12.9 13.525 12.95 13.275C13 12.9917 13.1127 12.7293 13.288 12.488C13.4627 12.246 13.75 11.9333 14.15 11.55C14.6667 11.0667 15.0293 10.625 15.238 10.225C15.446 9.825 15.55 9.38333 15.55 8.9C15.55 8.05 15.2293 7.354 14.588 6.812C13.946 6.27067 13.1167 6 12.1 6C11.4 6 10.7793 6.13333 10.238 6.4C9.696 6.66667 9.275 7.075 8.975 7.625C8.85833 7.84167 8.81667 8.054 8.85 8.262C8.88333 8.47067 9 8.64167 9.2 8.775C9.41667 8.90833 9.65433 8.95 9.913 8.9C10.171 8.85 10.3833 8.70833 10.55 8.475C10.7333 8.225 10.9543 8.03333 11.213 7.9C11.471 7.76667 11.7667 7.7 12.1 7.7ZM12 22C10.6333 22 9.34167 21.7373 8.125 21.212C6.90833 20.6873 5.846 19.975 4.938 19.075C4.02933 18.175 3.31267 17.1167 2.788 15.9C2.26267 14.6833 2 13.3833 2 12C2 10.6167 2.26267 9.31667 2.788 8.1C3.31267 6.88333 4.02933 5.825 4.938 4.925C5.846 4.025 6.90833 3.31233 8.125 2.787C9.34167 2.26233 10.6333 2 12 2C13.4 2 14.7083 2.26233 15.925 2.787C17.1417 3.31233 18.2 4.025 19.1 4.925C20 5.825 20.7083 6.88333 21.225 8.1C21.7417 9.31667 22 10.6167 22 12C22 13.3833 21.7417 14.6833 21.225 15.9C20.7083 17.1167 20 18.175 19.1 19.075C18.2 19.975 17.1417 20.6873 15.925 21.212C14.7083 21.7373 13.4 22 12 22ZM12 20C14.2333 20 16.125 19.221 17.675 17.663C19.225 16.1043 20 14.2167 20 12C20 9.78333 19.225 7.89567 17.675 6.337C16.125 4.779 14.2333 4 12 4C9.81667 4 7.93733 4.779 6.362 6.337C4.78733 7.89567 4 9.78333 4 12C4 14.2167 4.78733 16.1043 6.362 17.663C7.93733 19.221 9.81667 20 12 20Z", fill: "currentColor" }))), this.size === 28 && (h(Fragment, null, h("path", { d: "M13.9417 20.9999C14.35 20.9999 14.6953 20.8588 14.9777 20.5764C15.2592 20.2949 15.4 19.9499 15.4 19.5416C15.4 19.1333 15.2592 18.7883 14.9777 18.5068C14.6953 18.2244 14.35 18.0833 13.9417 18.0833C13.5333 18.0833 13.188 18.2244 12.9057 18.5068C12.6241 18.7883 12.4833 19.1333 12.4833 19.5416C12.4833 19.9499 12.6241 20.2949 12.9057 20.5764C13.188 20.8588 13.5333 20.9999 13.9417 20.9999ZM14.1167 8.98325C14.6611 8.98325 15.0986 9.13375 15.4292 9.43475C15.7597 9.73653 15.925 10.1305 15.925 10.6166C15.925 10.9471 15.8134 11.2824 15.5902 11.6223C15.3662 11.9629 15.05 12.318 14.6417 12.6874C14.0583 13.193 13.6306 13.6791 13.3583 14.1458C13.0861 14.6124 12.95 15.0791 12.95 15.5458C12.95 15.818 13.0523 16.0463 13.2568 16.2306C13.4606 16.4157 13.6986 16.5083 13.9708 16.5083C14.2431 16.5083 14.4861 16.411 14.7 16.2166C14.9139 16.0221 15.05 15.7791 15.1083 15.4874C15.1667 15.1569 15.2981 14.8508 15.5027 14.5693C15.7064 14.2869 16.0417 13.9221 16.5083 13.4749C17.1111 12.911 17.5342 12.3958 17.7777 11.9291C18.0203 11.4624 18.1417 10.9471 18.1417 10.3833C18.1417 9.39159 17.7676 8.57959 17.0193 7.94725C16.2703 7.3157 15.3028 6.99992 14.1167 6.99992C13.3 6.99992 12.5759 7.15547 11.9443 7.46659C11.312 7.7777 10.8208 8.25409 10.4708 8.89575C10.3347 9.14853 10.2861 9.39625 10.325 9.63892C10.3639 9.88236 10.5 10.0819 10.7333 10.2374C10.9861 10.393 11.2634 10.4416 11.5652 10.3833C11.8662 10.3249 12.1139 10.1596 12.3083 9.88742C12.5222 9.59575 12.7801 9.37214 13.0818 9.21659C13.3828 9.06103 13.7278 8.98325 14.1167 8.98325ZM14 25.6666C12.4056 25.6666 10.8986 25.3601 9.47917 24.7473C8.05973 24.1351 6.82034 23.3041 5.761 22.2541C4.70089 21.2041 3.86478 19.9694 3.25267 18.5499C2.63978 17.1305 2.33334 15.6138 2.33334 13.9999C2.33334 12.386 2.63978 10.8694 3.25267 9.44992C3.86478 8.03048 4.70089 6.79575 5.761 5.74575C6.82034 4.69575 8.05973 3.86431 9.47917 3.25142C10.8986 2.63931 12.4056 2.33325 14 2.33325C15.6333 2.33325 17.1597 2.63931 18.5792 3.25142C19.9986 3.86431 21.2333 4.69575 22.2833 5.74575C23.3333 6.79575 24.1597 8.03048 24.7625 9.44992C25.3653 10.8694 25.6667 12.386 25.6667 13.9999C25.6667 15.6138 25.3653 17.1305 24.7625 18.5499C24.1597 19.9694 23.3333 21.2041 22.2833 22.2541C21.2333 23.3041 19.9986 24.1351 18.5792 24.7473C17.1597 25.3601 15.6333 25.6666 14 25.6666ZM14 23.3333C16.6056 23.3333 18.8125 22.4244 20.6208 20.6068C22.4292 18.7883 23.3333 16.586 23.3333 13.9999C23.3333 11.4138 22.4292 9.21153 20.6208 7.39309C18.8125 5.57542 16.6056 4.66659 14 4.66659C11.4528 4.66659 9.26023 5.57542 7.42234 7.39309C5.58523 9.21153 4.66667 11.4138 4.66667 13.9999C4.66667 16.586 5.58523 18.7883 7.42234 20.6068C9.26023 22.4244 11.4528 23.3333 14 23.3333Z", fill: "currentColor" })))));
14
+ }
15
+ static get style() { return flipIconCss; }
16
+ }, [1, "flip-icon-help", {
17
+ "size": [2]
18
+ }]);
19
+ function defineCustomElement$1() {
20
+ if (typeof customElements === "undefined") {
21
+ return;
22
+ }
23
+ const components = ["flip-icon-help"];
24
+ components.forEach(tagName => { switch (tagName) {
25
+ case "flip-icon-help":
26
+ if (!customElements.get(tagName)) {
27
+ customElements.define(tagName, FlipIconHelp$1);
28
+ }
29
+ break;
30
+ } });
31
+ }
32
+ defineCustomElement$1();
33
+
34
+ const FlipIconHelp = FlipIconHelp$1;
35
+ const defineCustomElement = defineCustomElement$1;
36
+
37
+ export { FlipIconHelp, defineCustomElement };
@@ -10,9 +10,15 @@ const FlipOptionList = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
10
10
  this.valueChange = createEvent(this, "valueChange", 7);
11
11
  this.value = [];
12
12
  this.onFocus = () => {
13
- this.focusItem(0);
13
+ if (Boolean(this.focusedItem)) {
14
+ this.focusItem(this.getActiveItemIndex());
15
+ }
16
+ else {
17
+ this.focusItem(0);
18
+ }
14
19
  };
15
20
  this.onClick = (event) => {
21
+ event.preventDefault();
16
22
  const target = event.target;
17
23
  const item = target === null || target === void 0 ? void 0 : target.closest("flip-option-list-item");
18
24
  if (!Boolean(item)) {
@@ -149,6 +155,7 @@ const FlipOptionList = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
149
155
  }
150
156
  item.setAttribute("tabIndex", "0");
151
157
  item.focus();
158
+ this.focusedItem = item;
152
159
  }
153
160
  focusNextItem() {
154
161
  if (this.disabled) {
@@ -166,12 +173,7 @@ const FlipOptionList = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
166
173
  getActiveItemIndex() {
167
174
  return this.items
168
175
  .map((item) => item.shadowRoot.querySelector('[role="option"]'))
169
- .findIndex((item) => {
170
- var _a, _b;
171
- return item === document.activeElement ||
172
- item ===
173
- ((_b = (_a = document.activeElement) === null || _a === void 0 ? void 0 : _a.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('[role="option"]'));
174
- });
176
+ .findIndex((item) => item === this.focusedItem);
175
177
  }
176
178
  render() {
177
179
  const ariaMultiselectable = this.multiSelect ? "true" : undefined;
@@ -21,7 +21,7 @@ import { d as defineCustomElement$4 } from './flip-inline-error2.js';
21
21
  import { d as defineCustomElement$3 } from './flip-spinner2.js';
22
22
  import { d as defineCustomElement$2 } from './flip-visually-hidden2.js';
23
23
 
24
- const flipPdfReaderCss = ":host{display:block}:host *{box-sizing:border-box}.pdf-reader{position:fixed;z-index:var(--s-z-40);background-color:var(--s-surface-raised-default);inset:0;touch-action:pan-x pan-y}.pdf-reader[aria-hidden=\"true\"]{display:none}.pdf-reader:not(.pdf-reader--closing) .pdf-reader__body{-webkit-animation:0.15s pdf-reader-fade-in;animation:0.15s pdf-reader-fade-in}@media (prefers-reduced-motion){.pdf-reader:not(.pdf-reader--closing) .pdf-reader__body{-webkit-animation:none;animation:none}}.pdf-reader--closing{-webkit-animation:0.15s pdf-reader-fade-out;animation:0.15s pdf-reader-fade-out;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}@media (prefers-reduced-motion){.pdf-reader--closing{-webkit-animation:none;animation:none}}.pdf-reader__body{position:relative;width:100%;height:100%}.pdf-reader__header{display:flex;height:4rem;padding-right:var(--s-space-16);padding-left:var(--s-space-16);align-items:center;border-bottom:var(--s-border-width-default) solid var(--s-border-default);background-color:var(--s-background-default);gap:var(--s-space-8)}.pdf-reader__header-left,.pdf-reader__header-right{display:flex;flex-grow:1;align-items:center;gap:var(--s-space-8)}@media (min-width: 768px){.pdf-reader__header-left,.pdf-reader__header-right{flex-basis:calc(100 / 3 * 1%);flex-grow:0}}.pdf-reader__header-right{justify-content:flex-end}.pdf-reader__header-center{display:none;flex-grow:1;justify-content:center;align-items:center;align-items:center;gap:var(--s-space-16)}@media (min-width: 768px){.pdf-reader__header-center{display:flex}}.pdf-reader__label{overflow:hidden;flex-grow:1;font-weight:var(--s-font-weight-semibold);white-space:nowrap;text-overflow:ellipsis}.pdf-reader__zoom-button-container{display:flex;align-items:center;gap:var(--s-space-8)}.pdf-reader__zoom-button-container>*:not(:last-child){position:relative}.pdf-reader__zoom-button-container>*:not(:last-child):after{position:absolute;top:50%;right:calc(-1 * var(--s-space-4));width:var(--s-border-width-default);height:1.5rem;background-color:var(--s-border-default);content:\"\";transform:translate3d(50%, -50%, 0)}.pdf-reader__zoom-select-container{position:relative}.pdf-reader__zoom-select{display:inline-flex;height:2.5rem;padding-right:var(--s-space-12);padding-right:calc(var(--s-space-8) + 1.5rem + var(--s-space-12));padding-left:var(--s-space-12);justify-content:flex-start;align-items:center;border:var(--s-border-width-default) solid var(--s-border-default);border-radius:var(--s-border-radius-sm);color:var(--s-interactive-neutral-default);background-color:transparent;font:inherit;font-weight:var(--s-font-weight-medium);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.pdf-reader__zoom-select:focus{outline-color:var(--s-focus-default)}.pdf-reader__zoom-select-icon{position:absolute;top:50%;right:var(--s-space-8);display:inline-flex;transform:translateY(-50%);pointer-events:none}.pdf-reader__content{width:100%;height:calc(100% - 4rem)}.pdf-reader__mobile-zoom-controls{position:absolute;z-index:1;right:var(--s-space-16);bottom:var(--s-space-32);display:flex;padding-bottom:var(--s-space-4);flex-direction:column;gap:var(--s-space-8)}@media (min-width: 768px){.pdf-reader__mobile-zoom-controls{display:none}}.pdf-reader__mobile-zoom-button{display:inline-flex;width:2.5rem;height:2.5rem;justify-content:center;align-items:center;border:none;border-radius:50%;color:var(--s-icon-on-image);background-color:rgba(0, 0, 0, 0.6);cursor:pointer;transition:opacity 0.15s;pointer-events:auto}.pdf-reader__mobile-zoom-button:disabled{cursor:default}@-webkit-keyframes pdf-reader-fade-in{from{opacity:0}to{opacity:1}}@keyframes pdf-reader-fade-in{from{opacity:0}to{opacity:1}}@-webkit-keyframes pdf-reader-fade-out{from{opacity:1}to{opacity:0}}@keyframes pdf-reader-fade-out{from{opacity:1}to{opacity:0}}";
24
+ const flipPdfReaderCss = ":host{display:block}:host *{box-sizing:border-box}.pdf-reader{position:fixed;z-index:var(--s-z-40);background-color:var(--s-surface-raised-default);inset:0;touch-action:pan-x pan-y}.pdf-reader[aria-hidden=\"true\"]{display:none}.pdf-reader:not(.pdf-reader--closing) .pdf-reader__body{-webkit-animation:0.15s pdf-reader-fade-in;animation:0.15s pdf-reader-fade-in}@media (prefers-reduced-motion){.pdf-reader:not(.pdf-reader--closing) .pdf-reader__body{-webkit-animation:none;animation:none}}.pdf-reader--closing{-webkit-animation:0.15s pdf-reader-fade-out;animation:0.15s pdf-reader-fade-out;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}@media (prefers-reduced-motion){.pdf-reader--closing{-webkit-animation:none;animation:none}}.pdf-reader__body{position:relative;width:100%;height:100%}.pdf-reader__header{display:flex;height:4rem;padding-right:var(--s-space-16);padding-left:var(--s-space-16);align-items:center;border-bottom:var(--s-border-width-default) solid var(--s-border-default);background-color:var(--s-background-default);gap:var(--s-space-8)}.pdf-reader__header-left,.pdf-reader__header-right{display:flex;flex-grow:1;align-items:center;gap:var(--s-space-8)}@media (min-width: 768px){.pdf-reader__header-left,.pdf-reader__header-right{flex-basis:calc(100 / 3 * 1%);flex-grow:0}}.pdf-reader__header-right{justify-content:flex-end}.pdf-reader__header-center{display:none;flex-grow:1;justify-content:center;align-items:center;gap:var(--s-space-16)}@media (min-width: 768px){.pdf-reader__header-center{display:flex}}.pdf-reader__label{overflow:hidden;flex-grow:1;font-weight:var(--s-font-weight-semibold);white-space:nowrap;text-overflow:ellipsis}.pdf-reader__zoom-button-container{display:flex;align-items:center;gap:var(--s-space-8)}.pdf-reader__zoom-button-container>*:not(:last-child){position:relative}.pdf-reader__zoom-button-container>*:not(:last-child):after{position:absolute;top:50%;right:calc(-1 * var(--s-space-4));width:var(--s-border-width-default);height:1.5rem;background-color:var(--s-border-default);content:\"\";transform:translate3d(50%, -50%, 0)}.pdf-reader__zoom-select-container{position:relative}.pdf-reader__zoom-select{display:inline-flex;height:2.5rem;padding-right:var(--s-space-12);padding-right:calc(var(--s-space-8) + 1.5rem + var(--s-space-12));padding-left:var(--s-space-12);justify-content:flex-start;align-items:center;border:var(--s-border-width-default) solid var(--s-border-default);border-radius:var(--s-border-radius-sm);color:var(--s-interactive-neutral-default);background-color:transparent;font:inherit;font-weight:var(--s-font-weight-medium);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.pdf-reader__zoom-select:focus{outline-color:var(--s-focus-default)}.pdf-reader__zoom-select-icon{position:absolute;top:50%;right:var(--s-space-8);display:inline-flex;transform:translateY(-50%);pointer-events:none}.pdf-reader__content{width:100%;height:calc(100% - 4rem)}.pdf-reader__mobile-zoom-controls{position:absolute;z-index:1;right:var(--s-space-16);bottom:var(--s-space-32);display:flex;padding-bottom:var(--s-space-4);flex-direction:column;gap:var(--s-space-8)}@media (min-width: 768px){.pdf-reader__mobile-zoom-controls{display:none}}.pdf-reader__mobile-zoom-button{display:inline-flex;width:2.5rem;height:2.5rem;justify-content:center;align-items:center;border:none;border-radius:50%;color:var(--s-icon-on-image);background-color:rgba(0, 0, 0, 0.6);cursor:pointer;transition:opacity 0.15s;pointer-events:auto}.pdf-reader__mobile-zoom-button:disabled{cursor:default}@-webkit-keyframes pdf-reader-fade-in{from{opacity:0}to{opacity:1}}@keyframes pdf-reader-fade-in{from{opacity:0}to{opacity:1}}@-webkit-keyframes pdf-reader-fade-out{from{opacity:1}to{opacity:0}}@keyframes pdf-reader-fade-out{from{opacity:1}to{opacity:0}}";
25
25
 
26
26
  const FlipPdfReader$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
27
27
  constructor() {
@@ -1,29 +1,24 @@
1
- import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
- import { c as computePosition, a as autoUpdate, s as shift, f as flip } from './floating-ui.dom.esm.js';
1
+ import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
+ import { c as computePosition, a as autoUpdate, o as offset, s as shift, f as flip } from './floating-ui.dom.esm.js';
3
3
  import { e as enableBodyScroll, d as disableBodyScroll } from './bodyScrollLock.esm.js';
4
4
  import { c as classnames } from './index2.js';
5
5
  import { i as isMobileViewport, q as querySelectorAllDeep } from './utils.js';
6
6
 
7
- const flipPopoverCss = ":host{position:relative;z-index:var(--s-z-40);display:inline-flex}:host *{box-sizing:border-box}.popover--active:not(.popover--closing) .popover__backdrop{-webkit-animation:0.15s popover-fade-in;animation:0.15s popover-fade-in}@media (prefers-reduced-motion){.popover--active:not(.popover--closing) .popover__backdrop{-webkit-animation:none;animation:none}}.popover--active:not(.popover--closing) .popover__content{-webkit-animation:0.15s popover-slide-in;animation:0.15s popover-slide-in}@media (min-width: 768px){.popover--active:not(.popover--closing) .popover__content{transform-origin:top left;-webkit-animation:0.15s popover-fade-scale-in;animation:0.15s popover-fade-scale-in}}@media (prefers-reduced-motion){.popover--active:not(.popover--closing) .popover__content{-webkit-animation:none;animation:none}}.popover--closing .popover__backdrop{-webkit-animation:0.15s popover-fade-out;animation:0.15s popover-fade-out;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}@media (prefers-reduced-motion){.popover--closing .popover__backdrop{-webkit-animation:none;animation:none}}.popover--closing .popover__content{-webkit-animation:0.15s popover-slide-out;animation:0.15s popover-slide-out;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}@media (min-width: 768px){.popover--closing .popover__content{-webkit-animation:0.15s popover-fade-out;animation:0.15s popover-fade-out}}@media (prefers-reduced-motion){.popover--closing .popover__content{-webkit-animation:none;animation:none}}.popover--inactive .popover__content{display:none}.popover__backdrop{position:fixed;z-index:0;background-color:rgba(0, 0, 0, 0.2);-webkit-animation:0.15s popover-backdrop-fade-in;animation:0.15s popover-backdrop-fade-in;inset:0}@media (prefers-reduced-motion){.popover__backdrop{-webkit-animation:none;animation:none}}@media (min-width: 768px){.popover__backdrop{display:none}}.popover__content{position:fixed;z-index:2;right:0;bottom:0;left:0;overflow:hidden;border-top-left-radius:var(--s-border-radius-xl);border-top-right-radius:var(--s-border-radius-xl);background-color:var(--s-surface-overlay-default)}@media (min-width: 768px){.popover__content{right:unset;bottom:unset;left:unset;max-width:22.5rem;border-radius:var(--s-border-radius-sm);-webkit-animation:none;animation:none;box-shadow:0.125rem 0.25rem 2.5rem rgba(0, 0, 0, 0.14)}}.popover__scroll-container{overflow-x:hidden;overflow-y:auto;width:100%;max-height:90vh;padding-top:var(--s-space-24);padding-bottom:var(--s-space-24);overscroll-behavior:contain}@media (min-width: 768px){.popover__scroll-container{max-height:22rem;padding-top:var(--s-space-8);padding-bottom:var(--s-space-8)}}.popover__handle{position:absolute;top:var(--s-space-8);left:50%;width:2.5rem;height:0.375rem;border-radius:0.1875rem;background-color:var(--s-border-default);transform:translatex(-50%)}@media (min-width: 768px){.popover__handle{display:none}}@-webkit-keyframes popover-slide-in{from{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes popover-slide-in{from{transform:translateY(100%)}to{transform:translateY(0)}}@-webkit-keyframes popover-slide-out{from{transform:translateY(0)}to{transform:translateY(100%)}}@keyframes popover-slide-out{from{transform:translateY(0)}to{transform:translateY(100%)}}@-webkit-keyframes popover-fade-in{from{opacity:0}to{opacity:1}}@keyframes popover-fade-in{from{opacity:0}to{opacity:1}}@-webkit-keyframes popover-fade-out{from{opacity:1}to{opacity:0}}@keyframes popover-fade-out{from{opacity:1}to{opacity:0}}@-webkit-keyframes popover-fade-scale-in{from{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}@keyframes popover-fade-scale-in{from{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}";
7
+ const flipPopoverCss = ":host{position:relative;z-index:var(--s-z-40);display:inline-flex}:host *{box-sizing:border-box}.popover--active:not(.popover--closing) .popover__backdrop{-webkit-animation:0.15s popover-fade-in;animation:0.15s popover-fade-in}@media (prefers-reduced-motion){.popover--active:not(.popover--closing) .popover__backdrop{-webkit-animation:none;animation:none}}.popover--active:not(.popover--closing) .popover__content{-webkit-animation:0.15s popover-slide-in;animation:0.15s popover-slide-in}@media (min-width: 768px){.popover--active:not(.popover--closing) .popover__content{transform-origin:top left;-webkit-animation:0.15s popover-fade-scale-in-xy;animation:0.15s popover-fade-scale-in-xy}}@media (prefers-reduced-motion){.popover--active:not(.popover--closing) .popover__content{-webkit-animation:none;animation:none}}.popover--closing .popover__backdrop{-webkit-animation:0.15s popover-fade-out;animation:0.15s popover-fade-out;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}@media (prefers-reduced-motion){.popover--closing .popover__backdrop{-webkit-animation:none;animation:none}}.popover--closing .popover__content{-webkit-animation:0.15s popover-slide-out;animation:0.15s popover-slide-out;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}@media (min-width: 768px){.popover--closing .popover__content{-webkit-animation:0.15s popover-fade-out;animation:0.15s popover-fade-out}}@media (prefers-reduced-motion){.popover--closing .popover__content{-webkit-animation:none;animation:none}}.popover--inactive .popover__content{display:none}@media (min-width: 768px){.popover--animation-scale-in-y.popover--active:not(.popover--closing) .popover__content{-webkit-animation:0.15s popover-fade-scale-in-y;animation:0.15s popover-fade-scale-in-y}}@media (prefers-reduced-motion){.popover--animation-scale-in-y.popover--active:not(.popover--closing) .popover__content{-webkit-animation:none;animation:none}}.popover__backdrop{position:fixed;z-index:0;background-color:rgba(0, 0, 0, 0.2);-webkit-animation:0.15s popover-backdrop-fade-in;animation:0.15s popover-backdrop-fade-in;inset:0}@media (prefers-reduced-motion){.popover__backdrop{-webkit-animation:none;animation:none}}@media (min-width: 768px){.popover__backdrop{display:none}}.popover__content{position:fixed;z-index:2;right:0;bottom:0;left:0;overflow:hidden;border-top-left-radius:var(--s-border-radius-xl);border-top-right-radius:var(--s-border-radius-xl);background-color:var(--s-surface-overlay-default)}@media (min-width: 768px){.popover__content{right:unset;bottom:unset;left:unset;max-width:22.5rem;border-radius:var(--s-border-radius-sm);-webkit-animation:none;animation:none;box-shadow:0.125rem 0.25rem 2.5rem rgba(0, 0, 0, 0.14)}}.popover__scroll-container{overflow-x:hidden;overflow-y:auto;width:100%;max-height:90vh;padding-top:var(--s-space-24);padding-bottom:var(--s-space-24);overscroll-behavior:contain}@media (min-width: 768px){.popover__scroll-container{max-height:22rem;padding-top:var(--s-space-8);padding-bottom:var(--s-space-8)}}.popover__handle{position:absolute;top:var(--s-space-8);left:50%;width:2.5rem;height:0.375rem;border-radius:0.1875rem;background-color:var(--s-border-default);transform:translatex(-50%)}@media (min-width: 768px){.popover__handle{display:none}}@-webkit-keyframes popover-slide-in{from{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes popover-slide-in{from{transform:translateY(100%)}to{transform:translateY(0)}}@-webkit-keyframes popover-slide-out{from{transform:translateY(0)}to{transform:translateY(100%)}}@keyframes popover-slide-out{from{transform:translateY(0)}to{transform:translateY(100%)}}@-webkit-keyframes popover-fade-in{from{opacity:0}to{opacity:1}}@keyframes popover-fade-in{from{opacity:0}to{opacity:1}}@-webkit-keyframes popover-fade-out{from{opacity:1}to{opacity:0}}@keyframes popover-fade-out{from{opacity:1}to{opacity:0}}@-webkit-keyframes popover-fade-scale-in-xy{from{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}@keyframes popover-fade-scale-in-xy{from{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}@-webkit-keyframes popover-fade-scale-in-y{from{transform:scaleY(0);opacity:0}to{transform:scaleY(1);opacity:1}}@keyframes popover-fade-scale-in-y{from{transform:scaleY(0);opacity:0}to{transform:scaleY(1);opacity:1}}";
8
8
 
9
9
  const FlipPopover = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
10
10
  constructor() {
11
11
  super();
12
12
  this.__registerHost();
13
13
  this.__attachShadow();
14
+ this.popoverClose = createEvent(this, "popoverClose", 7);
15
+ this.popoverOpen = createEvent(this, "popoverOpen", 7);
16
+ this.animation = "scale-in-xy";
17
+ this.enableFlip = true;
18
+ this.offset = 8;
14
19
  this.placement = "bottom-start";
15
20
  this.active = false;
16
21
  this.closing = false;
17
- this.onFocusOut = (event) => {
18
- if (!this.active) {
19
- return;
20
- }
21
- const target = event.relatedTarget || event.target;
22
- const popoverLostFocus = !this.el.contains(target);
23
- if (popoverLostFocus) {
24
- this.close();
25
- }
26
- };
27
22
  this.toggle = (event) => {
28
23
  event.stopPropagation();
29
24
  if (this.active) {
@@ -47,8 +42,14 @@ const FlipPopover = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
47
42
  this.position = undefined;
48
43
  return;
49
44
  }
45
+ const offsetOptions = typeof this.offset === "number"
46
+ ? { mainAxis: this.offset, crossAxis: 0 }
47
+ : { mainAxis: this.offset[0], crossAxis: this.offset[1] };
48
+ const middleware = this.enableFlip
49
+ ? [offset(offsetOptions), shift(), flip()]
50
+ : [offset(offsetOptions), shift()];
50
51
  this.position = await computePosition(this.triggerEl, this.contentContainer, {
51
- middleware: [shift(), flip()],
52
+ middleware,
52
53
  placement: this.placement,
53
54
  strategy: "fixed",
54
55
  });
@@ -59,15 +60,35 @@ const FlipPopover = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
59
60
  }
60
61
  componentDidLoad() {
61
62
  this.connectTrigger();
62
- this.updateChildMenuItems();
63
+ this.updateFocusableChildren();
63
64
  this.updateTriggerAttributes();
64
65
  }
65
66
  disconnectedCallback() {
66
67
  enableBodyScroll(this.scrollContainer);
67
68
  }
69
+ onWindowFocusIn(event) {
70
+ if (!this.active) {
71
+ return;
72
+ }
73
+ const target = event.target;
74
+ const popoverLostFocus = !this.el.contains(target);
75
+ if (popoverLostFocus) {
76
+ this.close();
77
+ }
78
+ }
68
79
  onWindowClick(event) {
80
+ if (!this.active) {
81
+ return;
82
+ }
69
83
  const target = event.target;
70
- if (!this.el.contains(target)) {
84
+ const clickedChild = this.el.contains(target);
85
+ const clickedShadowChild = event
86
+ .composedPath()
87
+ .some((el) => Boolean(el) && el instanceof Node
88
+ ? this.el.contains(el)
89
+ : false);
90
+ const clickedTrigger = event.target === this.triggerEl;
91
+ if (!clickedChild && !clickedShadowChild && !clickedTrigger) {
71
92
  this.close();
72
93
  }
73
94
  }
@@ -80,6 +101,7 @@ const FlipPopover = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
80
101
  if (this.closing || !this.active) {
81
102
  return;
82
103
  }
104
+ this.popoverClose.emit();
83
105
  if (this.disableAutoUpdate) {
84
106
  this.disableAutoUpdate();
85
107
  }
@@ -97,13 +119,18 @@ const FlipPopover = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
97
119
  * @returns
98
120
  */
99
121
  async open() {
122
+ if (this.active) {
123
+ return;
124
+ }
125
+ this.adjustWidth();
100
126
  this.active = true;
101
- this.updateChildMenuItems();
127
+ this.popoverOpen.emit();
128
+ this.updateFocusableChildren();
102
129
  this.updateTriggerAttributes();
103
130
  requestAnimationFrame(async () => {
104
131
  await this.reposition();
105
- if (this.childMenuItems.length > 0) {
106
- this.childMenuItems[0].focus();
132
+ if (this.focusableChildren.length > 0) {
133
+ this.focusableChildren[0].focus();
107
134
  }
108
135
  else {
109
136
  this.contentContainer.focus();
@@ -121,7 +148,9 @@ const FlipPopover = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
121
148
  if (!Boolean(this.triggerEl)) {
122
149
  return;
123
150
  }
124
- this.triggerEl.addEventListener("click", this.toggle);
151
+ this.triggerEl.addEventListener("click", (event) => {
152
+ this.toggle(event);
153
+ });
125
154
  }
126
155
  getNativeTriggerElement() {
127
156
  var _a, _b, _c;
@@ -140,8 +169,30 @@ const FlipPopover = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
140
169
  nativeTriggerEl.setAttribute("aria-expanded", String(this.active));
141
170
  nativeTriggerEl.setAttribute("aria-haspopup", "dialog");
142
171
  }
143
- updateChildMenuItems() {
144
- this.childMenuItems = querySelectorAllDeep(this.el, '[role="menuitem"]');
172
+ updateFocusableChildren() {
173
+ this.focusableChildren = querySelectorAllDeep(this.el, '[role="menuitem"], [role="listbox"]');
174
+ }
175
+ adjustWidth() {
176
+ let useContainerWidth = this.useContainerWidth;
177
+ if ([true, "true"].includes(this.useContainerWidth)) {
178
+ useContainerWidth = true;
179
+ }
180
+ else if ([false, "false"].includes(this.useContainerWidth)) {
181
+ useContainerWidth = false;
182
+ }
183
+ const mobile = !window.matchMedia("(min-width: 768px)").matches;
184
+ if (Boolean(useContainerWidth) && !mobile) {
185
+ const container = typeof useContainerWidth === "string"
186
+ ? this.el.closest(useContainerWidth) || this.el.parentElement
187
+ : this.el.parentElement;
188
+ this.contentContainer.style.maxWidth = "none";
189
+ this.contentContainer.style.width =
190
+ container.getBoundingClientRect().width + "px";
191
+ }
192
+ else {
193
+ this.contentContainer.style.maxWidth = "";
194
+ this.contentContainer.style.width = "";
195
+ }
145
196
  }
146
197
  lockBodyScroll() {
147
198
  const mobile = isMobileViewport();
@@ -155,29 +206,33 @@ const FlipPopover = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
155
206
  }
156
207
  render() {
157
208
  var _a, _b;
158
- const className = classnames("popover", {
209
+ const className = classnames("popover", `popover--animation-${this.animation}`, {
159
210
  "popover--closing": this.closing,
160
211
  "popover--active": this.active,
161
212
  "popover--inactive": !this.active,
162
213
  });
163
- return (h(Host, { id: this.popoverId, onFocusout: this.onFocusOut }, h("div", { class: className, onKeyDown: this.onKeydown }, h("div", { "aria-hidden": !this.active ? "true" : "false", "aria-label": this.label, class: "popover__content", role: "dialog", tabindex: "-1", ref: (el) => (this.contentContainer = el), style: {
214
+ return (h(Host, { id: this.popoverId }, h("div", { class: className, onKeyDown: this.onKeydown }, h("div", { "aria-hidden": !this.active ? "true" : "false", "aria-label": this.label, class: "popover__content", role: "dialog", ref: (el) => (this.contentContainer = el), style: {
164
215
  top: Boolean(this.position) ? `${(_a = this.position) === null || _a === void 0 ? void 0 : _a.y}px` : "",
165
216
  left: Boolean(this.position) ? `${(_b = this.position) === null || _b === void 0 ? void 0 : _b.x}px` : "",
166
- } }, h("span", { class: "popover__handle" }), h("div", { class: "popover__scroll-container", ref: (el) => (this.scrollContainer = el) }, h("slot", null))), this.active && (h("div", { class: "popover__backdrop", onClick: this.onCloseButtonClick })))));
217
+ }, tabindex: "-1" }, h("span", { class: "popover__handle" }), h("div", { class: "popover__scroll-container", ref: (el) => (this.scrollContainer = el) }, h("slot", null))), this.active && (h("div", { class: "popover__backdrop", onClick: this.onCloseButtonClick })))));
167
218
  }
168
219
  get el() { return this; }
169
220
  static get style() { return flipPopoverCss; }
170
221
  }, [1, "flip-popover", {
222
+ "animation": [1],
223
+ "enableFlip": [4, "enable-flip"],
171
224
  "label": [1],
225
+ "offset": [2],
172
226
  "placement": [1],
173
227
  "popoverId": [1, "popover-id"],
174
228
  "trigger": [1],
229
+ "useContainerWidth": [8, "use-container-width"],
175
230
  "active": [32],
176
231
  "closing": [32],
177
232
  "position": [32],
178
233
  "close": [64],
179
234
  "open": [64]
180
- }, [[8, "click", "onWindowClick"]]]);
235
+ }, [[8, "focusin", "onWindowFocusIn"], [8, "click", "onWindowClick"]]]);
181
236
  function defineCustomElement() {
182
237
  if (typeof customElements === "undefined") {
183
238
  return;
@@ -2,7 +2,7 @@ import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/
2
2
  import { c as classnames } from './index2.js';
3
3
  import { d as defineCustomElement$2 } from './flip-visually-hidden2.js';
4
4
 
5
- const flipRadioCss = ".sc-flip-radio-h{display:inline-flex}.sc-flip-radio-h *.sc-flip-radio{box-sizing:border-box}.radio.sc-flip-radio{display:inline-flex;cursor:pointer;line-height:var(--s-line-height-base)}.radio.sc-flip-radio:focus-within .radio__box.sc-flip-radio{box-shadow:0 0 0 0.0625rem var(--s-background-default),\n 0 0 0 0.1875rem var(--s-focus-default)}.radio--checked.sc-flip-radio .radio__control.sc-flip-radio:hover .radio__box.sc-flip-radio{border-color:var(--s-interactive-primary-hovered);background-color:var(--s-interactive-primary-hovered)}.radio--checked.sc-flip-radio .radio__box.sc-flip-radio{position:relative;border-color:var(--s-icon-highlight);background-color:var(--s-icon-highlight)}.radio--checked.sc-flip-radio .radio__box.sc-flip-radio:after{position:absolute;top:50%;left:50%;width:0.5rem;height:0.5rem;border-radius:50%;background-color:var(--s-background-default);content:\"\";transform:translate3d(-50%, -50%, 0)}.radio--invalid.radio--checked.sc-flip-radio .radio__box.sc-flip-radio,.radio--invalid.radio--indeterminate.sc-flip-radio .radio__box.sc-flip-radio{background-color:var(--s-icon-critical)}.radio--invalid.sc-flip-radio .radio__box.sc-flip-radio{border-color:var(--s-icon-critical)}.radio--disabled.sc-flip-radio{cursor:default}.radio--disabled.radio--checked.sc-flip-radio .radio__control.sc-flip-radio:hover .radio__box.sc-flip-radio{border-color:var(--s-icon-disabled);background-color:transparent}.radio--disabled.radio--checked.sc-flip-radio .radio__box.sc-flip-radio{border-color:var(--s-icon-disabled);background-color:var(--s-background-default)}.radio--disabled.radio--checked.sc-flip-radio .radio__box.sc-flip-radio:after{background-color:var(--s-icon-disabled)}.radio--disabled.sc-flip-radio .radio__control.sc-flip-radio:hover .radio__box.sc-flip-radio{background-color:transparent}.radio--disabled.sc-flip-radio .radio__box.sc-flip-radio{border-color:var(--s-icon-disabled);backround-color:var(--s-icon-disabled)}.radio--disabled.sc-flip-radio .radio__description.sc-flip-radio,.radio--disabled.sc-flip-radio .radio__label.sc-flip-radio{color:var(--s-text-disabled)}.radio__control.sc-flip-radio{position:relative;display:inline-flex;width:1.5rem;height:1.5rem;padding:var(--s-space-2);flex-shrink:0}.radio__control.sc-flip-radio:hover .radio__box.sc-flip-radio{background-color:var(--s-action-neutral-hovered)}.radio__box.sc-flip-radio{position:relative;display:flex;width:100%;height:100%;justify-content:center;align-items:center;border:0.125rem solid var(--s-icon-default);border-radius:50%}.radio__label-container.sc-flip-radio{display:inline-flex;margin-left:var(--s-space-8);padding-top:var(--s-space-2);flex-direction:column}.radio__label.sc-flip-radio{font-weight:var(--s-font-weight-medium)}.radio__description.sc-flip-radio{color:var(--s-text-subdued)}";
5
+ const flipRadioCss = ".sc-flip-radio-h{display:inline-flex}.sc-flip-radio-h *.sc-flip-radio{box-sizing:border-box}.radio.sc-flip-radio{display:inline-flex;cursor:pointer;line-height:var(--s-line-height-base)}.radio.sc-flip-radio:focus-within .radio__box.sc-flip-radio{box-shadow:0 0 0 0.0625rem var(--s-background-default),\n 0 0 0 0.1875rem var(--s-focus-default)}.radio--checked.sc-flip-radio .radio__control.sc-flip-radio:hover .radio__box.sc-flip-radio{border-color:var(--s-interactive-primary-hovered);background-color:var(--s-interactive-primary-hovered)}.radio--checked.sc-flip-radio .radio__box.sc-flip-radio{position:relative;border-color:var(--s-icon-highlight);background-color:var(--s-icon-highlight)}.radio--checked.sc-flip-radio .radio__box.sc-flip-radio:after{position:absolute;top:50%;left:50%;width:0.5rem;height:0.5rem;border-radius:50%;background-color:var(--s-background-default);content:\"\";transform:translate3d(-50%, -50%, 0)}.radio--invalid.radio--checked.sc-flip-radio .radio__box.sc-flip-radio,.radio--invalid.radio--indeterminate.sc-flip-radio .radio__box.sc-flip-radio{background-color:var(--s-icon-critical)}.radio--invalid.sc-flip-radio .radio__box.sc-flip-radio{border-color:var(--s-icon-critical)}.radio--disabled.sc-flip-radio{cursor:default}.radio--disabled.radio--checked.sc-flip-radio .radio__control.sc-flip-radio:hover .radio__box.sc-flip-radio{border-color:var(--s-icon-disabled);background-color:transparent}.radio--disabled.radio--checked.sc-flip-radio .radio__box.sc-flip-radio{border-color:var(--s-icon-disabled);background-color:var(--s-background-default)}.radio--disabled.radio--checked.sc-flip-radio .radio__box.sc-flip-radio:after{background-color:var(--s-icon-disabled)}.radio--disabled.sc-flip-radio .radio__control.sc-flip-radio:hover .radio__box.sc-flip-radio{background-color:transparent}.radio--disabled.sc-flip-radio .radio__box.sc-flip-radio{border-color:var(--s-icon-disabled)}.radio--disabled.sc-flip-radio .radio__description.sc-flip-radio,.radio--disabled.sc-flip-radio .radio__label.sc-flip-radio{color:var(--s-text-disabled)}.radio__control.sc-flip-radio{position:relative;display:inline-flex;width:1.5rem;height:1.5rem;padding:var(--s-space-2);flex-shrink:0}.radio__control.sc-flip-radio:hover .radio__box.sc-flip-radio{background-color:var(--s-action-neutral-hovered)}.radio__box.sc-flip-radio{position:relative;display:flex;width:100%;height:100%;justify-content:center;align-items:center;border:0.125rem solid var(--s-icon-default);border-radius:50%}.radio__label-container.sc-flip-radio{display:inline-flex;margin-left:var(--s-space-8);padding-top:var(--s-space-2);flex-direction:column}.radio__label.sc-flip-radio{font-weight:var(--s-font-weight-medium)}.radio__description.sc-flip-radio{color:var(--s-text-subdued)}";
6
6
 
7
7
  const FlipRadio$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
8
8
  constructor() {
@@ -16,10 +16,19 @@ const FlipRadio$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
16
16
  this.valueChange.emit(this.value);
17
17
  };
18
18
  }
19
+ getAriaCheckedLabel(checked, unchecked) {
20
+ if (checked) {
21
+ return "true";
22
+ }
23
+ else if (unchecked) {
24
+ return "false";
25
+ }
26
+ return "mixed";
27
+ }
19
28
  render() {
20
29
  const unchecked = this.checked === false || this.checked === "false";
21
30
  const checked = this.checked === true || this.checked === "true";
22
- const ariaCheckedLabel = checked ? "true" : unchecked ? "false" : "mixed";
31
+ const ariaCheckedLabel = this.getAriaCheckedLabel(checked, unchecked);
23
32
  const ariaInvalid = this.invalid;
24
33
  const className = classnames("radio", {
25
34
  "radio--checked": checked,
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface FlipSelect extends Components.FlipSelect, HTMLElement {}
4
+ export const FlipSelect: {
5
+ prototype: FlipSelect;
6
+ new (): FlipSelect;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,118 @@
1
+ import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
+ import { c as classnames } from './index2.js';
3
+ import { q as querySelectorAllDeep } from './utils.js';
4
+ import { d as defineCustomElement$5 } from './flip-icon-expand-less2.js';
5
+ import { d as defineCustomElement$4 } from './flip-icon-expand-more2.js';
6
+ import { d as defineCustomElement$3 } from './flip-option-list2.js';
7
+ import { d as defineCustomElement$2 } from './flip-popover2.js';
8
+
9
+ const flipSelectCss = ".sc-flip-select-h{display:block;width:100%}.sc-flip-select-h *.sc-flip-select{box-sizing:border-box}.select.sc-flip-select{position:relative;display:flex;width:100%}.select--disabled.sc-flip-select .select__label.sc-flip-select{color:var(--s-text-disabled)}.select--disabled.sc-flip-select .select__indicator.sc-flip-select{color:var(--s-icon-disabled)}.select__label.sc-flip-select{display:block;overflow:hidden;width:100%;height:1.375rem;margin:0;padding:0;padding-right:calc(1.5rem + var(--s-space-8));border:none;background-color:transparent;font:inherit;line-height:var(--s-line-height-base);text-align:left;white-space:nowrap;text-overflow:ellipsis;cursor:default}.select__label.sc-flip-select:focus{outline:none}.select__indicator.sc-flip-select{position:absolute;top:calc(-1 * var(--s-space-12));right:0;display:inline-flex;color:var(--s-icon-default)}";
10
+
11
+ const FlipSelect$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
12
+ constructor() {
13
+ super();
14
+ this.__registerHost();
15
+ this.valueChange = createEvent(this, "valueChange", 7);
16
+ this.options = [];
17
+ this.select = (event) => {
18
+ this.value = event.detail;
19
+ this.valueChange.emit(this.value);
20
+ if (!this.multiSelect) {
21
+ this.popover.close();
22
+ }
23
+ };
24
+ this.onSlotChange = () => {
25
+ this.updateOptions();
26
+ };
27
+ this.onOpen = () => {
28
+ this.open = true;
29
+ };
30
+ this.onClose = () => {
31
+ this.open = false;
32
+ };
33
+ this.onKeyDown = (event) => {
34
+ if (event.code === "Space" || event.code === "Enter") {
35
+ event.preventDefault();
36
+ this.popover.open();
37
+ }
38
+ };
39
+ }
40
+ componentWillLoad() {
41
+ queueMicrotask(() => {
42
+ this.updateOptions();
43
+ });
44
+ }
45
+ onWindowFocusIn(event) {
46
+ if (event.target === this.el.querySelector("input")) {
47
+ event.stopImmediatePropagation();
48
+ }
49
+ }
50
+ updateOptions() {
51
+ this.options = querySelectorAllDeep(this.el, "flip-option-list-item");
52
+ }
53
+ render() {
54
+ const label = Boolean(this.value)
55
+ ? this.value
56
+ .map((value) => { var _a; return (_a = this.options.find((option) => option.value === value)) === null || _a === void 0 ? void 0 : _a.label; })
57
+ .join(", ")
58
+ : "";
59
+ const ariaInvalid = this.invalid === true || this.invalid === false
60
+ ? String(this.invalid)
61
+ : undefined;
62
+ const className = classnames("select", {
63
+ "select--disabled": this.disabled,
64
+ });
65
+ return (h(Host, { onKeyDown: this.onKeyDown }, h("div", { class: className }, h("input", { "aria-describedby": this.flipAriaDescribedby, "aria-disabled": this.disabled ? "true" : undefined, "aria-invalid": ariaInvalid, class: "select__label", disabled: this.disabled, id: "trigger", readOnly: true, type: "text", value: label }), h("span", { class: "select__indicator" }, this.open ? (h("flip-icon-expand-less", null)) : (h("flip-icon-expand-more", null))), h("flip-popover", { animation: "scale-in-y", class: "select__popover", enableFlip: false, label: this.label, offset: [16, -16], onPopoverClose: this.onClose, onPopoverOpen: this.onOpen, popoverId: "select-options", ref: (el) => (this.popover = el), trigger: "trigger", useContainerWidth: "flip-form-control" }, h("flip-option-list", { onValueChange: this.select, multiSelect: this.multiSelect, value: this.value }, h("slot", { onSlotchange: this.onSlotChange }))))));
66
+ }
67
+ get el() { return this; }
68
+ static get style() { return flipSelectCss; }
69
+ }, [6, "flip-select", {
70
+ "disabled": [4],
71
+ "flipAriaDescribedby": [1, "flip-aria-describedby"],
72
+ "invalid": [4],
73
+ "label": [1],
74
+ "multiSelect": [4, "multi-select"],
75
+ "required": [4],
76
+ "value": [1040],
77
+ "options": [32],
78
+ "open": [32]
79
+ }, [[8, "focusin", "onWindowFocusIn"]]]);
80
+ function defineCustomElement$1() {
81
+ if (typeof customElements === "undefined") {
82
+ return;
83
+ }
84
+ const components = ["flip-select", "flip-icon-expand-less", "flip-icon-expand-more", "flip-option-list", "flip-popover"];
85
+ components.forEach(tagName => { switch (tagName) {
86
+ case "flip-select":
87
+ if (!customElements.get(tagName)) {
88
+ customElements.define(tagName, FlipSelect$1);
89
+ }
90
+ break;
91
+ case "flip-icon-expand-less":
92
+ if (!customElements.get(tagName)) {
93
+ defineCustomElement$5();
94
+ }
95
+ break;
96
+ case "flip-icon-expand-more":
97
+ if (!customElements.get(tagName)) {
98
+ defineCustomElement$4();
99
+ }
100
+ break;
101
+ case "flip-option-list":
102
+ if (!customElements.get(tagName)) {
103
+ defineCustomElement$3();
104
+ }
105
+ break;
106
+ case "flip-popover":
107
+ if (!customElements.get(tagName)) {
108
+ defineCustomElement$2();
109
+ }
110
+ break;
111
+ } });
112
+ }
113
+ defineCustomElement$1();
114
+
115
+ const FlipSelect = FlipSelect$1;
116
+ const defineCustomElement = defineCustomElement$1;
117
+
118
+ export { FlipSelect, defineCustomElement };
@@ -6,7 +6,7 @@ import { d as defineCustomElement$3 } from './flip-icon-expand-more2.js';
6
6
  import { d as defineCustomElement$2 } from './flip-icon-visibility2.js';
7
7
  import { d as defineCustomElement$1 } from './flip-icon-visibility-off2.js';
8
8
 
9
- const flipTextInputCss = ".sc-flip-text-input-h{display:block;width:100%}.sc-flip-text-input-h *.sc-flip-text-input{box-sizing:border-box}.text-input.sc-flip-text-input{position:relative;display:flex;width:100%;align-items:center;color:var(--s-text-default);font:inherit;line-height:var(--s-line-height-sm)}.text-input--clearable.sc-flip-text-input{padding-right:calc(1.5rem + var(--s-space-8))}.text-input--type-number.sc-flip-text-input{padding-right:calc(1.5rem + var(--s-space-8))}.text-input--show-password.sc-flip-text-input .text-input__input.sc-flip-text-input{width:100%}.text-input--disabled.sc-flip-text-input .text-input__character-counter.sc-flip-text-input{color:var(--s-text-disabled)}.text-input__input.sc-flip-text-input{display:inline-flex;width:100%;max-height:13.75rem;margin:0;padding:0;border:none;color:var(--s-text-default);background-color:transparent;font:inherit;font-size:var(--s-font-size-base);line-height:var(--s-line-height-base);resize:none;caret-color:var(--s-border-highlight)}.text-input__input.sc-flip-text-input:focus{outline:none}.text-input__input.sc-flip-text-input:disabled{color:var(--s-text-disabled);background-color:transparent}.text-input__input.sc-flip-text-input::-webkit-outer-spin-button,.text-input__input.sc-flip-text-input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none}.text-input__input[type=\"number\"].sc-flip-text-input{-moz-appearance:textfield}input.text-input__input.sc-flip-text-input:not([type=\"password\"]){width:0.25rem;min-width:0.25rem}.text-input--disable-dynamic-width.sc-flip-text-input input.text-input__input.sc-flip-text-input:not([type=\"password\"]){width:100%;min-width:0}.text-input__clear-button.sc-flip-text-input,.text-input__password-toggle.sc-flip-text-input{position:absolute;top:calc(-1 * var(--s-space-12));right:0;display:inline-flex;margin:0;padding:0;border:none;color:var(--s-icon-default);background-color:transparent;cursor:pointer}.text-input__clear-button.sc-flip-text-input:focus,.text-input__password-toggle.sc-flip-text-input:focus{outline-color:var(--s-focus-default)}.text-input__stepper.sc-flip-text-input{position:absolute;top:-1.4375rem;right:0;display:flex;flex-direction:column}.text-input__step-button.sc-flip-text-input{display:inline-flex;margin:0;padding:0;border:none;color:var(--s-icon-default);background-color:transparent;cursor:pointer}.text-input__step-button.sc-flip-text-input:focus{outline-color:var(--s-focus-default)}.text-input__character-counter.sc-flip-text-input{position:absolute;top:-1.375rem;right:0;display:flex;color:var(--s-text-subdued);line-height:var(--s-line-height-sm);flex-direction:column}.text-input__prefix.sc-flip-text-input{padding-right:var(--s-space-4);color:var(--s-text-subdued);font-size:var(--s-font-size-base)}.text-input__suffix.sc-flip-text-input{padding-left:var(--s-space-4);color:var(--s-text-subdued);font-size:var(--s-font-size-base)}";
9
+ const flipTextInputCss = ".sc-flip-text-input-h{display:block;width:100%}.sc-flip-text-input-h *.sc-flip-text-input{box-sizing:border-box}.text-input.sc-flip-text-input{position:relative;display:flex;width:100%;align-items:center;color:var(--s-text-default);font:inherit;line-height:var(--s-line-height-sm)}.text-input--clearable.sc-flip-text-input,.text-input--type-number.sc-flip-text-input,.text-input--type-password.sc-flip-text-input{padding-right:calc(1.5rem + var(--s-space-8))}.text-input--show-password.sc-flip-text-input .text-input__input.sc-flip-text-input{width:100%}.text-input--disabled.sc-flip-text-input .text-input__character-counter.sc-flip-text-input{color:var(--s-text-disabled)}.text-input__input.sc-flip-text-input{display:inline-flex;width:100%;max-height:13.75rem;margin:0;padding:0;border:none;color:var(--s-text-default);background-color:transparent;font:inherit;font-size:var(--s-font-size-base);line-height:var(--s-line-height-base);resize:none;caret-color:var(--s-border-highlight)}.text-input__input.sc-flip-text-input:focus{outline:none}.text-input__input.sc-flip-text-input:disabled{color:var(--s-text-disabled);background-color:transparent}.text-input__input.sc-flip-text-input::-webkit-outer-spin-button,.text-input__input.sc-flip-text-input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none}.text-input__input[type=\"number\"].sc-flip-text-input{-moz-appearance:textfield}input.text-input__input.sc-flip-text-input:not([type=\"password\"]){width:0.25rem;min-width:0.25rem}.text-input--disable-dynamic-width.sc-flip-text-input input.text-input__input.sc-flip-text-input:not([type=\"password\"]){width:100%;min-width:0}.text-input__clear-button.sc-flip-text-input,.text-input__password-toggle.sc-flip-text-input{position:absolute;top:calc(-1 * var(--s-space-12));right:0;display:inline-flex;margin:0;padding:0;border:none;color:var(--s-icon-default);background-color:transparent;cursor:pointer}.text-input__clear-button.sc-flip-text-input:focus,.text-input__password-toggle.sc-flip-text-input:focus{outline-color:var(--s-focus-default)}.text-input__stepper.sc-flip-text-input{position:absolute;top:-1.4375rem;right:0;display:flex;flex-direction:column}.text-input__step-button.sc-flip-text-input{display:inline-flex;margin:0;padding:0;border:none;color:var(--s-icon-default);background-color:transparent;cursor:pointer}.text-input__step-button.sc-flip-text-input:focus{outline-color:var(--s-focus-default)}.text-input__character-counter.sc-flip-text-input{position:absolute;top:-1.375rem;right:0;display:flex;color:var(--s-text-subdued);line-height:var(--s-line-height-sm);flex-direction:column}.text-input__prefix.sc-flip-text-input{padding-right:var(--s-space-4);color:var(--s-text-subdued);font-size:var(--s-font-size-base)}.text-input__suffix.sc-flip-text-input{padding-left:var(--s-space-4);color:var(--s-text-subdued);font-size:var(--s-font-size-base)}";
10
10
 
11
11
  const FlipTextInput = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
12
12
  constructor() {
@@ -55,11 +55,10 @@ const FlipTextInput = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
55
55
  return;
56
56
  }
57
57
  const step = this.step || 1;
58
- const currentValue = isNaN(this.inputEl.valueAsNumber)
59
- ? this.min !== undefined
60
- ? this.min + 1
61
- : 1
62
- : this.inputEl.valueAsNumber;
58
+ let currentValue = this.inputEl.valueAsNumber;
59
+ if (isNaN(this.inputEl.valueAsNumber)) {
60
+ currentValue = this.min !== undefined ? this.min + 1 : 1;
61
+ }
63
62
  this.value = String(Math.max(this.min || -Infinity, currentValue - step));
64
63
  this.valueChange.emit(this.value);
65
64
  };
@@ -68,11 +67,10 @@ const FlipTextInput = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
68
67
  return;
69
68
  }
70
69
  const step = this.step || 1;
71
- const currentValue = isNaN(this.inputEl.valueAsNumber)
72
- ? this.min !== undefined
73
- ? this.min - 1
74
- : -1
75
- : this.inputEl.valueAsNumber;
70
+ let currentValue = this.inputEl.valueAsNumber;
71
+ if (isNaN(this.inputEl.valueAsNumber)) {
72
+ currentValue = this.min !== undefined ? this.min - 1 : -1;
73
+ }
76
74
  this.value = String(Math.min(this.max || Infinity, currentValue + step));
77
75
  this.valueChange.emit(this.value);
78
76
  };
@@ -109,11 +107,9 @@ const FlipTextInput = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
109
107
  render() {
110
108
  var _a;
111
109
  const Tag = this.rows === 1 ? "input" : "textarea";
112
- const ariaInvalid = this.invalid === true
113
- ? "true"
114
- : this.invalid === false
115
- ? "false"
116
- : undefined;
110
+ const ariaInvalid = this.invalid === true || this.invalid === false
111
+ ? String(this.invalid)
112
+ : undefined;
117
113
  const showStepper = this.type === "number" && !this.disabled;
118
114
  const showPasswordToggle = this.type === "password" && !this.disabled;
119
115
  const showClearButton = this.clearable &&
@@ -18,7 +18,7 @@ const FlipText = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
18
18
  render() {
19
19
  const Tag = this.as;
20
20
  const className = classnames("text", `text--align-${this.align}`, `text--color-${this.color}`, `text--font-style-${this.fontStyle}`, `text--size-${this.size}`, `text--weight-${this.weight}`);
21
- return (h(Host, null, h(Tag, { class: className }, h("slot", null))));
21
+ return (h(Host, null, h(Tag, { class: className, part: "text" }, h("slot", null))));
22
22
  }
23
23
  static get style() { return flipTextCss; }
24
24
  }, [1, "flip-text", {
@@ -38,11 +38,13 @@ const FlipToastProvider$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLE
38
38
  if (this.toasts.some((toast) => toast.toastId === newToast.toastId)) {
39
39
  return;
40
40
  }
41
- const duration = this.globalDuration === undefined
42
- ? newToast.duration
43
- : this.globalDuration === 0
44
- ? undefined
45
- : this.globalDuration;
41
+ let duration = this.globalDuration;
42
+ if (this.globalDuration === undefined) {
43
+ duration = newToast.duration;
44
+ }
45
+ else if (this.globalDuration === 0) {
46
+ duration = undefined;
47
+ }
46
48
  const newToastWithId = Object.assign(Object.assign({}, newToast), { createdAt: new Date(), duration, toastId: newToast.toastId || String(Math.round(Math.random() * 10000)) });
47
49
  this.toasts = [...this.toasts, newToastWithId];
48
50
  return newToastWithId;
@@ -1,7 +1,7 @@
1
1
  import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
2
  import { c as computePosition, o as offset, s as shift, f as flip } from './floating-ui.dom.esm.js';
3
3
 
4
- const flipTooltipCss = ":host{display:inline-flex}:host *{box-sizing:border-box}.tooltip{display:inline-flex}.tooltip .tooltip__reference{display:inline-flex}.tooltip__popper{position:fixed;z-index:var(--s-z-40);max-width:17.5rem}.tooltip__bubble{position:relative;display:block;padding-top:var(--s-space-8);padding-right:var(--s-space-12);padding-bottom:var(--s-space-8);padding-left:var(--s-space-12);border-radius:var(--s-border-radius-sm);color:var(--s-text-on-status);background-color:var(--s-surface-neutral-default);line-height:var(--s-line-height-base);-webkit-animation:tooltip-fade-in 0.1s;animation:tooltip-fade-in 0.1s;backgrund-color:red}.tooltip__arrow{position:absolute;width:0.5rem;height:0.5rem;background-color:var(--s-surface-neutral-default)}@-webkit-keyframes tooltip-fade-in{from{opacity:0}to{opacity:1}}@keyframes tooltip-fade-in{from{opacity:0}to{opacity:1}}";
4
+ const flipTooltipCss = ":host{display:inline-flex}:host *{box-sizing:border-box}.tooltip{display:inline-flex}.tooltip .tooltip__reference{display:inline-flex}.tooltip__popper{position:fixed;z-index:var(--s-z-40);max-width:17.5rem}.tooltip__bubble{position:relative;display:block;padding-top:var(--s-space-8);padding-right:var(--s-space-12);padding-bottom:var(--s-space-8);padding-left:var(--s-space-12);border-radius:var(--s-border-radius-sm);color:var(--s-text-on-status);background-color:var(--s-surface-neutral-default);line-height:var(--s-line-height-base);-webkit-animation:tooltip-fade-in 0.1s;animation:tooltip-fade-in 0.1s}.tooltip__arrow{position:absolute;width:0.5rem;height:0.5rem;background-color:var(--s-surface-neutral-default)}@-webkit-keyframes tooltip-fade-in{from{opacity:0}to{opacity:1}}@keyframes tooltip-fade-in{from{opacity:0}to{opacity:1}}";
5
5
 
6
6
  const FlipTooltip$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
7
7
  constructor() {