@lmvz-ds/components 0.18.2 → 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 (141) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +45 -100
  3. package/assets/icons/checkmark.svg +4 -0
  4. package/cjs/{aria-loader-CfFuAbJn.js → aria-loader-Cec1zR2g.js} +1 -1
  5. package/cjs/ds.constants-DSnxZ3ia.js +16 -0
  6. package/cjs/icons-BQASWgk-.js +80 -0
  7. package/cjs/{index--7IqZZqn.js → index-3g9Z9sfF.js} +765 -2854
  8. package/cjs/index.cjs.js +12 -12
  9. package/cjs/lmvz-button.cjs.entry.js +4 -4
  10. package/cjs/lmvz-card.cjs.entry.js +1 -1
  11. package/cjs/lmvz-checkbox.cjs.entry.js +113 -0
  12. package/cjs/lmvz-chip.cjs.entry.js +68 -4
  13. package/cjs/lmvz-components.cjs.js +1 -1
  14. package/cjs/lmvz-header_2.cjs.entry.js +3 -3
  15. package/cjs/lmvz-icon.cjs.entry.js +10 -8
  16. package/cjs/lmvz-input.cjs.entry.js +4 -4
  17. package/cjs/lmvz-menuitem.cjs.entry.js +4 -4
  18. package/cjs/lmvz-select.cjs.entry.js +3 -3
  19. package/cjs/loader.cjs.js +1 -1
  20. package/cjs/{logger-Bn2yoZGP.js → logger-DsM6xg6V.js} +3063 -833
  21. package/cjs/{reactive-controller-host-CtaVAiYJ.js → reactive-controller-host-BA4ZhjKA.js} +10 -10
  22. package/cjs/svg-BMBduILB.js +125 -0
  23. package/collection/api/ds.constants.js +2 -0
  24. package/collection/assets/icons/checkmark.svg +4 -0
  25. package/collection/collection-manifest.json +1 -0
  26. package/collection/components/lmvz-button/lmvz-button.css +1 -2
  27. package/collection/components/lmvz-button/lmvz-button.js +6 -3
  28. package/collection/components/lmvz-card/lmvz-card.css +1 -2
  29. package/collection/components/lmvz-checkbox/lmvz-checkbox.css +207 -0
  30. package/collection/components/lmvz-checkbox/lmvz-checkbox.js +424 -0
  31. package/collection/components/lmvz-chip/lmvz-chip.css +84 -1
  32. package/collection/components/lmvz-chip/lmvz-chip.js +110 -13
  33. package/collection/components/lmvz-header/lmvz-header.js +2 -2
  34. package/collection/components/lmvz-icon/lmvz-icon.css +11 -10
  35. package/collection/components/lmvz-icon/lmvz-icon.js +8 -7
  36. package/collection/components/lmvz-input/lmvz-input.js +4 -4
  37. package/collection/components/lmvz-menuitem/lmvz-menuitem.css +1 -1
  38. package/collection/components/lmvz-menuitem/lmvz-menuitem.js +11 -5
  39. package/collection/components/lmvz-select/lmvz-select.js +1 -1
  40. package/collection/index.js +1 -1
  41. package/collection/integration/header-integration/header-integration.js +1 -1
  42. package/collection/utils/aria/aria-validation-controller.js +1 -0
  43. package/collection/utils/icons/icons.js +2 -13
  44. package/collection/utils/icons/icons.unit.js +3 -15
  45. package/collection/utils/reactive-controller-host.js +9 -9
  46. package/components/index.d.ts +2 -0
  47. package/components/index.d.ts.bak +2 -0
  48. package/components/index.js +1 -1
  49. package/components/lmvz-button.js +1 -1
  50. package/components/lmvz-card.js +1 -1
  51. package/components/lmvz-checkbox.d.ts +11 -0
  52. package/components/lmvz-checkbox.d.ts.bak +11 -0
  53. package/components/lmvz-checkbox.js +1 -0
  54. package/components/lmvz-chip.js +1 -1
  55. package/components/lmvz-header.js +1 -1
  56. package/components/lmvz-icon.js +1 -1
  57. package/components/lmvz-input.js +1 -1
  58. package/components/lmvz-menuitem.js +1 -1
  59. package/components/lmvz-select.js +1 -1
  60. package/components/p-0s99QfRy.js +12 -0
  61. package/components/{p-CBLAeife.js → p-BuFx0tTm.js} +1 -1
  62. package/components/p-CGmJG63p.js +1 -0
  63. package/components/p-CcxjkCOx.js +1 -0
  64. package/components/{p-DQEkWkMh.js → p-DIrAQ4IB.js} +1 -1
  65. package/esm/{aria-loader-BF_AYtbb.js → aria-loader-BVolm0lC.js} +1 -1
  66. package/esm/ds.constants-Bmi89ll1.js +9 -0
  67. package/esm/icons-CmuFKDRz.js +75 -0
  68. package/esm/{index-7Ru1khgk.js → index-Dh_9sN0q.js} +389 -2478
  69. package/esm/index.js +5 -11
  70. package/esm/lmvz-button.entry.js +4 -4
  71. package/esm/lmvz-card.entry.js +1 -1
  72. package/esm/lmvz-checkbox.entry.js +111 -0
  73. package/esm/lmvz-chip.entry.js +69 -5
  74. package/esm/lmvz-components.js +1 -1
  75. package/esm/lmvz-header_2.entry.js +3 -3
  76. package/esm/lmvz-icon.entry.js +10 -8
  77. package/esm/lmvz-input.entry.js +4 -4
  78. package/esm/lmvz-menuitem.entry.js +4 -4
  79. package/esm/lmvz-select.entry.js +3 -3
  80. package/esm/loader.js +1 -1
  81. package/esm/{logger-fiRXhuXK.js → logger-CGmJG63p.js} +2870 -765
  82. package/esm/{reactive-controller-host-sR2jJxNG.js → reactive-controller-host-DHcPpJW7.js} +10 -10
  83. package/esm/svg-B2YoIRuh.js +121 -0
  84. package/hydrate/index.js +2383 -42
  85. package/hydrate/index.mjs +2383 -42
  86. package/lmvz-components/index.esm.js +1 -1
  87. package/lmvz-components/lmvz-components.esm.js +1 -1
  88. package/lmvz-components/{p-5aa17cd2.entry.js → p-0f7a4236.entry.js} +1 -1
  89. package/lmvz-components/p-0s99QfRy.js +12 -0
  90. package/lmvz-components/{p-30b99f11.entry.js → p-2f83d7a2.entry.js} +1 -1
  91. package/lmvz-components/{p-6dbb3f13.entry.js → p-32171f4f.entry.js} +1 -1
  92. package/lmvz-components/{p-59383f3a.entry.js → p-400b2318.entry.js} +1 -1
  93. package/lmvz-components/p-851969bd.entry.js +1 -0
  94. package/lmvz-components/p-9f9d845d.entry.js +1 -0
  95. package/lmvz-components/p-Bmi89ll1.js +1 -0
  96. package/lmvz-components/p-CFsC37ww.js +1 -0
  97. package/lmvz-components/p-CGmJG63p.js +1 -0
  98. package/lmvz-components/p-CcxjkCOx.js +1 -0
  99. package/lmvz-components/{p-Bkfdgg0T.js → p-GdMr6Qlp.js} +1 -1
  100. package/lmvz-components/p-a12f95da.entry.js +1 -0
  101. package/lmvz-components/{p-84267405.entry.js → p-ab4437dc.entry.js} +1 -1
  102. package/lmvz-components/{p-7a6bec13.entry.js → p-d0a0e206.entry.js} +1 -1
  103. package/lmvz-components/{p-B3dnXEPG.js → p-dhVSUYqd.js} +1 -1
  104. package/manifest.json +544 -28
  105. package/package.json +5 -1
  106. package/types/api/ds.constants.d.ts +6 -1
  107. package/types/components/lmvz-action/lmvz-action.d.ts +0 -1
  108. package/types/components/lmvz-button/lmvz-button.d.ts +0 -1
  109. package/types/components/lmvz-card/lmvz-card.d.ts +0 -1
  110. package/types/components/lmvz-checkbox/lmvz-checkbox.d.ts +39 -0
  111. package/types/components/lmvz-chip/lmvz-chip.d.ts +18 -3
  112. package/types/components/lmvz-header/lmvz-header.d.ts +0 -1
  113. package/types/components/lmvz-icon/lmvz-icon.d.ts +0 -1
  114. package/types/components/lmvz-input/lmvz-input.d.ts +0 -1
  115. package/types/components/lmvz-menuitem/lmvz-menuitem.d.ts +0 -1
  116. package/types/components/lmvz-select/lmvz-select.d.ts +0 -1
  117. package/types/components.d.ts +221 -12
  118. package/types/index.d.ts +1 -2
  119. package/types/utils/aria/aria-validation-controller.d.ts +1 -2
  120. package/types/utils/aria/element-activation-controller.d.ts +0 -1
  121. package/types/utils/aria/list-keyboard-controller.d.ts +0 -1
  122. package/types/utils/assets.d.ts +0 -1
  123. package/types/utils/component.d.ts +0 -1
  124. package/types/utils/environment.d.ts +0 -1
  125. package/types/utils/http.d.ts +0 -1
  126. package/types/utils/http.unit.d.ts +0 -1
  127. package/types/utils/icons/icons-registry.d.ts +0 -1
  128. package/types/utils/icons/icons.d.ts +0 -2
  129. package/types/utils/icons/icons.unit.d.ts +0 -1
  130. package/types/utils/icons/public.d.ts +0 -1
  131. package/types/utils/public.d.ts +0 -1
  132. package/types/utils/reactive-controller-host.d.ts +0 -1
  133. package/cjs/icons-swqMn6s2.js +0 -163
  134. package/components/p-DXOTa5VF.js +0 -12
  135. package/components/p-fiRXhuXK.js +0 -1
  136. package/esm/icons-Ca8oMiRa.js +0 -157
  137. package/lmvz-components/p-0a41cc24.entry.js +0 -1
  138. package/lmvz-components/p-5f150890.entry.js +0 -1
  139. package/lmvz-components/p-Bh2Epkwf.js +0 -1
  140. package/lmvz-components/p-DXOTa5VF.js +0 -12
  141. package/lmvz-components/p-fiRXhuXK.js +0 -1
package/hydrate/index.mjs CHANGED
@@ -4151,7 +4151,7 @@ var braceExpand = (pattern, options = {}) => {
4151
4151
  minimatch.braceExpand = braceExpand;
4152
4152
  var makeRe = (pattern, options = {}) => new Minimatch(pattern, options).makeRe();
4153
4153
  minimatch.makeRe = makeRe;
4154
- var match = (list, pattern, options = {}) => {
4154
+ var match$1 = (list, pattern, options = {}) => {
4155
4155
  const mm = new Minimatch(pattern, options);
4156
4156
  list = list.filter((f) => mm.match(f));
4157
4157
  if (mm.options.nonull && !list.length) {
@@ -4159,7 +4159,7 @@ var match = (list, pattern, options = {}) => {
4159
4159
  }
4160
4160
  return list;
4161
4161
  };
4162
- minimatch.match = match;
4162
+ minimatch.match = match$1;
4163
4163
  var globMagic = /[?*]|[+@!]\(.*?\)|\[|\]/;
4164
4164
  var regExpEscape2 = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
4165
4165
  var _Minimatch_instances, matchGlobstar_fn, matchGlobStarBodySections_fn, matchOne_fn;
@@ -5481,9 +5481,6 @@ function resolvePossiblyAsyncFunction(func, args = []) {
5481
5481
  return Promise.resolve(res);
5482
5482
  }
5483
5483
 
5484
- const hasProcessStdout = typeof process === "object" && process !== null && typeof process.stdout === "object" && process.stdout !== null;
5485
- hasProcessStdout && process.stdout.isTTY === true;
5486
-
5487
5484
  const GLOBAL_STATE_KEY = Symbol('LMVZ__ariaValidationRuntimeState');
5488
5485
  const ARIA_VALIDATION_RUNTIME_CHANGED_EVENT = 'lmvz:aria-validation-runtime-changed';
5489
5486
  function getRuntimeState() {
@@ -5818,38 +5815,38 @@ class ReactiveControllerHost {
5818
5815
  this.controllers.delete(controller);
5819
5816
  }
5820
5817
  get activeControllers() {
5821
- return Array.from(this.controllers).filter(controller => !controller.disabled);
5818
+ return Array.from(this.controllers).filter((controller) => !controller.disabled);
5822
5819
  }
5823
5820
  connectedCallback() {
5824
5821
  if (!this.controllers.size) {
5825
5822
  console.warn('ReactiveControllerHost connected with no controllers registered.', this);
5826
5823
  }
5827
- this.activeControllers.forEach(controller => controller.hostConnected?.());
5824
+ this.activeControllers.forEach((controller) => controller.hostConnected?.());
5828
5825
  }
5829
5826
  disconnectedCallback() {
5830
- this.activeControllers.forEach(controller => controller.hostDisconnected?.());
5827
+ this.activeControllers.forEach((controller) => controller.hostDisconnected?.());
5831
5828
  }
5832
5829
  componentWillLoad() {
5833
- this.activeControllers.forEach(controller => controller.hostWillLoad?.());
5830
+ this.activeControllers.forEach((controller) => controller.hostWillLoad?.());
5834
5831
  }
5835
5832
  componentDidLoad() {
5836
- this.activeControllers.forEach(controller => controller.hostDidLoad?.());
5833
+ this.activeControllers.forEach((controller) => controller.hostDidLoad?.());
5837
5834
  }
5838
5835
  componentWillRender() {
5839
- this.activeControllers.forEach(controller => controller.hostWillRender?.());
5836
+ this.activeControllers.forEach((controller) => controller.hostWillRender?.());
5840
5837
  }
5841
5838
  componentDidRender() {
5842
- this.activeControllers.forEach(controller => controller.hostDidRender?.());
5839
+ this.activeControllers.forEach((controller) => controller.hostDidRender?.());
5843
5840
  }
5844
5841
  componentWillUpdate() {
5845
- this.activeControllers.forEach(controller => controller.hostWillUpdate?.());
5842
+ this.activeControllers.forEach((controller) => controller.hostWillUpdate?.());
5846
5843
  }
5847
5844
  componentDidUpdate() {
5848
- this.activeControllers.forEach(controller => controller.hostDidUpdate?.());
5845
+ this.activeControllers.forEach((controller) => controller.hostDidUpdate?.());
5849
5846
  }
5850
5847
  }
5851
5848
 
5852
- const lmvzButtonCss = () => ` @layer lmvz-ds.reset, lmvz-ds.theme, lmvz-ds.components, lmvz-ds.overrides; @layer lmvz-ds.theme { @font-face { font-family: Router; src: local('Router-Book'), url('/assets/fonts/Router-Book.woff') format('woff'), local('Router'); font-weight: 400 normal; } @font-face { font-family: Router; src: local('Router-Medium'), url('/assets/fonts/Router-Medium.woff') format('woff'), local('Router'); font-weight: 500; } @font-face { font-family: Router; src: local('Router-Bold'), url('/assets/fonts/Router-Bold.woff') format('woff'), local('Router'); font-weight: 700 bold; } } @layer lmvz-ds.reset { body { margin: 0; } h1, h2, h3, h4, h5, h6 { margin: 0; } } :host { button { --lmvz-button-color: var(--lmvz-component-color, var(--lmvz-semantic-color-int-on-primary, #ffffff)); --lmvz-button-padding-inline: var(--lmvz-button-padding, var(--lmvz-component-input-md-padding-x, clamp(0.75rem, 0.69rem + 0.26vw, 1rem))); --lmvz-button-padding-block: var(--lmvz-button-padding, var(--lmvz-component-input-md-padding-y, clamp(0.75rem, 0.69rem + 0.26vw, 1rem))); --lmvz-button-gap: var(--lmvz-component-input-md-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); --lmvz-button-font: var(--lmvz-typography-body-lg, 400 clamp(1rem, 0.97rem + 0.13vw, 1.13rem) / 1.4 Router); --lmvz-button-radius: var(--lmvz-component-input-radius-default, 999px); --lmvz-button-border-width: 0; --lmvz-button-border-color: transparent; --lmvz-button-background: var(--lmvz-semantic-color-int-primary, #000000); display: inline-flex; align-items: center; justify-content: center; gap: var(--lmvz-button-gap); padding-block: var(--lmvz-button-padding-block); padding-inline: var(--lmvz-button-padding-inline); border-radius: var(--lmvz-button-radius); border: var(--lmvz-button-border-width) solid var(--lmvz-button-border-color); background-color: var(--lmvz-button-background); color: var(--lmvz-button-color); cursor: pointer; font: var(--lmvz-button-font); text-align: center; text-decoration: none; white-space: nowrap; transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease; } button > * { font: inherit; color: inherit; } button:focus-visible { outline: var(--lmvz-semantic-border-width-default, 1px) solid var(--lmvz-semantic-color-status-active, #f1f9fe); outline-offset: var(--lmvz-component-input-sm-padding-x, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); } button:is([disabled], .disabled) { cursor: not-allowed; pointer-events: none; opacity: var(--lmvz-component-input-disabled-opacity, 40%); } button:not([disabled]):hover { --lmvz-button-background: var(--lmvz-semantic-color-int-primary-hover, #2e2e2e); } button:not([disabled]):active { --lmvz-button-background: var(--lmvz-semantic-color-int-primary-active, #545454); } button.secondary { --lmvz-button-background: var(--lmvz-semantic-color-int-secondary, #f0f0f0); --lmvz-button-color: var(--lmvz-semantic-color-int-on-secondary, #000000); --lmvz-button-border-width: var(--lmvz-semantic-border-width-default, 1px); --lmvz-button-border-color: var(--lmvz-semantic-color-border-default, #e0e0e0); } button.secondary:not([disabled], .disabled):hover { --lmvz-button-background: var(--lmvz-semantic-color-int-secondary-hover, #e0e0e0); --lmvz-button-border-color: var(--lmvz-semantic-color-border-hover, #c7c7c7); } button.secondary:not([disabled], .disabled):active { --lmvz-button-background: var(--lmvz-semantic-color-int-secondary-active, #d4d4d4); --lmvz-button-border-color: var(--lmvz-semantic-color-border-active, #0f8acc); } button.tertiary { --lmvz-button-background: var(--lmvz-semantic-color-int-tertiary, #ffffff); --lmvz-button-color: var(--lmvz-semantic-color-int-on-tertiary, #545454); } button.tertiary:not([disabled], .disabled):hover { --lmvz-button-background: var(--lmvz-semantic-color-int-tertiary-hover, #f0f0f0); } button.tertiary:not([disabled], .disabled):active { --lmvz-button-background: var(--lmvz-semantic-color-int-tertiary-active, #e0e0e0); } button.small { --lmvz-button-padding-inline: var(--lmvz-component-input-sm-padding-x, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); --lmvz-button-padding-block: var(--lmvz-component-input-sm-padding-y, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); --lmvz-button-gap: var(--lmvz-component-input-sm-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); --lmvz-button-font: var(--lmvz-typography-body-md, 400 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.4 Router); } button.large { --lmvz-button-padding-inline: var(--lmvz-component-input-lg-padding-x, clamp(0.88rem, 0.78rem + 0.39vw, 1.25rem)); --lmvz-button-padding-block: var(--lmvz-component-input-lg-padding-y, clamp(0.88rem, 0.78rem + 0.39vw, 1.25rem)); --lmvz-button-gap: var(--lmvz-component-input-lg-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); --lmvz-button-font: var(--lmvz-typography-body-lg, 400 clamp(1rem, 0.97rem + 0.13vw, 1.13rem) / 1.4 Router); } display: contents; } ::slotted(*) { --lmvz-component-color: var(--lmvz-button-color); } `;
5849
+ const lmvzButtonCss = () => ` @layer lmvz-ds.reset, lmvz-ds.theme, lmvz-ds.components, lmvz-ds.overrides; @layer lmvz-ds.theme { @font-face { font-family: Router; src: local('Router-Book'), url('/assets/fonts/Router-Book.woff') format('woff'), local('Router'); font-weight: 400 normal; } @font-face { font-family: Router; src: local('Router-Medium'), url('/assets/fonts/Router-Medium.woff') format('woff'), local('Router'); font-weight: 500; } @font-face { font-family: Router; src: local('Router-Bold'), url('/assets/fonts/Router-Bold.woff') format('woff'), local('Router'); font-weight: 700 bold; } } @layer lmvz-ds.reset { body { margin: 0; } h1, h2, h3, h4, h5, h6 { margin: 0; } } :host { button { --lmvz-button-color: var(--lmvz-component-color, var(--lmvz-semantic-color-int-on-primary, #ffffff)); --lmvz-button-padding-inline: var(--lmvz-button-padding, var(--lmvz-component-input-md-padding-x, clamp(0.75rem, 0.69rem + 0.26vw, 1rem))); --lmvz-button-padding-block: var(--lmvz-button-padding, var(--lmvz-component-input-md-padding-y, clamp(0.75rem, 0.69rem + 0.26vw, 1rem))); --lmvz-button-gap: var(--lmvz-component-input-md-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); --lmvz-button-font: var(--lmvz-typography-body-lg, 400 clamp(1rem, 0.97rem + 0.13vw, 1.13rem) / 1.4 Router); --lmvz-button-radius: var(--lmvz-component-input-radius-default, 999px); --lmvz-button-border-width: 0; --lmvz-button-border-color: transparent; --lmvz-button-background: var(--lmvz-semantic-color-int-primary, #000000); display: inline-flex; align-items: center; justify-content: center; gap: var(--lmvz-button-gap); padding-block: var(--lmvz-button-padding-block); padding-inline: var(--lmvz-button-padding-inline); border-radius: var(--lmvz-button-radius); border: var(--lmvz-button-border-width) solid var(--lmvz-button-border-color); background-color: var(--lmvz-button-background); color: var(--lmvz-button-color); cursor: pointer; font: var(--lmvz-button-font); text-align: center; text-decoration: none; white-space: nowrap; transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease; } button > * { font: inherit; color: inherit; } button:focus-visible { outline: var(--lmvz-semantic-border-width-default, 1px) solid var(--lmvz-semantic-color-status-on-active, #0e7ab4); outline-offset: var(--lmvz-component-input-sm-padding-x, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); } button:is([disabled], .disabled) { cursor: not-allowed; pointer-events: none; opacity: var(--lmvz-component-input-disabled-opacity, 40%); } button:not([disabled]):hover { --lmvz-button-background: var(--lmvz-semantic-color-int-primary-hover, #2e2e2e); } button:not([disabled]):active { --lmvz-button-background: var(--lmvz-semantic-color-int-primary-active, #545454); } button.secondary { --lmvz-button-background: var(--lmvz-semantic-color-int-secondary, #f0f0f0); --lmvz-button-color: var(--lmvz-semantic-color-int-on-secondary, #000000); --lmvz-button-border-width: var(--lmvz-semantic-border-width-default, 1px); --lmvz-button-border-color: var(--lmvz-semantic-color-border-default, #e0e0e0); } button.secondary:not([disabled], .disabled):hover { --lmvz-button-background: var(--lmvz-semantic-color-int-secondary-hover, #e0e0e0); --lmvz-button-border-color: var(--lmvz-semantic-color-border-hover, #c7c7c7); } button.secondary:not([disabled], .disabled):active { --lmvz-button-background: var(--lmvz-semantic-color-int-secondary-active, #d4d4d4); --lmvz-button-border-color: var(--lmvz-semantic-color-border-active, #0f8acc); } button.tertiary { --lmvz-button-background: var(--lmvz-semantic-color-int-tertiary, #ffffff); --lmvz-button-color: var(--lmvz-semantic-color-int-on-tertiary, #545454); } button.tertiary:not([disabled], .disabled):hover { --lmvz-button-background: var(--lmvz-semantic-color-int-tertiary-hover, #f0f0f0); } button.tertiary:not([disabled], .disabled):active { --lmvz-button-background: var(--lmvz-semantic-color-int-tertiary-active, #e0e0e0); } button.small { --lmvz-button-padding-inline: var(--lmvz-component-input-sm-padding-x, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); --lmvz-button-padding-block: var(--lmvz-component-input-sm-padding-y, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); --lmvz-button-gap: var(--lmvz-component-input-sm-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); --lmvz-button-font: var(--lmvz-typography-body-md, 400 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.4 Router); } button.large { --lmvz-button-padding-inline: var(--lmvz-component-input-lg-padding-x, clamp(0.88rem, 0.78rem + 0.39vw, 1.25rem)); --lmvz-button-padding-block: var(--lmvz-component-input-lg-padding-y, clamp(0.88rem, 0.78rem + 0.39vw, 1.25rem)); --lmvz-button-gap: var(--lmvz-component-input-lg-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); --lmvz-button-font: var(--lmvz-typography-body-lg, 400 clamp(1rem, 0.97rem + 0.13vw, 1.13rem) / 1.4 Router); } display: contents; } ::slotted(*) { --lmvz-component-color: var(--lmvz-button-color); } `;
5853
5850
 
5854
5851
  class LmvzButton extends ReactiveControllerHost {
5855
5852
  get el() { return getElement(this); }
@@ -5906,7 +5903,7 @@ class LmvzButton extends ReactiveControllerHost {
5906
5903
  };
5907
5904
  render() {
5908
5905
  this.renderHiddenButton();
5909
- return (hAsync(Host, { key: '2897a943aca62561b0e78b5b3f2b7b85d76f4e78', "aria-disabled": this.disabled ? 'true' : null }, hAsync("button", { key: '92555224e33b00fb2602fdb2d19075145c0d9097', ref: (e) => (this.validationEl = e), disabled: this.disabled, class: classNames(this.variant, { [this.scale ?? '']: !!this.scale, disabled: this.disabled }), ...this.inheritedAttributes }, hAsync("slot", { key: '637a03a73db84a63bf1e3165d57c474151f87783' }))));
5906
+ return (hAsync(Host, { key: 'ce82e749ffb9172a9421d303e0d7cc02de58dff9', "aria-disabled": this.disabled ? 'true' : null }, hAsync("button", { key: 'acd0773f72e76139ec5495eb15fc3a5949029e40', ref: (e) => (this.validationEl = e), disabled: this.disabled, class: classNames(this.variant, { [this.scale ?? '']: !!this.scale, disabled: this.disabled }), ...this.inheritedAttributes }, hAsync("slot", { key: 'f519e0f82e68811a8831214e83e609bd9501fed0' }))));
5910
5907
  }
5911
5908
  static get delegatesFocus() { return true; }
5912
5909
  static get style() { return lmvzButtonCss(); }
@@ -5947,7 +5944,7 @@ function joinPath(...parts) {
5947
5944
  return parts.filter(Boolean).join('/').replace('//', '/').replace('/./', '/');
5948
5945
  }
5949
5946
 
5950
- const lmvzCardCss = () => `@layer lmvz-ds.reset, lmvz-ds.theme, lmvz-ds.components, lmvz-ds.overrides; @layer lmvz-ds.theme { @font-face { font-family: Router; src: local('Router-Book'), url('/assets/fonts/Router-Book.woff') format('woff'), local('Router'); font-weight: 400 normal; } @font-face { font-family: Router; src: local('Router-Medium'), url('/assets/fonts/Router-Medium.woff') format('woff'), local('Router'); font-weight: 500; } @font-face { font-family: Router; src: local('Router-Bold'), url('/assets/fonts/Router-Bold.woff') format('woff'), local('Router'); font-weight: 700 bold; } } @layer lmvz-ds.reset { body { margin: 0; } h1, h2, h3, h4, h5, h6 { margin: 0; } } .sc-lmvz-card-h { button { --lmvz-button-color: var(--lmvz-component-color, var(--lmvz-semantic-color-int-on-primary, #ffffff)); --lmvz-button-padding-inline: var(--lmvz-button-padding, var(--lmvz-component-input-md-padding-x, clamp(0.75rem, 0.69rem + 0.26vw, 1rem))); --lmvz-button-padding-block: var(--lmvz-button-padding, var(--lmvz-component-input-md-padding-y, clamp(0.75rem, 0.69rem + 0.26vw, 1rem))); --lmvz-button-gap: var(--lmvz-component-input-md-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); --lmvz-button-font: var(--lmvz-typography-body-lg, 400 clamp(1rem, 0.97rem + 0.13vw, 1.13rem) / 1.4 Router); --lmvz-button-radius: var(--lmvz-component-input-radius-default, 999px); --lmvz-button-border-width: 0; --lmvz-button-border-color: transparent; --lmvz-button-background: var(--lmvz-semantic-color-int-primary, #000000); display: inline-flex; align-items: center; justify-content: center; gap: var(--lmvz-button-gap); padding-block: var(--lmvz-button-padding-block); padding-inline: var(--lmvz-button-padding-inline); border-radius: var(--lmvz-button-radius); border: var(--lmvz-button-border-width) solid var(--lmvz-button-border-color); background-color: var(--lmvz-button-background); color: var(--lmvz-button-color); cursor: pointer; font: var(--lmvz-button-font); text-align: center; text-decoration: none; white-space: nowrap; transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease; } button > * { font: inherit; color: inherit; } button:focus-visible { outline: var(--lmvz-semantic-border-width-default, 1px) solid var(--lmvz-semantic-color-status-active, #f1f9fe); outline-offset: var(--lmvz-component-input-sm-padding-x, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); } button:is([disabled], .disabled) { cursor: not-allowed; pointer-events: none; opacity: var(--lmvz-component-input-disabled-opacity, 40%); } button:not([disabled]):hover { --lmvz-button-background: var(--lmvz-semantic-color-int-primary-hover, #2e2e2e); } button:not([disabled]):active { --lmvz-button-background: var(--lmvz-semantic-color-int-primary-active, #545454); } button.secondary { --lmvz-button-background: var(--lmvz-semantic-color-int-secondary, #f0f0f0); --lmvz-button-color: var(--lmvz-semantic-color-int-on-secondary, #000000); --lmvz-button-border-width: var(--lmvz-semantic-border-width-default, 1px); --lmvz-button-border-color: var(--lmvz-semantic-color-border-default, #e0e0e0); } button.secondary:not([disabled], .disabled):hover { --lmvz-button-background: var(--lmvz-semantic-color-int-secondary-hover, #e0e0e0); --lmvz-button-border-color: var(--lmvz-semantic-color-border-hover, #c7c7c7); } button.secondary:not([disabled], .disabled):active { --lmvz-button-background: var(--lmvz-semantic-color-int-secondary-active, #d4d4d4); --lmvz-button-border-color: var(--lmvz-semantic-color-border-active, #0f8acc); } button.tertiary { --lmvz-button-background: var(--lmvz-semantic-color-int-tertiary, #ffffff); --lmvz-button-color: var(--lmvz-semantic-color-int-on-tertiary, #545454); } button.tertiary:not([disabled], .disabled):hover { --lmvz-button-background: var(--lmvz-semantic-color-int-tertiary-hover, #f0f0f0); } button.tertiary:not([disabled], .disabled):active { --lmvz-button-background: var(--lmvz-semantic-color-int-tertiary-active, #e0e0e0); } button.small { --lmvz-button-padding-inline: var(--lmvz-component-input-sm-padding-x, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); --lmvz-button-padding-block: var(--lmvz-component-input-sm-padding-y, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); --lmvz-button-gap: var(--lmvz-component-input-sm-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); --lmvz-button-font: var(--lmvz-typography-body-md, 400 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.4 Router); } button.large { --lmvz-button-padding-inline: var(--lmvz-component-input-lg-padding-x, clamp(0.88rem, 0.78rem + 0.39vw, 1.25rem)); --lmvz-button-padding-block: var(--lmvz-component-input-lg-padding-y, clamp(0.88rem, 0.78rem + 0.39vw, 1.25rem)); --lmvz-button-gap: var(--lmvz-component-input-lg-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); --lmvz-button-font: var(--lmvz-typography-body-lg, 400 clamp(1rem, 0.97rem + 0.13vw, 1.13rem) / 1.4 Router); } display: flex; min-width: var(--lmvz-card-component-card-minwidth, 20.4375rem); max-width: var(--lmvz-card-component-card-maxwidth, 21.6875rem); flex-direction: column; align-items: flex-start; border-radius: var(--lmvz-semantic-border-radius-lg, 14px); border: var(--lmvz-semantic-border-width-default, 1px) solid var(--lmvz-semantic-color-border-default, #e0e0e0); background: var(--lmvz-semantic-color-surface-primary, #ffffff); } *.sc-lmvz-card { color: var(--lmvz-semantic-color-on-surface-primary, #000000); font: var(--lmvz-typography-body-md, 400 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.4 Router); } .top.sc-lmvz-card { display: flex; padding: var(--lmvz-dimension-8-12, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); flex-direction: column; justify-content: center; align-items: center; align-self: stretch; } .bottom.sc-lmvz-card { display: flex; min-width: 150px; padding: var(--lmvz-dimension-4-6, clamp(0.25rem, 0.22rem + 0.13vw, 0.38rem)) var(--lmvz-dimension-10-14, clamp(0.63rem, 0.56rem + 0.26vw, 0.88rem)) var(--lmvz-dimension-10-14, clamp(0.63rem, 0.56rem + 0.26vw, 0.88rem)) var(--lmvz-dimension-10-14, clamp(0.63rem, 0.56rem + 0.26vw, 0.88rem)); flex-direction: column; align-items: flex-start; align-self: stretch; } .title.sc-lmvz-card { margin: 0; display: flex; justify-content: center; align-items: center; align-self: stretch; padding-bottom: var(--lmvz-global-s4, 4px); overflow-wrap: break-word; font: var(--lmvz-typography-heading-2xl, 500 clamp(2.25rem, 2.13rem + 0.52vw, 2.75rem) / 1.2 Router); } .description.sc-lmvz-card { display: flex; margin: 0; padding-bottom: var(--lmvz-component-body-sm-padding-bottom, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); align-items: flex-start; align-self: stretch; white-space: pre-line; font: var(--lmvz-typography-body-md, 400 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.4 Router); } .image-wrapper.sc-lmvz-card { aspect-ratio: 4 / 3; width: 100%; background-size: cover; background-position: center; flex: 1 0 0; align-self: stretch; border-radius: var(--lmvz-semantic-border-radius-md, 6px); } .actions.sc-lmvz-card { margin-top: var(--lmvz-component-form-wrapper-gap-y, clamp(1.13rem, 0.97rem + 0.65vw, 1.75rem)); display: flex; align-items: center; gap: var(--lmvz-component-input-md-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); align-self: stretch; } button.primary.sc-lmvz-card, lmvz-button.primary.sc-lmvz-card { display: flex; justify-content: center; align-items: center; gap: var(--lmvz-component-input-md-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); flex: 1 0 0; }`;
5947
+ const lmvzCardCss = () => `@layer lmvz-ds.reset, lmvz-ds.theme, lmvz-ds.components, lmvz-ds.overrides; @layer lmvz-ds.theme { @font-face { font-family: Router; src: local('Router-Book'), url('/assets/fonts/Router-Book.woff') format('woff'), local('Router'); font-weight: 400 normal; } @font-face { font-family: Router; src: local('Router-Medium'), url('/assets/fonts/Router-Medium.woff') format('woff'), local('Router'); font-weight: 500; } @font-face { font-family: Router; src: local('Router-Bold'), url('/assets/fonts/Router-Bold.woff') format('woff'), local('Router'); font-weight: 700 bold; } } @layer lmvz-ds.reset { body { margin: 0; } h1, h2, h3, h4, h5, h6 { margin: 0; } } .sc-lmvz-card-h { button { --lmvz-button-color: var(--lmvz-component-color, var(--lmvz-semantic-color-int-on-primary, #ffffff)); --lmvz-button-padding-inline: var(--lmvz-button-padding, var(--lmvz-component-input-md-padding-x, clamp(0.75rem, 0.69rem + 0.26vw, 1rem))); --lmvz-button-padding-block: var(--lmvz-button-padding, var(--lmvz-component-input-md-padding-y, clamp(0.75rem, 0.69rem + 0.26vw, 1rem))); --lmvz-button-gap: var(--lmvz-component-input-md-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); --lmvz-button-font: var(--lmvz-typography-body-lg, 400 clamp(1rem, 0.97rem + 0.13vw, 1.13rem) / 1.4 Router); --lmvz-button-radius: var(--lmvz-component-input-radius-default, 999px); --lmvz-button-border-width: 0; --lmvz-button-border-color: transparent; --lmvz-button-background: var(--lmvz-semantic-color-int-primary, #000000); display: inline-flex; align-items: center; justify-content: center; gap: var(--lmvz-button-gap); padding-block: var(--lmvz-button-padding-block); padding-inline: var(--lmvz-button-padding-inline); border-radius: var(--lmvz-button-radius); border: var(--lmvz-button-border-width) solid var(--lmvz-button-border-color); background-color: var(--lmvz-button-background); color: var(--lmvz-button-color); cursor: pointer; font: var(--lmvz-button-font); text-align: center; text-decoration: none; white-space: nowrap; transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease; } button > * { font: inherit; color: inherit; } button:focus-visible { outline: var(--lmvz-semantic-border-width-default, 1px) solid var(--lmvz-semantic-color-status-on-active, #0e7ab4); outline-offset: var(--lmvz-component-input-sm-padding-x, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); } button:is([disabled], .disabled) { cursor: not-allowed; pointer-events: none; opacity: var(--lmvz-component-input-disabled-opacity, 40%); } button:not([disabled]):hover { --lmvz-button-background: var(--lmvz-semantic-color-int-primary-hover, #2e2e2e); } button:not([disabled]):active { --lmvz-button-background: var(--lmvz-semantic-color-int-primary-active, #545454); } button.secondary { --lmvz-button-background: var(--lmvz-semantic-color-int-secondary, #f0f0f0); --lmvz-button-color: var(--lmvz-semantic-color-int-on-secondary, #000000); --lmvz-button-border-width: var(--lmvz-semantic-border-width-default, 1px); --lmvz-button-border-color: var(--lmvz-semantic-color-border-default, #e0e0e0); } button.secondary:not([disabled], .disabled):hover { --lmvz-button-background: var(--lmvz-semantic-color-int-secondary-hover, #e0e0e0); --lmvz-button-border-color: var(--lmvz-semantic-color-border-hover, #c7c7c7); } button.secondary:not([disabled], .disabled):active { --lmvz-button-background: var(--lmvz-semantic-color-int-secondary-active, #d4d4d4); --lmvz-button-border-color: var(--lmvz-semantic-color-border-active, #0f8acc); } button.tertiary { --lmvz-button-background: var(--lmvz-semantic-color-int-tertiary, #ffffff); --lmvz-button-color: var(--lmvz-semantic-color-int-on-tertiary, #545454); } button.tertiary:not([disabled], .disabled):hover { --lmvz-button-background: var(--lmvz-semantic-color-int-tertiary-hover, #f0f0f0); } button.tertiary:not([disabled], .disabled):active { --lmvz-button-background: var(--lmvz-semantic-color-int-tertiary-active, #e0e0e0); } button.small { --lmvz-button-padding-inline: var(--lmvz-component-input-sm-padding-x, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); --lmvz-button-padding-block: var(--lmvz-component-input-sm-padding-y, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); --lmvz-button-gap: var(--lmvz-component-input-sm-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); --lmvz-button-font: var(--lmvz-typography-body-md, 400 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.4 Router); } button.large { --lmvz-button-padding-inline: var(--lmvz-component-input-lg-padding-x, clamp(0.88rem, 0.78rem + 0.39vw, 1.25rem)); --lmvz-button-padding-block: var(--lmvz-component-input-lg-padding-y, clamp(0.88rem, 0.78rem + 0.39vw, 1.25rem)); --lmvz-button-gap: var(--lmvz-component-input-lg-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); --lmvz-button-font: var(--lmvz-typography-body-lg, 400 clamp(1rem, 0.97rem + 0.13vw, 1.13rem) / 1.4 Router); } display: flex; min-width: var(--lmvz-card-component-card-minwidth, 20.4375rem); max-width: var(--lmvz-card-component-card-maxwidth, 21.6875rem); flex-direction: column; align-items: flex-start; border-radius: var(--lmvz-semantic-border-radius-lg, 14px); border: var(--lmvz-semantic-border-width-default, 1px) solid var(--lmvz-semantic-color-border-default, #e0e0e0); background: var(--lmvz-semantic-color-surface-primary, #ffffff); } *.sc-lmvz-card { color: var(--lmvz-semantic-color-on-surface-primary, #000000); font: var(--lmvz-typography-body-md, 400 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.4 Router); } .top.sc-lmvz-card { display: flex; padding: var(--lmvz-dimension-8-12, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); flex-direction: column; justify-content: center; align-items: center; align-self: stretch; } .bottom.sc-lmvz-card { display: flex; min-width: 150px; padding: var(--lmvz-dimension-4-6, clamp(0.25rem, 0.22rem + 0.13vw, 0.38rem)) var(--lmvz-dimension-10-14, clamp(0.63rem, 0.56rem + 0.26vw, 0.88rem)) var(--lmvz-dimension-10-14, clamp(0.63rem, 0.56rem + 0.26vw, 0.88rem)) var(--lmvz-dimension-10-14, clamp(0.63rem, 0.56rem + 0.26vw, 0.88rem)); flex-direction: column; align-items: flex-start; align-self: stretch; } .title.sc-lmvz-card { margin: 0; display: flex; justify-content: center; align-items: center; align-self: stretch; padding-bottom: var(--lmvz-global-s4, 4px); overflow-wrap: break-word; font: var(--lmvz-typography-heading-2xl, 500 clamp(2.25rem, 2.13rem + 0.52vw, 2.75rem) / 1.2 Router); } .description.sc-lmvz-card { display: flex; margin: 0; padding-bottom: var(--lmvz-component-body-sm-padding-bottom, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); align-items: flex-start; align-self: stretch; white-space: pre-line; font: var(--lmvz-typography-body-md, 400 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.4 Router); } .image-wrapper.sc-lmvz-card { aspect-ratio: 4 / 3; width: 100%; background-size: cover; background-position: center; flex: 1 0 0; align-self: stretch; border-radius: var(--lmvz-semantic-border-radius-md, 6px); } .actions.sc-lmvz-card { margin-top: var(--lmvz-component-form-wrapper-gap-y, clamp(1.13rem, 0.97rem + 0.65vw, 1.75rem)); display: flex; align-items: center; gap: var(--lmvz-component-input-md-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); align-self: stretch; } button.primary.sc-lmvz-card, lmvz-button.primary.sc-lmvz-card { display: flex; justify-content: center; align-items: center; gap: var(--lmvz-component-input-md-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); flex: 1 0 0; }`;
5951
5948
 
5952
5949
  class LmvzCard {
5953
5950
  constructor(hostRef) {
@@ -5991,26 +5988,2369 @@ class LmvzCard {
5991
5988
  }; }
5992
5989
  }
5993
5990
 
5994
- const lmvzChipCss = () => `:host{display:block}`;
5991
+ /**
5992
+ * Tests if a value is a `function`.
5993
+ *
5994
+ * @example
5995
+ * ```ts
5996
+ * import * as assert from "node:assert"
5997
+ * import { isFunction } from "effect/Predicate"
5998
+ *
5999
+ * assert.deepStrictEqual(isFunction(isFunction), true)
6000
+ * assert.deepStrictEqual(isFunction("function"), false)
6001
+ * ```
6002
+ *
6003
+ * @category guards
6004
+ * @since 2.0.0
6005
+ */
6006
+ const isFunction$1 = input => typeof input === "function";
6007
+ /**
6008
+ * Creates a function that can be used in a data-last (aka `pipe`able) or
6009
+ * data-first style.
6010
+ *
6011
+ * The first parameter to `dual` is either the arity of the uncurried function
6012
+ * or a predicate that determines if the function is being used in a data-first
6013
+ * or data-last style.
6014
+ *
6015
+ * Using the arity is the most common use case, but there are some cases where
6016
+ * you may want to use a predicate. For example, if you have a function that
6017
+ * takes an optional argument, you can use a predicate to determine if the
6018
+ * function is being used in a data-first or data-last style.
6019
+ *
6020
+ * You can pass either the arity of the uncurried function or a predicate
6021
+ * which determines if the function is being used in a data-first or
6022
+ * data-last style.
6023
+ *
6024
+ * **Example** (Using arity to determine data-first or data-last style)
6025
+ *
6026
+ * ```ts
6027
+ * import { dual, pipe } from "effect/Function"
6028
+ *
6029
+ * const sum = dual<
6030
+ * (that: number) => (self: number) => number,
6031
+ * (self: number, that: number) => number
6032
+ * >(2, (self, that) => self + that)
6033
+ *
6034
+ * console.log(sum(2, 3)) // 5
6035
+ * console.log(pipe(2, sum(3))) // 5
6036
+ * ```
6037
+ *
6038
+ * **Example** (Using call signatures to define the overloads)
6039
+ *
6040
+ * ```ts
6041
+ * import { dual, pipe } from "effect/Function"
6042
+ *
6043
+ * const sum: {
6044
+ * (that: number): (self: number) => number
6045
+ * (self: number, that: number): number
6046
+ * } = dual(2, (self: number, that: number): number => self + that)
6047
+ *
6048
+ * console.log(sum(2, 3)) // 5
6049
+ * console.log(pipe(2, sum(3))) // 5
6050
+ * ```
6051
+ *
6052
+ * **Example** (Using a predicate to determine data-first or data-last style)
6053
+ *
6054
+ * ```ts
6055
+ * import { dual, pipe } from "effect/Function"
6056
+ *
6057
+ * const sum = dual<
6058
+ * (that: number) => (self: number) => number,
6059
+ * (self: number, that: number) => number
6060
+ * >(
6061
+ * (args) => args.length === 2,
6062
+ * (self, that) => self + that
6063
+ * )
6064
+ *
6065
+ * console.log(sum(2, 3)) // 5
6066
+ * console.log(pipe(2, sum(3))) // 5
6067
+ * ```
6068
+ *
6069
+ * @since 2.0.0
6070
+ */
6071
+ const dual = function (arity, body) {
6072
+ if (typeof arity === "function") {
6073
+ return function () {
6074
+ if (arity(arguments)) {
6075
+ // @ts-expect-error
6076
+ return body.apply(this, arguments);
6077
+ }
6078
+ return self => body(self, ...arguments);
6079
+ };
6080
+ }
6081
+ switch (arity) {
6082
+ case 0:
6083
+ case 1:
6084
+ throw new RangeError(`Invalid arity ${arity}`);
6085
+ case 2:
6086
+ return function (a, b) {
6087
+ if (arguments.length >= 2) {
6088
+ return body(a, b);
6089
+ }
6090
+ return function (self) {
6091
+ return body(self, a);
6092
+ };
6093
+ };
6094
+ case 3:
6095
+ return function (a, b, c) {
6096
+ if (arguments.length >= 3) {
6097
+ return body(a, b, c);
6098
+ }
6099
+ return function (self) {
6100
+ return body(self, a, b);
6101
+ };
6102
+ };
6103
+ case 4:
6104
+ return function (a, b, c, d) {
6105
+ if (arguments.length >= 4) {
6106
+ return body(a, b, c, d);
6107
+ }
6108
+ return function (self) {
6109
+ return body(self, a, b, c);
6110
+ };
6111
+ };
6112
+ case 5:
6113
+ return function (a, b, c, d, e) {
6114
+ if (arguments.length >= 5) {
6115
+ return body(a, b, c, d, e);
6116
+ }
6117
+ return function (self) {
6118
+ return body(self, a, b, c, d);
6119
+ };
6120
+ };
6121
+ default:
6122
+ return function () {
6123
+ if (arguments.length >= arity) {
6124
+ // @ts-expect-error
6125
+ return body.apply(this, arguments);
6126
+ }
6127
+ const args = arguments;
6128
+ return function (self) {
6129
+ return body(self, ...args);
6130
+ };
6131
+ };
6132
+ }
6133
+ };
6134
+ /**
6135
+ * The identity function, i.e. A function that returns its input argument.
6136
+ *
6137
+ * @example
6138
+ * ```ts
6139
+ * import * as assert from "node:assert"
6140
+ * import { identity } from "effect/Function"
6141
+ *
6142
+ * assert.deepStrictEqual(identity(5), 5)
6143
+ * ```
6144
+ *
6145
+ * @since 2.0.0
6146
+ */
6147
+ const identity = a => a;
6148
+ /**
6149
+ * Creates a constant value that never changes.
6150
+ *
6151
+ * This is useful when you want to pass a value to a higher-order function (a function that takes another function as its argument)
6152
+ * and want that inner function to always use the same value, no matter how many times it is called.
6153
+ *
6154
+ * @example
6155
+ * ```ts
6156
+ * import * as assert from "node:assert"
6157
+ * import { constant } from "effect/Function"
6158
+ *
6159
+ * const constNull = constant(null)
6160
+ *
6161
+ * assert.deepStrictEqual(constNull(), null)
6162
+ * assert.deepStrictEqual(constNull(), null)
6163
+ * ```
6164
+ *
6165
+ * @since 2.0.0
6166
+ */
6167
+ const constant = value => () => value;
6168
+ /**
6169
+ * A thunk that returns always `undefined`.
6170
+ *
6171
+ * @example
6172
+ * ```ts
6173
+ * import * as assert from "node:assert"
6174
+ * import { constUndefined } from "effect/Function"
6175
+ *
6176
+ * assert.deepStrictEqual(constUndefined(), undefined)
6177
+ * ```
6178
+ *
6179
+ * @since 2.0.0
6180
+ */
6181
+ const constUndefined = /*#__PURE__*/constant(undefined);
6182
+ /**
6183
+ * A thunk that returns always `void`.
6184
+ *
6185
+ * @example
6186
+ * ```ts
6187
+ * import * as assert from "node:assert"
6188
+ * import { constVoid } from "effect/Function"
6189
+ *
6190
+ * assert.deepStrictEqual(constVoid(), undefined)
6191
+ * ```
6192
+ *
6193
+ * @since 2.0.0
6194
+ */
6195
+ const constVoid = constUndefined;
6196
+ function pipe(a, ab, bc, cd, de, ef, fg, gh, hi) {
6197
+ switch (arguments.length) {
6198
+ case 1:
6199
+ return a;
6200
+ case 2:
6201
+ return ab(a);
6202
+ case 3:
6203
+ return bc(ab(a));
6204
+ case 4:
6205
+ return cd(bc(ab(a)));
6206
+ case 5:
6207
+ return de(cd(bc(ab(a))));
6208
+ case 6:
6209
+ return ef(de(cd(bc(ab(a)))));
6210
+ case 7:
6211
+ return fg(ef(de(cd(bc(ab(a))))));
6212
+ case 8:
6213
+ return gh(fg(ef(de(cd(bc(ab(a)))))));
6214
+ case 9:
6215
+ return hi(gh(fg(ef(de(cd(bc(ab(a))))))));
6216
+ default:
6217
+ {
6218
+ let ret = arguments[0];
6219
+ for (let i = 1; i < arguments.length; i++) {
6220
+ ret = arguments[i](ret);
6221
+ }
6222
+ return ret;
6223
+ }
6224
+ }
6225
+ }
6226
+
6227
+ /**
6228
+ * The `GlobalValue` module ensures that a single instance of a value is created globally,
6229
+ * even when modules are imported multiple times (e.g., due to mixing CommonJS and ESM builds)
6230
+ * or during hot-reloading in development environments like Next.js or Remix.
6231
+ *
6232
+ * It achieves this by using a versioned global store, identified by a unique `Symbol` tied to
6233
+ * the current version of the `effect` library. The store holds values that are keyed by an identifier,
6234
+ * allowing the reuse of previously computed instances across imports or reloads.
6235
+ *
6236
+ * This pattern is particularly useful in scenarios where frequent reloading can cause services or
6237
+ * single-instance objects to be recreated unnecessarily, such as in development environments with hot-reloading.
6238
+ *
6239
+ * @since 2.0.0
6240
+ */
6241
+ const globalStoreId = `effect/GlobalValue`;
6242
+ let globalStore;
6243
+ /**
6244
+ * Retrieves or computes a global value associated with the given `id`. If the value for this `id`
6245
+ * has already been computed, it will be returned from the global store. If it does not exist yet,
6246
+ * the provided `compute` function will be executed to compute the value, store it, and then return it.
6247
+ *
6248
+ * This ensures that even in cases where the module is imported multiple times (e.g., in mixed environments
6249
+ * like CommonJS and ESM, or during hot-reloading in development), the value is computed only once and reused
6250
+ * thereafter.
6251
+ *
6252
+ * @example
6253
+ * ```ts
6254
+ * import { globalValue } from "effect/GlobalValue"
6255
+ *
6256
+ * // This cache will persist as long as the module is running,
6257
+ * // even if reloaded or imported elsewhere
6258
+ * const myCache = globalValue(
6259
+ * Symbol.for("myCache"),
6260
+ * () => new WeakMap<object, number>()
6261
+ * )
6262
+ * ```
6263
+ *
6264
+ * @since 2.0.0
6265
+ */
6266
+ const globalValue = (id, compute) => {
6267
+ if (!globalStore) {
6268
+ // @ts-expect-error
6269
+ globalThis[globalStoreId] ??= new Map();
6270
+ // @ts-expect-error
6271
+ globalStore = globalThis[globalStoreId];
6272
+ }
6273
+ if (!globalStore.has(id)) {
6274
+ globalStore.set(id, compute());
6275
+ }
6276
+ return globalStore.get(id);
6277
+ };
5995
6278
 
5996
- class LmvzChip {
5997
- constructor(hostRef) {
5998
- registerInstance(this, hostRef);
6279
+ /**
6280
+ * This module provides a collection of functions for working with predicates and refinements.
6281
+ *
6282
+ * A `Predicate<A>` is a function that takes a value of type `A` and returns a boolean.
6283
+ * It is used to check if a value satisfies a certain condition.
6284
+ *
6285
+ * A `Refinement<A, B>` is a special type of predicate that not only checks a condition
6286
+ * but also provides a type guard, allowing TypeScript to narrow the type of the input
6287
+ * value from `A` to a more specific type `B` within a conditional block.
6288
+ *
6289
+ * The module includes:
6290
+ * - Basic predicates and refinements for common types (e.g., `isString`, `isNumber`).
6291
+ * - Combinators to create new predicates from existing ones (e.g., `and`, `or`, `not`).
6292
+ * - Advanced combinators for working with data structures (e.g., `tuple`, `struct`).
6293
+ * - Type-level utilities for inspecting predicate and refinement types.
6294
+ *
6295
+ * @since 2.0.0
6296
+ */
6297
+ /**
6298
+ * A refinement that checks if a value is a `Function`.
6299
+ *
6300
+ * @example
6301
+ * ```ts
6302
+ * import * as assert from "node:assert"
6303
+ * import { isFunction } from "effect/Predicate"
6304
+ *
6305
+ * assert.strictEqual(isFunction(() => {}), true)
6306
+ * assert.strictEqual(isFunction(isFunction), true)
6307
+ *
6308
+ * assert.strictEqual(isFunction("function"), false)
6309
+ * ```
6310
+ *
6311
+ * @category guards
6312
+ * @since 2.0.0
6313
+ */
6314
+ const isFunction = isFunction$1;
6315
+ /**
6316
+ * Checks if the input is an object or an array.
6317
+ * @internal
6318
+ */
6319
+ const isRecordOrArray = input => typeof input === "object" && input !== null;
6320
+ /**
6321
+ * A refinement that checks if a value is an `object`. Note that in JavaScript,
6322
+ * arrays and functions are also considered objects.
6323
+ *
6324
+ * @example
6325
+ * ```ts
6326
+ * import * as assert from "node:assert"
6327
+ * import { isObject } from "effect/Predicate"
6328
+ *
6329
+ * assert.strictEqual(isObject({}), true)
6330
+ * assert.strictEqual(isObject([]), true)
6331
+ * assert.strictEqual(isObject(() => {}), true)
6332
+ *
6333
+ * assert.strictEqual(isObject(null), false)
6334
+ * assert.strictEqual(isObject("hello"), false)
6335
+ * ```
6336
+ *
6337
+ * @category guards
6338
+ * @since 2.0.0
6339
+ * @see isRecord to check for plain objects (excluding arrays and functions).
6340
+ */
6341
+ const isObject = input => isRecordOrArray(input) || isFunction(input);
6342
+ /**
6343
+ * A refinement that checks if a value is an object-like value and has a specific property key.
6344
+ *
6345
+ * @example
6346
+ * ```ts
6347
+ * import * as assert from "node:assert"
6348
+ * import { hasProperty } from "effect/Predicate"
6349
+ *
6350
+ * assert.strictEqual(hasProperty({ a: 1 }, "a"), true)
6351
+ * assert.strictEqual(hasProperty({ a: 1 }, "b"), false)
6352
+ *
6353
+ * const value: unknown = { name: "Alice" };
6354
+ * if (hasProperty(value, "name")) {
6355
+ * // The type of `value` is narrowed to `{ name: unknown }`
6356
+ * // and we can safely access `value.name`
6357
+ * console.log(value.name)
6358
+ * }
6359
+ * ```
6360
+ *
6361
+ * @category guards
6362
+ * @since 2.0.0
6363
+ */
6364
+ const hasProperty = /*#__PURE__*/dual(2, (self, property) => isObject(self) && property in self);
6365
+
6366
+ /**
6367
+ * @since 2.0.0
6368
+ */
6369
+ /**
6370
+ * @category constructors
6371
+ * @since 2.0.0
6372
+ */
6373
+ class SingleShotGen {
6374
+ self;
6375
+ called = false;
6376
+ constructor(self) {
6377
+ this.self = self;
6378
+ }
6379
+ /**
6380
+ * @since 2.0.0
6381
+ */
6382
+ next(a) {
6383
+ return this.called ? {
6384
+ value: a,
6385
+ done: true
6386
+ } : (this.called = true, {
6387
+ value: this.self,
6388
+ done: false
6389
+ });
6390
+ }
6391
+ /**
6392
+ * @since 2.0.0
6393
+ */
6394
+ return(a) {
6395
+ return {
6396
+ value: a,
6397
+ done: true
6398
+ };
6399
+ }
6400
+ /**
6401
+ * @since 2.0.0
6402
+ */
6403
+ throw(e) {
6404
+ throw e;
6405
+ }
6406
+ /**
6407
+ * @since 2.0.0
6408
+ */
6409
+ [Symbol.iterator]() {
6410
+ return new SingleShotGen(this.self);
6411
+ }
6412
+ }
6413
+ /**
6414
+ * @since 3.0.6
6415
+ */
6416
+ const YieldWrapTypeId = /*#__PURE__*/Symbol.for("effect/Utils/YieldWrap");
6417
+ /**
6418
+ * @since 3.0.6
6419
+ */
6420
+ class YieldWrap {
6421
+ /**
6422
+ * @since 3.0.6
6423
+ */
6424
+ #value;
6425
+ constructor(value) {
6426
+ this.#value = value;
6427
+ }
6428
+ /**
6429
+ * @since 3.0.6
6430
+ */
6431
+ [YieldWrapTypeId]() {
6432
+ return this.#value;
6433
+ }
6434
+ }
6435
+ /**
6436
+ * Note: this is an experimental feature made available to allow custom matchers in tests, not to be directly used yet in user code
6437
+ *
6438
+ * @since 3.1.1
6439
+ * @status experimental
6440
+ * @category modifiers
6441
+ */
6442
+ const structuralRegionState = /*#__PURE__*/globalValue("effect/Utils/isStructuralRegion", () => ({
6443
+ enabled: false,
6444
+ tester: undefined
6445
+ }));
6446
+
6447
+ /**
6448
+ * @since 2.0.0
6449
+ */
6450
+ /** @internal */
6451
+ const randomHashCache = /*#__PURE__*/globalValue(/*#__PURE__*/Symbol.for("effect/Hash/randomHashCache"), () => new WeakMap());
6452
+ /**
6453
+ * @since 2.0.0
6454
+ * @category symbols
6455
+ */
6456
+ const symbol$1 = /*#__PURE__*/Symbol.for("effect/Hash");
6457
+ /**
6458
+ * @since 2.0.0
6459
+ * @category hashing
6460
+ */
6461
+ const hash = self => {
6462
+ if (structuralRegionState.enabled === true) {
6463
+ return 0;
6464
+ }
6465
+ switch (typeof self) {
6466
+ case "number":
6467
+ return number(self);
6468
+ case "bigint":
6469
+ return string(self.toString(10));
6470
+ case "boolean":
6471
+ return string(String(self));
6472
+ case "symbol":
6473
+ return string(String(self));
6474
+ case "string":
6475
+ return string(self);
6476
+ case "undefined":
6477
+ return string("undefined");
6478
+ case "function":
6479
+ case "object":
6480
+ {
6481
+ if (self === null) {
6482
+ return string("null");
6483
+ } else if (self instanceof Date) {
6484
+ if (Number.isNaN(self.getTime())) {
6485
+ return string("Invalid Date");
6486
+ }
6487
+ return hash(self.toISOString());
6488
+ } else if (self instanceof URL) {
6489
+ return hash(self.href);
6490
+ } else if (isHash(self)) {
6491
+ return self[symbol$1]();
6492
+ } else {
6493
+ return random(self);
6494
+ }
6495
+ }
6496
+ default:
6497
+ throw new Error(`BUG: unhandled typeof ${typeof self} - please report an issue at https://github.com/Effect-TS/effect/issues`);
6498
+ }
6499
+ };
6500
+ /**
6501
+ * @since 2.0.0
6502
+ * @category hashing
6503
+ */
6504
+ const random = self => {
6505
+ if (!randomHashCache.has(self)) {
6506
+ randomHashCache.set(self, number(Math.floor(Math.random() * Number.MAX_SAFE_INTEGER)));
6507
+ }
6508
+ return randomHashCache.get(self);
6509
+ };
6510
+ /**
6511
+ * @since 2.0.0
6512
+ * @category hashing
6513
+ */
6514
+ const combine = b => self => self * 53 ^ b;
6515
+ /**
6516
+ * @since 2.0.0
6517
+ * @category hashing
6518
+ */
6519
+ const optimize = n => n & 0xbfffffff | n >>> 1 & 0x40000000;
6520
+ /**
6521
+ * @since 2.0.0
6522
+ * @category guards
6523
+ */
6524
+ const isHash = u => hasProperty(u, symbol$1);
6525
+ /**
6526
+ * @since 2.0.0
6527
+ * @category hashing
6528
+ */
6529
+ const number = n => {
6530
+ if (n !== n || n === Infinity) {
6531
+ return 0;
6532
+ }
6533
+ let h = n | 0;
6534
+ if (h !== n) {
6535
+ h ^= n * 0xffffffff;
6536
+ }
6537
+ while (n > 0xffffffff) {
6538
+ h ^= n /= 0xffffffff;
6539
+ }
6540
+ return optimize(h);
6541
+ };
6542
+ /**
6543
+ * @since 2.0.0
6544
+ * @category hashing
6545
+ */
6546
+ const string = str => {
6547
+ let h = 5381,
6548
+ i = str.length;
6549
+ while (i) {
6550
+ h = h * 33 ^ str.charCodeAt(--i);
6551
+ }
6552
+ return optimize(h);
6553
+ };
6554
+ /**
6555
+ * @since 2.0.0
6556
+ * @category hashing
6557
+ */
6558
+ const structureKeys = (o, keys) => {
6559
+ let h = 12289;
6560
+ for (let i = 0; i < keys.length; i++) {
6561
+ h ^= pipe(string(keys[i]), combine(hash(o[keys[i]])));
6562
+ }
6563
+ return optimize(h);
6564
+ };
6565
+ /**
6566
+ * @since 2.0.0
6567
+ * @category hashing
6568
+ */
6569
+ const structure = o => structureKeys(o, Object.keys(o));
6570
+ /**
6571
+ * @since 2.0.0
6572
+ * @category hashing
6573
+ */
6574
+ const cached = function () {
6575
+ if (arguments.length === 1) {
6576
+ const self = arguments[0];
6577
+ return function (hash) {
6578
+ Object.defineProperty(self, symbol$1, {
6579
+ value() {
6580
+ return hash;
6581
+ },
6582
+ enumerable: false
6583
+ });
6584
+ return hash;
6585
+ };
6586
+ }
6587
+ const self = arguments[0];
6588
+ const hash = arguments[1];
6589
+ Object.defineProperty(self, symbol$1, {
6590
+ value() {
6591
+ return hash;
6592
+ },
6593
+ enumerable: false
6594
+ });
6595
+ return hash;
6596
+ };
6597
+
6598
+ /**
6599
+ * @since 2.0.0
6600
+ * @category symbols
6601
+ */
6602
+ const symbol = /*#__PURE__*/Symbol.for("effect/Equal");
6603
+ function equals() {
6604
+ if (arguments.length === 1) {
6605
+ return self => compareBoth(self, arguments[0]);
6606
+ }
6607
+ return compareBoth(arguments[0], arguments[1]);
6608
+ }
6609
+ function compareBoth(self, that) {
6610
+ if (self === that) {
6611
+ return true;
6612
+ }
6613
+ const selfType = typeof self;
6614
+ if (selfType !== typeof that) {
6615
+ return false;
6616
+ }
6617
+ if (selfType === "object" || selfType === "function") {
6618
+ if (self !== null && that !== null) {
6619
+ if (isEqual(self) && isEqual(that)) {
6620
+ if (hash(self) === hash(that) && self[symbol](that)) {
6621
+ return true;
6622
+ } else {
6623
+ return structuralRegionState.enabled && structuralRegionState.tester ? structuralRegionState.tester(self, that) : false;
6624
+ }
6625
+ } else if (self instanceof Date && that instanceof Date) {
6626
+ const t1 = self.getTime();
6627
+ const t2 = that.getTime();
6628
+ return t1 === t2 || Number.isNaN(t1) && Number.isNaN(t2);
6629
+ } else if (self instanceof URL && that instanceof URL) {
6630
+ return self.href === that.href;
6631
+ }
5999
6632
  }
6000
- text;
6001
- render() {
6002
- return hAsync(Host, { key: 'd128e24bb90891ebd13d13a8e27c06782363cace' }, this.text);
6633
+ if (structuralRegionState.enabled) {
6634
+ if (self === null || that === null) {
6635
+ return false;
6636
+ }
6637
+ if (Array.isArray(self) && Array.isArray(that)) {
6638
+ return self.length === that.length && self.every((v, i) => compareBoth(v, that[i]));
6639
+ }
6640
+ if (Object.getPrototypeOf(self) === Object.prototype && Object.getPrototypeOf(that) === Object.prototype) {
6641
+ const keysSelf = Object.keys(self);
6642
+ const keysThat = Object.keys(that);
6643
+ if (keysSelf.length === keysThat.length) {
6644
+ for (const key of keysSelf) {
6645
+ // @ts-expect-error
6646
+ if (!(key in that && compareBoth(self[key], that[key]))) {
6647
+ return structuralRegionState.tester ? structuralRegionState.tester(self, that) : false;
6648
+ }
6649
+ }
6650
+ return true;
6651
+ }
6652
+ }
6653
+ return structuralRegionState.tester ? structuralRegionState.tester(self, that) : false;
6003
6654
  }
6004
- static get style() { return lmvzChipCss(); }
6005
- static get cmpMeta() { return {
6006
- "$flags$": 521,
6007
- "$tagName$": "lmvz-chip",
6008
- "$members$": {
6009
- "text": [1]
6010
- },
6011
- "$listeners$": undefined,
6012
- "$lazyBundleId$": "-",
6013
- "$attrsToReflect$": []
6655
+ }
6656
+ return structuralRegionState.enabled && structuralRegionState.tester ? structuralRegionState.tester(self, that) : false;
6657
+ }
6658
+ /**
6659
+ * @since 2.0.0
6660
+ * @category guards
6661
+ */
6662
+ const isEqual = u => hasProperty(u, symbol);
6663
+
6664
+ /**
6665
+ * @since 2.0.0
6666
+ * @category symbols
6667
+ */
6668
+ const NodeInspectSymbol = /*#__PURE__*/Symbol.for("nodejs.util.inspect.custom");
6669
+ /**
6670
+ * @since 2.0.0
6671
+ */
6672
+ const toJSON = x => {
6673
+ try {
6674
+ if (hasProperty(x, "toJSON") && isFunction(x["toJSON"]) && x["toJSON"].length === 0) {
6675
+ return x.toJSON();
6676
+ } else if (Array.isArray(x)) {
6677
+ return x.map(toJSON);
6678
+ }
6679
+ } catch {
6680
+ return {};
6681
+ }
6682
+ return redact(x);
6683
+ };
6684
+ /**
6685
+ * @since 2.0.0
6686
+ */
6687
+ const format = x => JSON.stringify(x, null, 2);
6688
+ /**
6689
+ * @since 2.0.0
6690
+ */
6691
+ const toStringUnknown = (u, whitespace = 2) => {
6692
+ if (typeof u === "string") {
6693
+ return u;
6694
+ }
6695
+ try {
6696
+ return typeof u === "object" ? stringifyCircular(u, whitespace) : String(u);
6697
+ } catch {
6698
+ return String(u);
6699
+ }
6700
+ };
6701
+ /**
6702
+ * @since 2.0.0
6703
+ */
6704
+ const stringifyCircular = (obj, whitespace) => {
6705
+ let cache = [];
6706
+ const retVal = JSON.stringify(obj, (_key, value) => typeof value === "object" && value !== null ? cache.includes(value) ? undefined // circular reference
6707
+ : cache.push(value) && (redactableState.fiberRefs !== undefined && isRedactable(value) ? value[symbolRedactable](redactableState.fiberRefs) : value) : value, whitespace);
6708
+ cache = undefined;
6709
+ return retVal;
6710
+ };
6711
+ /**
6712
+ * @since 3.10.0
6713
+ * @category redactable
6714
+ */
6715
+ const symbolRedactable = /*#__PURE__*/Symbol.for("effect/Inspectable/Redactable");
6716
+ /**
6717
+ * @since 3.10.0
6718
+ * @category redactable
6719
+ */
6720
+ const isRedactable = u => typeof u === "object" && u !== null && symbolRedactable in u;
6721
+ const redactableState = /*#__PURE__*/globalValue("effect/Inspectable/redactableState", () => ({
6722
+ fiberRefs: undefined
6723
+ }));
6724
+ /**
6725
+ * @since 3.10.0
6726
+ * @category redactable
6727
+ */
6728
+ const redact = u => {
6729
+ if (isRedactable(u) && redactableState.fiberRefs !== undefined) {
6730
+ return u[symbolRedactable](redactableState.fiberRefs);
6731
+ }
6732
+ return u;
6733
+ };
6734
+
6735
+ /**
6736
+ * @since 2.0.0
6737
+ */
6738
+ /**
6739
+ * @since 2.0.0
6740
+ */
6741
+ const pipeArguments = (self, args) => {
6742
+ switch (args.length) {
6743
+ case 0:
6744
+ return self;
6745
+ case 1:
6746
+ return args[0](self);
6747
+ case 2:
6748
+ return args[1](args[0](self));
6749
+ case 3:
6750
+ return args[2](args[1](args[0](self)));
6751
+ case 4:
6752
+ return args[3](args[2](args[1](args[0](self))));
6753
+ case 5:
6754
+ return args[4](args[3](args[2](args[1](args[0](self)))));
6755
+ case 6:
6756
+ return args[5](args[4](args[3](args[2](args[1](args[0](self))))));
6757
+ case 7:
6758
+ return args[6](args[5](args[4](args[3](args[2](args[1](args[0](self)))))));
6759
+ case 8:
6760
+ return args[7](args[6](args[5](args[4](args[3](args[2](args[1](args[0](self))))))));
6761
+ case 9:
6762
+ return args[8](args[7](args[6](args[5](args[4](args[3](args[2](args[1](args[0](self)))))))));
6763
+ default:
6764
+ {
6765
+ let ret = self;
6766
+ for (let i = 0, len = args.length; i < len; i++) {
6767
+ ret = args[i](ret);
6768
+ }
6769
+ return ret;
6770
+ }
6771
+ }
6772
+ };
6773
+
6774
+ let moduleVersion = "3.21.1";
6775
+ const getCurrentVersion = () => moduleVersion;
6776
+
6777
+ /** @internal */
6778
+ const EffectTypeId = /*#__PURE__*/Symbol.for("effect/Effect");
6779
+ /** @internal */
6780
+ const StreamTypeId = /*#__PURE__*/Symbol.for("effect/Stream");
6781
+ /** @internal */
6782
+ const SinkTypeId = /*#__PURE__*/Symbol.for("effect/Sink");
6783
+ /** @internal */
6784
+ const ChannelTypeId = /*#__PURE__*/Symbol.for("effect/Channel");
6785
+ /** @internal */
6786
+ const effectVariance = {
6787
+ /* c8 ignore next */
6788
+ _R: _ => _,
6789
+ /* c8 ignore next */
6790
+ _E: _ => _,
6791
+ /* c8 ignore next */
6792
+ _A: _ => _,
6793
+ _V: /*#__PURE__*/getCurrentVersion()
6794
+ };
6795
+ const sinkVariance = {
6796
+ /* c8 ignore next */
6797
+ _A: _ => _,
6798
+ /* c8 ignore next */
6799
+ _In: _ => _,
6800
+ /* c8 ignore next */
6801
+ _L: _ => _,
6802
+ /* c8 ignore next */
6803
+ _E: _ => _,
6804
+ /* c8 ignore next */
6805
+ _R: _ => _
6806
+ };
6807
+ const channelVariance = {
6808
+ /* c8 ignore next */
6809
+ _Env: _ => _,
6810
+ /* c8 ignore next */
6811
+ _InErr: _ => _,
6812
+ /* c8 ignore next */
6813
+ _InElem: _ => _,
6814
+ /* c8 ignore next */
6815
+ _InDone: _ => _,
6816
+ /* c8 ignore next */
6817
+ _OutErr: _ => _,
6818
+ /* c8 ignore next */
6819
+ _OutElem: _ => _,
6820
+ /* c8 ignore next */
6821
+ _OutDone: _ => _
6822
+ };
6823
+ /** @internal */
6824
+ const EffectPrototype$1 = {
6825
+ [EffectTypeId]: effectVariance,
6826
+ [StreamTypeId]: effectVariance,
6827
+ [SinkTypeId]: sinkVariance,
6828
+ [ChannelTypeId]: channelVariance,
6829
+ [symbol](that) {
6830
+ return this === that;
6831
+ },
6832
+ [symbol$1]() {
6833
+ return cached(this, random(this));
6834
+ },
6835
+ [Symbol.iterator]() {
6836
+ return new SingleShotGen(new YieldWrap(this));
6837
+ },
6838
+ pipe() {
6839
+ return pipeArguments(this, arguments);
6840
+ }
6841
+ };
6842
+ /** @internal */
6843
+ const StructuralPrototype = {
6844
+ [symbol$1]() {
6845
+ return cached(this, structure(this));
6846
+ },
6847
+ [symbol](that) {
6848
+ const selfKeys = Object.keys(this);
6849
+ const thatKeys = Object.keys(that);
6850
+ if (selfKeys.length !== thatKeys.length) {
6851
+ return false;
6852
+ }
6853
+ for (const key of selfKeys) {
6854
+ if (!(key in that && equals(this[key], that[key]))) {
6855
+ return false;
6856
+ }
6857
+ }
6858
+ return true;
6859
+ }
6860
+ };
6861
+
6862
+ /**
6863
+ * @since 2.0.0
6864
+ */
6865
+ const TypeId$3 = /*#__PURE__*/Symbol.for("effect/Option");
6866
+ const CommonProto$1 = {
6867
+ ...EffectPrototype$1,
6868
+ [TypeId$3]: {
6869
+ _A: _ => _
6870
+ },
6871
+ [NodeInspectSymbol]() {
6872
+ return this.toJSON();
6873
+ },
6874
+ toString() {
6875
+ return format(this.toJSON());
6876
+ }
6877
+ };
6878
+ const SomeProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(CommonProto$1), {
6879
+ _tag: "Some",
6880
+ _op: "Some",
6881
+ [symbol](that) {
6882
+ return isOption(that) && isSome(that) && equals(this.value, that.value);
6883
+ },
6884
+ [symbol$1]() {
6885
+ return cached(this, combine(hash(this._tag))(hash(this.value)));
6886
+ },
6887
+ toJSON() {
6888
+ return {
6889
+ _id: "Option",
6890
+ _tag: this._tag,
6891
+ value: toJSON(this.value)
6892
+ };
6893
+ }
6894
+ });
6895
+ const NoneHash = /*#__PURE__*/hash("None");
6896
+ const NoneProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(CommonProto$1), {
6897
+ _tag: "None",
6898
+ _op: "None",
6899
+ [symbol](that) {
6900
+ return isOption(that) && isNone$1(that);
6901
+ },
6902
+ [symbol$1]() {
6903
+ return NoneHash;
6904
+ },
6905
+ toJSON() {
6906
+ return {
6907
+ _id: "Option",
6908
+ _tag: this._tag
6909
+ };
6910
+ }
6911
+ });
6912
+ /** @internal */
6913
+ const isOption = input => hasProperty(input, TypeId$3);
6914
+ /** @internal */
6915
+ const isNone$1 = fa => fa._tag === "None";
6916
+ /** @internal */
6917
+ const isSome = fa => fa._tag === "Some";
6918
+ /** @internal */
6919
+ const none = /*#__PURE__*/Object.create(NoneProto);
6920
+ /** @internal */
6921
+ const some = value => {
6922
+ const a = Object.create(SomeProto);
6923
+ a.value = value;
6924
+ return a;
6925
+ };
6926
+
6927
+ /**
6928
+ * @since 2.0.0
6929
+ */
6930
+ /**
6931
+ * @internal
6932
+ */
6933
+ const TypeId$2 = /*#__PURE__*/Symbol.for("effect/Either");
6934
+ const CommonProto = {
6935
+ ...EffectPrototype$1,
6936
+ [TypeId$2]: {
6937
+ _R: _ => _
6938
+ },
6939
+ [NodeInspectSymbol]() {
6940
+ return this.toJSON();
6941
+ },
6942
+ toString() {
6943
+ return format(this.toJSON());
6944
+ }
6945
+ };
6946
+ const RightProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(CommonProto), {
6947
+ _tag: "Right",
6948
+ _op: "Right",
6949
+ [symbol](that) {
6950
+ return isEither(that) && isRight$1(that) && equals(this.right, that.right);
6951
+ },
6952
+ [symbol$1]() {
6953
+ return combine(hash(this._tag))(hash(this.right));
6954
+ },
6955
+ toJSON() {
6956
+ return {
6957
+ _id: "Either",
6958
+ _tag: this._tag,
6959
+ right: toJSON(this.right)
6960
+ };
6961
+ }
6962
+ });
6963
+ const LeftProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(CommonProto), {
6964
+ _tag: "Left",
6965
+ _op: "Left",
6966
+ [symbol](that) {
6967
+ return isEither(that) && isLeft(that) && equals(this.left, that.left);
6968
+ },
6969
+ [symbol$1]() {
6970
+ return combine(hash(this._tag))(hash(this.left));
6971
+ },
6972
+ toJSON() {
6973
+ return {
6974
+ _id: "Either",
6975
+ _tag: this._tag,
6976
+ left: toJSON(this.left)
6977
+ };
6978
+ }
6979
+ });
6980
+ /** @internal */
6981
+ const isEither = input => hasProperty(input, TypeId$2);
6982
+ /** @internal */
6983
+ const isLeft = ma => ma._tag === "Left";
6984
+ /** @internal */
6985
+ const isRight$1 = ma => ma._tag === "Right";
6986
+ /** @internal */
6987
+ const left$1 = left => {
6988
+ const a = Object.create(LeftProto);
6989
+ a.left = left;
6990
+ return a;
6991
+ };
6992
+ /** @internal */
6993
+ const right$1 = right => {
6994
+ const a = Object.create(RightProto);
6995
+ a.right = right;
6996
+ return a;
6997
+ };
6998
+ /** @internal */
6999
+ const getRight$1 = self => isLeft(self) ? none : some(self.right);
7000
+
7001
+ /**
7002
+ * @since 2.0.0
7003
+ */
7004
+ /**
7005
+ * Constructs a new `Either` holding a `Right` value. This usually represents a successful value due to the right bias
7006
+ * of this structure.
7007
+ *
7008
+ * @category constructors
7009
+ * @since 2.0.0
7010
+ */
7011
+ const right = right$1;
7012
+ /**
7013
+ * Constructs a new `Either` holding a `Left` value. This usually represents a failure, due to the right-bias of this
7014
+ * structure.
7015
+ *
7016
+ * @category constructors
7017
+ * @since 2.0.0
7018
+ */
7019
+ const left = left$1;
7020
+ /**
7021
+ * Determine if a `Either` is a `Right`.
7022
+ *
7023
+ * @example
7024
+ * ```ts
7025
+ * import * as assert from "node:assert"
7026
+ * import { Either } from "effect"
7027
+ *
7028
+ * assert.deepStrictEqual(Either.isRight(Either.right(1)), true)
7029
+ * assert.deepStrictEqual(Either.isRight(Either.left("a")), false)
7030
+ * ```
7031
+ *
7032
+ * @category guards
7033
+ * @since 2.0.0
7034
+ */
7035
+ const isRight = isRight$1;
7036
+ /**
7037
+ * Extracts the value of an `Either` or throws if the `Either` is `Left`.
7038
+ *
7039
+ * If a default error is sufficient for your use case and you don't need to configure the thrown error, see {@link getOrThrow}.
7040
+ *
7041
+ * @example
7042
+ * ```ts
7043
+ * import * as assert from "node:assert"
7044
+ * import { Either } from "effect"
7045
+ *
7046
+ * assert.deepStrictEqual(
7047
+ * Either.getOrThrowWith(Either.right(1), () => new Error('Unexpected Left')),
7048
+ * 1
7049
+ * )
7050
+ * assert.throws(() => Either.getOrThrowWith(Either.left("error"), () => new Error('Unexpected Left')))
7051
+ * ```
7052
+ *
7053
+ * @category getters
7054
+ * @since 2.0.0
7055
+ */
7056
+ const getOrThrowWith = /*#__PURE__*/dual(2, (self, onLeft) => {
7057
+ if (isRight(self)) {
7058
+ return self.right;
7059
+ }
7060
+ throw onLeft(self.left);
7061
+ });
7062
+
7063
+ /**
7064
+ * Checks whether an `Option` represents the absence of a value (`None`).
7065
+ *
7066
+ * @example
7067
+ * ```ts
7068
+ * import { Option } from "effect"
7069
+ *
7070
+ * console.log(Option.isNone(Option.some(1)))
7071
+ * // Output: false
7072
+ *
7073
+ * console.log(Option.isNone(Option.none()))
7074
+ * // Output: true
7075
+ * ```
7076
+ *
7077
+ * @see {@link isSome} for the opposite check.
7078
+ *
7079
+ * @category Guards
7080
+ * @since 2.0.0
7081
+ */
7082
+ const isNone = isNone$1;
7083
+ /**
7084
+ * Performs pattern matching on an `Option` to handle both `Some` and `None`
7085
+ * cases.
7086
+ *
7087
+ * **Details**
7088
+ *
7089
+ * This function allows you to match against an `Option` and handle both
7090
+ * scenarios: when the `Option` is `None` (i.e., contains no value), and when
7091
+ * the `Option` is `Some` (i.e., contains a value). It executes one of the
7092
+ * provided functions based on the case:
7093
+ *
7094
+ * - If the `Option` is `None`, the `onNone` function is executed and its result
7095
+ * is returned.
7096
+ * - If the `Option` is `Some`, the `onSome` function is executed with the
7097
+ * contained value, and its result is returned.
7098
+ *
7099
+ * This function provides a concise and functional way to handle optional values
7100
+ * without resorting to `if` or manual checks, making your code more declarative
7101
+ * and readable.
7102
+ *
7103
+ * **Example** (Pattern Matching with Option)
7104
+ *
7105
+ * ```ts
7106
+ * import { Option } from "effect"
7107
+ *
7108
+ * const foo = Option.some(1)
7109
+ *
7110
+ * const message = Option.match(foo, {
7111
+ * onNone: () => "Option is empty",
7112
+ * onSome: (value) => `Option has a value: ${value}`
7113
+ * })
7114
+ *
7115
+ * console.log(message)
7116
+ * // Output: "Option has a value: 1"
7117
+ * ```
7118
+ *
7119
+ * @category Pattern matching
7120
+ * @since 2.0.0
7121
+ */
7122
+ const match = /*#__PURE__*/dual(2, (self, {
7123
+ onNone,
7124
+ onSome
7125
+ }) => isNone(self) ? onNone() : onSome(self.value));
7126
+ /**
7127
+ * Converts an `Either` into an `Option` by discarding the error and extracting
7128
+ * the right value.
7129
+ *
7130
+ * **Details**
7131
+ *
7132
+ * This function takes an `Either` and returns an `Option` based on its value:
7133
+ *
7134
+ * - If the `Either` is a `Right`, its value is wrapped in a `Some` and
7135
+ * returned.
7136
+ * - If the `Either` is a `Left`, the error is discarded, and `None` is
7137
+ * returned.
7138
+ *
7139
+ * This is particularly useful when you only care about the success case
7140
+ * (`Right`) of an `Either` and want to handle the result using `Option`. By
7141
+ * using this function, you can convert `Either` into a simpler structure for
7142
+ * cases where error handling is not required.
7143
+ *
7144
+ * @example
7145
+ * ```ts
7146
+ * import { Either, Option } from "effect"
7147
+ *
7148
+ * console.log(Option.getRight(Either.right("ok")))
7149
+ * // Output: { _id: 'Option', _tag: 'Some', value: 'ok' }
7150
+ *
7151
+ * console.log(Option.getRight(Either.left("err")))
7152
+ * // Output: { _id: 'Option', _tag: 'None' }
7153
+ * ```
7154
+ *
7155
+ * @see {@link getLeft} for the opposite operation.
7156
+ *
7157
+ * @category Conversions
7158
+ * @since 2.0.0
7159
+ */
7160
+ const getRight = getRight$1;
7161
+
7162
+ /**
7163
+ * This module provides types and utility functions to create and work with branded types,
7164
+ * which are TypeScript types with an added type tag to prevent accidental usage of a value in the wrong context.
7165
+ *
7166
+ * The `refined` and `nominal` functions are both used to create branded types in TypeScript.
7167
+ * The main difference between them is that `refined` allows for validation of the data, while `nominal` does not.
7168
+ *
7169
+ * The `nominal` function is used to create a new branded type that has the same underlying type as the input, but with a different name.
7170
+ * This is useful when you want to distinguish between two values of the same type that have different meanings.
7171
+ * The `nominal` function does not perform any validation of the input data.
7172
+ *
7173
+ * On the other hand, the `refined` function is used to create a new branded type that has the same underlying type as the input,
7174
+ * but with a different name, and it also allows for validation of the input data.
7175
+ * The `refined` function takes a predicate that is used to validate the input data.
7176
+ * If the input data fails the validation, a `BrandErrors` is returned, which provides information about the specific validation failure.
7177
+ *
7178
+ * @since 2.0.0
7179
+ */
7180
+ /**
7181
+ * @since 2.0.0
7182
+ * @category symbols
7183
+ */
7184
+ const RefinedConstructorsTypeId = /*#__PURE__*/Symbol.for("effect/Brand/Refined");
7185
+ /**
7186
+ * Returns a `BrandErrors` that contains a single `RefinementError`.
7187
+ *
7188
+ * @since 2.0.0
7189
+ * @category constructors
7190
+ */
7191
+ const error = (message, meta) => [{
7192
+ message,
7193
+ meta
7194
+ }];
7195
+ function refined(...args) {
7196
+ const either = args.length === 2 ? unbranded => args[0](unbranded) ? right(unbranded) : left(args[1](unbranded)) : unbranded => {
7197
+ return match(args[0](unbranded), {
7198
+ onNone: () => right(unbranded),
7199
+ onSome: left
7200
+ });
7201
+ };
7202
+ return Object.assign(unbranded => getOrThrowWith(either(unbranded), identity), {
7203
+ [RefinedConstructorsTypeId]: RefinedConstructorsTypeId,
7204
+ option: args => getRight(either(args)),
7205
+ either,
7206
+ is: args => isRight(either(args))
7207
+ });
7208
+ }
7209
+
7210
+ /** @internal */
7211
+ const TagTypeId = /*#__PURE__*/Symbol.for("effect/Context/Tag");
7212
+ /** @internal */
7213
+ const ReferenceTypeId = /*#__PURE__*/Symbol.for("effect/Context/Reference");
7214
+ /** @internal */
7215
+ const STMSymbolKey = "effect/STM";
7216
+ /** @internal */
7217
+ const STMTypeId = /*#__PURE__*/Symbol.for(STMSymbolKey);
7218
+ /** @internal */
7219
+ const TagProto = {
7220
+ ...EffectPrototype$1,
7221
+ _op: "Tag",
7222
+ [STMTypeId]: effectVariance,
7223
+ [TagTypeId]: {
7224
+ _Service: _ => _,
7225
+ _Identifier: _ => _
7226
+ },
7227
+ toString() {
7228
+ return format(this.toJSON());
7229
+ },
7230
+ toJSON() {
7231
+ return {
7232
+ _id: "Tag",
7233
+ key: this.key,
7234
+ stack: this.stack
7235
+ };
7236
+ },
7237
+ [NodeInspectSymbol]() {
7238
+ return this.toJSON();
7239
+ },
7240
+ of(self) {
7241
+ return self;
7242
+ },
7243
+ context(self) {
7244
+ return make(this, self);
7245
+ }
7246
+ };
7247
+ const ReferenceProto = {
7248
+ ...TagProto,
7249
+ [ReferenceTypeId]: ReferenceTypeId
7250
+ };
7251
+ /** @internal */
7252
+ const Reference$1 = () => (id, options) => {
7253
+ const limit = Error.stackTraceLimit;
7254
+ Error.stackTraceLimit = 2;
7255
+ const creationError = new Error();
7256
+ Error.stackTraceLimit = limit;
7257
+ function ReferenceClass() {}
7258
+ Object.setPrototypeOf(ReferenceClass, ReferenceProto);
7259
+ ReferenceClass.key = id;
7260
+ ReferenceClass.defaultValue = options.defaultValue;
7261
+ Object.defineProperty(ReferenceClass, "stack", {
7262
+ get() {
7263
+ return creationError.stack;
7264
+ }
7265
+ });
7266
+ return ReferenceClass;
7267
+ };
7268
+ /** @internal */
7269
+ const TypeId$1 = /*#__PURE__*/Symbol.for("effect/Context");
7270
+ /** @internal */
7271
+ const ContextProto = {
7272
+ [TypeId$1]: {
7273
+ _Services: _ => _
7274
+ },
7275
+ [symbol](that) {
7276
+ if (isContext(that)) {
7277
+ if (this.unsafeMap.size === that.unsafeMap.size) {
7278
+ for (const k of this.unsafeMap.keys()) {
7279
+ if (!that.unsafeMap.has(k) || !equals(this.unsafeMap.get(k), that.unsafeMap.get(k))) {
7280
+ return false;
7281
+ }
7282
+ }
7283
+ return true;
7284
+ }
7285
+ }
7286
+ return false;
7287
+ },
7288
+ [symbol$1]() {
7289
+ return cached(this, number(this.unsafeMap.size));
7290
+ },
7291
+ pipe() {
7292
+ return pipeArguments(this, arguments);
7293
+ },
7294
+ toString() {
7295
+ return format(this.toJSON());
7296
+ },
7297
+ toJSON() {
7298
+ return {
7299
+ _id: "Context",
7300
+ services: Array.from(this.unsafeMap).map(toJSON)
7301
+ };
7302
+ },
7303
+ [NodeInspectSymbol]() {
7304
+ return this.toJSON();
7305
+ }
7306
+ };
7307
+ /** @internal */
7308
+ const makeContext = unsafeMap => {
7309
+ const context = Object.create(ContextProto);
7310
+ context.unsafeMap = unsafeMap;
7311
+ return context;
7312
+ };
7313
+ /** @internal */
7314
+ const isContext = u => hasProperty(u, TypeId$1);
7315
+ /** @internal */
7316
+ const make = (tag, service) => makeContext(new Map([[tag.key, service]]));
7317
+ const defaultValueCache = /*#__PURE__*/globalValue("effect/Context/defaultValueCache", () => new Map());
7318
+ const getDefaultValue = tag => {
7319
+ if (defaultValueCache.has(tag.key)) {
7320
+ return defaultValueCache.get(tag.key);
7321
+ }
7322
+ const value = tag.defaultValue();
7323
+ defaultValueCache.set(tag.key, value);
7324
+ return value;
7325
+ };
7326
+ /** @internal */
7327
+ const unsafeGetReference = (self, tag) => {
7328
+ return self.unsafeMap.has(tag.key) ? self.unsafeMap.get(tag.key) : getDefaultValue(tag);
7329
+ };
7330
+
7331
+ /**
7332
+ * Creates a context tag with a default value.
7333
+ *
7334
+ * **Details**
7335
+ *
7336
+ * `Context.Reference` allows you to create a tag that can hold a value. You can
7337
+ * provide a default value for the service, which will automatically be used
7338
+ * when the context is accessed, or override it with a custom implementation
7339
+ * when needed.
7340
+ *
7341
+ * **Example** (Declaring a Tag with a default value)
7342
+ *
7343
+ * ```ts
7344
+ * import * as assert from "node:assert"
7345
+ * import { Context, Effect } from "effect"
7346
+ *
7347
+ * class SpecialNumber extends Context.Reference<SpecialNumber>()(
7348
+ * "SpecialNumber",
7349
+ * { defaultValue: () => 2048 }
7350
+ * ) {}
7351
+ *
7352
+ * // ┌─── Effect<void, never, never>
7353
+ * // ▼
7354
+ * const program = Effect.gen(function* () {
7355
+ * const specialNumber = yield* SpecialNumber
7356
+ * console.log(`The special number is ${specialNumber}`)
7357
+ * })
7358
+ *
7359
+ * // No need to provide the SpecialNumber implementation
7360
+ * Effect.runPromise(program)
7361
+ * // Output: The special number is 2048
7362
+ * ```
7363
+ *
7364
+ * **Example** (Overriding the default value)
7365
+ *
7366
+ * ```ts
7367
+ * import { Context, Effect } from "effect"
7368
+ *
7369
+ * class SpecialNumber extends Context.Reference<SpecialNumber>()(
7370
+ * "SpecialNumber",
7371
+ * { defaultValue: () => 2048 }
7372
+ * ) {}
7373
+ *
7374
+ * const program = Effect.gen(function* () {
7375
+ * const specialNumber = yield* SpecialNumber
7376
+ * console.log(`The special number is ${specialNumber}`)
7377
+ * })
7378
+ *
7379
+ * Effect.runPromise(program.pipe(Effect.provideService(SpecialNumber, -1)))
7380
+ * // Output: The special number is -1
7381
+ * ```
7382
+ *
7383
+ * @since 3.11.0
7384
+ * @category constructors
7385
+ * @experimental
7386
+ */
7387
+ const Reference = Reference$1;
7388
+
7389
+ /**
7390
+ * @since 2.0.0
7391
+ * @category prototypes
7392
+ */
7393
+ const EffectPrototype = EffectPrototype$1;
7394
+
7395
+ /**
7396
+ * A lightweight alternative to the `Effect` data type, with a subset of the functionality.
7397
+ *
7398
+ * @since 3.4.0
7399
+ * @experimental
7400
+ */
7401
+ /**
7402
+ * @since 3.4.0
7403
+ * @experimental
7404
+ * @category type ids
7405
+ */
7406
+ const TypeId = /*#__PURE__*/Symbol.for("effect/Micro");
7407
+ /**
7408
+ * @since 3.4.0
7409
+ * @experimental
7410
+ * @category MicroExit
7411
+ */
7412
+ const MicroExitTypeId = /*#__PURE__*/Symbol.for("effect/Micro/MicroExit");
7413
+ // ----------------------------------------------------------------------------
7414
+ // MicroCause
7415
+ // ----------------------------------------------------------------------------
7416
+ /**
7417
+ * @since 3.4.6
7418
+ * @experimental
7419
+ * @category MicroCause
7420
+ */
7421
+ const MicroCauseTypeId = /*#__PURE__*/Symbol.for("effect/Micro/MicroCause");
7422
+ const microCauseVariance = {
7423
+ _E: identity
7424
+ };
7425
+ class MicroCauseImpl extends globalThis.Error {
7426
+ _tag;
7427
+ traces;
7428
+ [MicroCauseTypeId];
7429
+ constructor(_tag, originalError, traces) {
7430
+ const causeName = `MicroCause.${_tag}`;
7431
+ let name;
7432
+ let message;
7433
+ let stack;
7434
+ if (originalError instanceof globalThis.Error) {
7435
+ name = `(${causeName}) ${originalError.name}`;
7436
+ message = originalError.message;
7437
+ const messageLines = message.split("\n").length;
7438
+ stack = originalError.stack ? `(${causeName}) ${originalError.stack.split("\n").slice(0, messageLines + 3).join("\n")}` : `${name}: ${message}`;
7439
+ } else {
7440
+ name = causeName;
7441
+ message = toStringUnknown(originalError, 0);
7442
+ stack = `${name}: ${message}`;
7443
+ }
7444
+ if (traces.length > 0) {
7445
+ stack += `\n ${traces.join("\n ")}`;
7446
+ }
7447
+ super(message);
7448
+ this._tag = _tag;
7449
+ this.traces = traces;
7450
+ this[MicroCauseTypeId] = microCauseVariance;
7451
+ this.name = name;
7452
+ this.stack = stack;
7453
+ }
7454
+ pipe() {
7455
+ return pipeArguments(this, arguments);
7456
+ }
7457
+ toString() {
7458
+ return this.stack;
7459
+ }
7460
+ [NodeInspectSymbol]() {
7461
+ return this.stack;
7462
+ }
7463
+ }
7464
+ class Fail extends MicroCauseImpl {
7465
+ error;
7466
+ constructor(error, traces = []) {
7467
+ super("Fail", error, traces);
7468
+ this.error = error;
7469
+ }
7470
+ }
7471
+ /**
7472
+ * @since 3.4.6
7473
+ * @experimental
7474
+ * @category MicroCause
7475
+ */
7476
+ const causeFail = (error, traces = []) => new Fail(error, traces);
7477
+ class Die extends MicroCauseImpl {
7478
+ defect;
7479
+ constructor(defect, traces = []) {
7480
+ super("Die", defect, traces);
7481
+ this.defect = defect;
7482
+ }
7483
+ }
7484
+ /**
7485
+ * @since 3.4.6
7486
+ * @experimental
7487
+ * @category MicroCause
7488
+ */
7489
+ const causeDie = (defect, traces = []) => new Die(defect, traces);
7490
+ class Interrupt extends MicroCauseImpl {
7491
+ constructor(traces = []) {
7492
+ super("Interrupt", "interrupted", traces);
7493
+ }
7494
+ }
7495
+ /**
7496
+ * @since 3.4.6
7497
+ * @experimental
7498
+ * @category MicroCause
7499
+ */
7500
+ const causeInterrupt = (traces = []) => new Interrupt(traces);
7501
+ /**
7502
+ * @since 3.4.6
7503
+ * @experimental
7504
+ * @category MicroCause
7505
+ */
7506
+ const causeIsInterrupt = self => self._tag === "Interrupt";
7507
+ // ----------------------------------------------------------------------------
7508
+ // MicroFiber
7509
+ // ----------------------------------------------------------------------------
7510
+ /**
7511
+ * @since 3.11.0
7512
+ * @experimental
7513
+ * @category MicroFiber
7514
+ */
7515
+ const MicroFiberTypeId = /*#__PURE__*/Symbol.for("effect/Micro/MicroFiber");
7516
+ const fiberVariance = {
7517
+ _A: identity,
7518
+ _E: identity
7519
+ };
7520
+ class MicroFiberImpl {
7521
+ context;
7522
+ interruptible;
7523
+ [MicroFiberTypeId];
7524
+ _stack = [];
7525
+ _observers = [];
7526
+ _exit;
7527
+ _children;
7528
+ currentOpCount = 0;
7529
+ constructor(context, interruptible = true) {
7530
+ this.context = context;
7531
+ this.interruptible = interruptible;
7532
+ this[MicroFiberTypeId] = fiberVariance;
7533
+ }
7534
+ getRef(ref) {
7535
+ return unsafeGetReference(this.context, ref);
7536
+ }
7537
+ addObserver(cb) {
7538
+ if (this._exit) {
7539
+ cb(this._exit);
7540
+ return constVoid;
7541
+ }
7542
+ this._observers.push(cb);
7543
+ return () => {
7544
+ const index = this._observers.indexOf(cb);
7545
+ if (index >= 0) {
7546
+ this._observers.splice(index, 1);
7547
+ }
7548
+ };
7549
+ }
7550
+ _interrupted = false;
7551
+ unsafeInterrupt() {
7552
+ if (this._exit) {
7553
+ return;
7554
+ }
7555
+ this._interrupted = true;
7556
+ if (this.interruptible) {
7557
+ this.evaluate(exitInterrupt);
7558
+ }
7559
+ }
7560
+ unsafePoll() {
7561
+ return this._exit;
7562
+ }
7563
+ evaluate(effect) {
7564
+ if (this._exit) {
7565
+ return;
7566
+ } else if (this._yielded !== undefined) {
7567
+ const yielded = this._yielded;
7568
+ this._yielded = undefined;
7569
+ yielded();
7570
+ }
7571
+ const exit = this.runLoop(effect);
7572
+ if (exit === Yield) {
7573
+ return;
7574
+ }
7575
+ // the interruptChildren middlware is added in Micro.fork, so it can be
7576
+ // tree-shaken if not used
7577
+ const interruptChildren = fiberMiddleware.interruptChildren && fiberMiddleware.interruptChildren(this);
7578
+ if (interruptChildren !== undefined) {
7579
+ return this.evaluate(flatMap(interruptChildren, () => exit));
7580
+ }
7581
+ this._exit = exit;
7582
+ for (let i = 0; i < this._observers.length; i++) {
7583
+ this._observers[i](exit);
7584
+ }
7585
+ this._observers.length = 0;
7586
+ }
7587
+ runLoop(effect) {
7588
+ let yielding = false;
7589
+ let current = effect;
7590
+ this.currentOpCount = 0;
7591
+ try {
7592
+ while (true) {
7593
+ this.currentOpCount++;
7594
+ if (!yielding && this.getRef(CurrentScheduler).shouldYield(this)) {
7595
+ yielding = true;
7596
+ const prev = current;
7597
+ current = flatMap(yieldNow, () => prev);
7598
+ }
7599
+ current = current[evaluate](this);
7600
+ if (current === Yield) {
7601
+ const yielded = this._yielded;
7602
+ if (MicroExitTypeId in yielded) {
7603
+ this._yielded = undefined;
7604
+ return yielded;
7605
+ }
7606
+ return Yield;
7607
+ }
7608
+ }
7609
+ } catch (error) {
7610
+ if (!hasProperty(current, evaluate)) {
7611
+ return exitDie(`MicroFiber.runLoop: Not a valid effect: ${String(current)}`);
7612
+ }
7613
+ return exitDie(error);
7614
+ }
7615
+ }
7616
+ getCont(symbol) {
7617
+ while (true) {
7618
+ const op = this._stack.pop();
7619
+ if (!op) return undefined;
7620
+ const cont = op[ensureCont] && op[ensureCont](this);
7621
+ if (cont) return {
7622
+ [symbol]: cont
7623
+ };
7624
+ if (op[symbol]) return op;
7625
+ }
7626
+ }
7627
+ // cancel the yielded operation, or for the yielded exit value
7628
+ _yielded = undefined;
7629
+ yieldWith(value) {
7630
+ this._yielded = value;
7631
+ return Yield;
7632
+ }
7633
+ children() {
7634
+ return this._children ??= new Set();
7635
+ }
7636
+ }
7637
+ const fiberMiddleware = /*#__PURE__*/globalValue("effect/Micro/fiberMiddleware", () => ({
7638
+ interruptChildren: undefined
7639
+ }));
7640
+ const identifier = /*#__PURE__*/Symbol.for("effect/Micro/identifier");
7641
+ const args = /*#__PURE__*/Symbol.for("effect/Micro/args");
7642
+ const evaluate = /*#__PURE__*/Symbol.for("effect/Micro/evaluate");
7643
+ const successCont = /*#__PURE__*/Symbol.for("effect/Micro/successCont");
7644
+ const failureCont = /*#__PURE__*/Symbol.for("effect/Micro/failureCont");
7645
+ const ensureCont = /*#__PURE__*/Symbol.for("effect/Micro/ensureCont");
7646
+ const Yield = /*#__PURE__*/Symbol.for("effect/Micro/Yield");
7647
+ const microVariance = {
7648
+ _A: identity,
7649
+ _E: identity,
7650
+ _R: identity
7651
+ };
7652
+ const MicroProto = {
7653
+ ...EffectPrototype,
7654
+ _op: "Micro",
7655
+ [TypeId]: microVariance,
7656
+ pipe() {
7657
+ return pipeArguments(this, arguments);
7658
+ },
7659
+ [Symbol.iterator]() {
7660
+ return new SingleShotGen(new YieldWrap(this));
7661
+ },
7662
+ toJSON() {
7663
+ return {
7664
+ _id: "Micro",
7665
+ op: this[identifier],
7666
+ ...(args in this ? {
7667
+ args: this[args]
7668
+ } : undefined)
7669
+ };
7670
+ },
7671
+ toString() {
7672
+ return format(this);
7673
+ },
7674
+ [NodeInspectSymbol]() {
7675
+ return format(this);
7676
+ }
7677
+ };
7678
+ function defaultEvaluate(_fiber) {
7679
+ return exitDie(`Micro.evaluate: Not implemented`);
7680
+ }
7681
+ const makePrimitiveProto = options => ({
7682
+ ...MicroProto,
7683
+ [identifier]: options.op,
7684
+ [evaluate]: options.eval ?? defaultEvaluate,
7685
+ [successCont]: options.contA,
7686
+ [failureCont]: options.contE,
7687
+ [ensureCont]: options.ensure
7688
+ });
7689
+ const makePrimitive = options => {
7690
+ const Proto = makePrimitiveProto(options);
7691
+ return function () {
7692
+ const self = Object.create(Proto);
7693
+ self[args] = options.single === false ? arguments : arguments[0];
7694
+ return self;
7695
+ };
7696
+ };
7697
+ const makeExit = options => {
7698
+ const Proto = {
7699
+ ...makePrimitiveProto(options),
7700
+ [MicroExitTypeId]: MicroExitTypeId,
7701
+ _tag: options.op,
7702
+ get [options.prop]() {
7703
+ return this[args];
7704
+ },
7705
+ toJSON() {
7706
+ return {
7707
+ _id: "MicroExit",
7708
+ _tag: options.op,
7709
+ [options.prop]: this[args]
7710
+ };
7711
+ },
7712
+ [symbol](that) {
7713
+ return isMicroExit(that) && that._tag === options.op && equals(this[args], that[args]);
7714
+ },
7715
+ [symbol$1]() {
7716
+ return cached(this, combine(string(options.op))(hash(this[args])));
7717
+ }
7718
+ };
7719
+ return function (value) {
7720
+ const self = Object.create(Proto);
7721
+ self[args] = value;
7722
+ self[successCont] = undefined;
7723
+ self[failureCont] = undefined;
7724
+ self[ensureCont] = undefined;
7725
+ return self;
7726
+ };
7727
+ };
7728
+ /**
7729
+ * Creates a `Micro` effect that will succeed with the specified constant value.
7730
+ *
7731
+ * @since 3.4.0
7732
+ * @experimental
7733
+ * @category constructors
7734
+ */
7735
+ const succeed = /*#__PURE__*/makeExit({
7736
+ op: "Success",
7737
+ prop: "value",
7738
+ eval(fiber) {
7739
+ const cont = fiber.getCont(successCont);
7740
+ return cont ? cont[successCont](this[args], fiber) : fiber.yieldWith(this);
7741
+ }
7742
+ });
7743
+ /**
7744
+ * Creates a `Micro` effect that will fail with the specified `MicroCause`.
7745
+ *
7746
+ * @since 3.4.6
7747
+ * @experimental
7748
+ * @category constructors
7749
+ */
7750
+ const failCause = /*#__PURE__*/makeExit({
7751
+ op: "Failure",
7752
+ prop: "cause",
7753
+ eval(fiber) {
7754
+ let cont = fiber.getCont(failureCont);
7755
+ while (causeIsInterrupt(this[args]) && cont && fiber.interruptible) {
7756
+ cont = fiber.getCont(failureCont);
7757
+ }
7758
+ return cont ? cont[failureCont](this[args], fiber) : fiber.yieldWith(this);
7759
+ }
7760
+ });
7761
+ /**
7762
+ * Creates a `Micro` effect that fails with the given error.
7763
+ *
7764
+ * This results in a `Fail` variant of the `MicroCause` type, where the error is
7765
+ * tracked at the type level.
7766
+ *
7767
+ * @since 3.4.0
7768
+ * @experimental
7769
+ * @category constructors
7770
+ */
7771
+ const fail = error => failCause(causeFail(error));
7772
+ /**
7773
+ * Lazily creates a `Micro` effect from the given side-effect.
7774
+ *
7775
+ * @since 3.4.0
7776
+ * @experimental
7777
+ * @category constructors
7778
+ */
7779
+ const suspend = /*#__PURE__*/makePrimitive({
7780
+ op: "Suspend",
7781
+ eval(_fiber) {
7782
+ return this[args]();
7783
+ }
7784
+ });
7785
+ /**
7786
+ * Pause the execution of the current `Micro` effect, and resume it on the next
7787
+ * scheduler tick.
7788
+ *
7789
+ * @since 3.4.0
7790
+ * @experimental
7791
+ * @category constructors
7792
+ */
7793
+ const yieldNowWith = /*#__PURE__*/makePrimitive({
7794
+ op: "Yield",
7795
+ eval(fiber) {
7796
+ let resumed = false;
7797
+ fiber.getRef(CurrentScheduler).scheduleTask(() => {
7798
+ if (resumed) return;
7799
+ fiber.evaluate(exitVoid);
7800
+ }, this[args] ?? 0);
7801
+ return fiber.yieldWith(() => {
7802
+ resumed = true;
7803
+ });
7804
+ }
7805
+ });
7806
+ /**
7807
+ * Pause the execution of the current `Micro` effect, and resume it on the next
7808
+ * scheduler tick.
7809
+ *
7810
+ * @since 3.4.0
7811
+ * @experimental
7812
+ * @category constructors
7813
+ */
7814
+ const yieldNow = /*#__PURE__*/yieldNowWith(0);
7815
+ const try_ = options => suspend(() => {
7816
+ try {
7817
+ return succeed(options.try());
7818
+ } catch (err) {
7819
+ return fail(options.catch(err));
7820
+ }
7821
+ });
7822
+ /**
7823
+ * Map the success value of this `Micro` effect to another `Micro` effect, then
7824
+ * flatten the result.
7825
+ *
7826
+ * @since 3.4.0
7827
+ * @experimental
7828
+ * @category mapping & sequencing
7829
+ */
7830
+ const flatMap = /*#__PURE__*/dual(2, (self, f) => {
7831
+ const onSuccess = Object.create(OnSuccessProto);
7832
+ onSuccess[args] = self;
7833
+ onSuccess[successCont] = f;
7834
+ return onSuccess;
7835
+ });
7836
+ const OnSuccessProto = /*#__PURE__*/makePrimitiveProto({
7837
+ op: "OnSuccess",
7838
+ eval(fiber) {
7839
+ fiber._stack.push(this);
7840
+ return this[args];
7841
+ }
7842
+ });
7843
+ /**
7844
+ * @since 3.4.6
7845
+ * @experimental
7846
+ * @category MicroExit
7847
+ */
7848
+ const isMicroExit = u => hasProperty(u, MicroExitTypeId);
7849
+ /**
7850
+ * @since 3.4.6
7851
+ * @experimental
7852
+ * @category MicroExit
7853
+ */
7854
+ const exitSucceed = succeed;
7855
+ /**
7856
+ * @since 3.4.6
7857
+ * @experimental
7858
+ * @category MicroExit
7859
+ */
7860
+ const exitFailCause = failCause;
7861
+ /**
7862
+ * @since 3.4.6
7863
+ * @experimental
7864
+ * @category MicroExit
7865
+ */
7866
+ const exitInterrupt = /*#__PURE__*/exitFailCause(/*#__PURE__*/causeInterrupt());
7867
+ /**
7868
+ * @since 3.4.6
7869
+ * @experimental
7870
+ * @category MicroExit
7871
+ */
7872
+ const exitDie = defect => exitFailCause(causeDie(defect));
7873
+ /**
7874
+ * @since 3.4.6
7875
+ * @experimental
7876
+ * @category MicroExit
7877
+ */
7878
+ const exitVoid = /*#__PURE__*/exitSucceed(void 0);
7879
+ const setImmediate = "setImmediate" in globalThis ? globalThis.setImmediate : f => setTimeout(f, 0);
7880
+ /**
7881
+ * @since 3.5.9
7882
+ * @experimental
7883
+ * @category scheduler
7884
+ */
7885
+ class MicroSchedulerDefault {
7886
+ tasks = [];
7887
+ running = false;
7888
+ /**
7889
+ * @since 3.5.9
7890
+ */
7891
+ scheduleTask(task, _priority) {
7892
+ this.tasks.push(task);
7893
+ if (!this.running) {
7894
+ this.running = true;
7895
+ setImmediate(this.afterScheduled);
7896
+ }
7897
+ }
7898
+ /**
7899
+ * @since 3.5.9
7900
+ */
7901
+ afterScheduled = () => {
7902
+ this.running = false;
7903
+ this.runTasks();
7904
+ };
7905
+ /**
7906
+ * @since 3.5.9
7907
+ */
7908
+ runTasks() {
7909
+ const tasks = this.tasks;
7910
+ this.tasks = [];
7911
+ for (let i = 0, len = tasks.length; i < len; i++) {
7912
+ tasks[i]();
7913
+ }
7914
+ }
7915
+ /**
7916
+ * @since 3.5.9
7917
+ */
7918
+ shouldYield(fiber) {
7919
+ return fiber.currentOpCount >= fiber.getRef(MaxOpsBeforeYield);
7920
+ }
7921
+ /**
7922
+ * @since 3.5.9
7923
+ */
7924
+ flush() {
7925
+ while (this.tasks.length > 0) {
7926
+ this.runTasks();
7927
+ }
7928
+ }
7929
+ }
7930
+ // ========================================================================
7931
+ // References
7932
+ // ========================================================================
7933
+ /**
7934
+ * @since 3.11.0
7935
+ * @experimental
7936
+ * @category references
7937
+ */
7938
+ class MaxOpsBeforeYield extends /*#__PURE__*/Reference()("effect/Micro/currentMaxOpsBeforeYield", {
7939
+ defaultValue: () => 2048
7940
+ }) {}
7941
+ /**
7942
+ * @since 3.11.0
7943
+ * @experimental
7944
+ * @category environment refs
7945
+ */
7946
+ class CurrentScheduler extends /*#__PURE__*/Reference()("effect/Micro/currentScheduler", {
7947
+ defaultValue: () => new MicroSchedulerDefault()
7948
+ }) {}
7949
+ // ----------------------------------------------------------------------------
7950
+ // execution
7951
+ // ----------------------------------------------------------------------------
7952
+ /**
7953
+ * Execute the `Micro` effect and return a `MicroFiber` that can be awaited, joined,
7954
+ * or aborted.
7955
+ *
7956
+ * You can listen for the result by adding an observer using the handle's
7957
+ * `addObserver` method.
7958
+ *
7959
+ * @example
7960
+ * ```ts
7961
+ * import * as Micro from "effect/Micro"
7962
+ *
7963
+ * const handle = Micro.succeed(42).pipe(
7964
+ * Micro.delay(1000),
7965
+ * Micro.runFork
7966
+ * )
7967
+ *
7968
+ * handle.addObserver((exit) => {
7969
+ * console.log(exit)
7970
+ * })
7971
+ * ```
7972
+ *
7973
+ * @since 3.4.0
7974
+ * @experimental
7975
+ * @category execution
7976
+ */
7977
+ const runFork = (effect, options) => {
7978
+ const fiber = new MicroFiberImpl(CurrentScheduler.context(options?.scheduler ?? new MicroSchedulerDefault()));
7979
+ fiber.evaluate(effect);
7980
+ if (options?.signal) {
7981
+ if (options.signal.aborted) {
7982
+ fiber.unsafeInterrupt();
7983
+ } else {
7984
+ const abort = () => fiber.unsafeInterrupt();
7985
+ options.signal.addEventListener("abort", abort, {
7986
+ once: true
7987
+ });
7988
+ fiber.addObserver(() => options.signal.removeEventListener("abort", abort));
7989
+ }
7990
+ }
7991
+ return fiber;
7992
+ };
7993
+ /**
7994
+ * Attempt to execute the `Micro` effect synchronously and return the `MicroExit`.
7995
+ *
7996
+ * If any asynchronous effects are encountered, the function will return a
7997
+ * `CauseDie` containing the `MicroFiber`.
7998
+ *
7999
+ * @since 3.4.6
8000
+ * @experimental
8001
+ * @category execution
8002
+ */
8003
+ const runSyncExit = effect => {
8004
+ const scheduler = new MicroSchedulerDefault();
8005
+ const fiber = runFork(effect, {
8006
+ scheduler
8007
+ });
8008
+ scheduler.flush();
8009
+ return fiber._exit ?? exitDie(fiber);
8010
+ };
8011
+ /**
8012
+ * Attempt to execute the `Micro` effect synchronously and return the success
8013
+ * value.
8014
+ *
8015
+ * @since 3.4.0
8016
+ * @experimental
8017
+ * @category execution
8018
+ */
8019
+ const runSync = effect => {
8020
+ const exit = runSyncExit(effect);
8021
+ if (exit._tag === "Failure") throw exit.cause;
8022
+ return exit.value;
8023
+ };
8024
+ const YieldableError = /*#__PURE__*/function () {
8025
+ class YieldableError extends globalThis.Error {}
8026
+ // @effect-diagnostics-next-line floatingEffect:off
8027
+ Object.assign(YieldableError.prototype, MicroProto, StructuralPrototype, {
8028
+ [identifier]: "Failure",
8029
+ [evaluate]() {
8030
+ return fail(this);
8031
+ },
8032
+ toString() {
8033
+ return this.message ? `${this.name}: ${this.message}` : this.name;
8034
+ },
8035
+ toJSON() {
8036
+ return {
8037
+ ...this
8038
+ };
8039
+ },
8040
+ [NodeInspectSymbol]() {
8041
+ const stack = this.stack;
8042
+ if (stack) {
8043
+ return `${this.toString()}\n${stack.split("\n").slice(1).join("\n")}`;
8044
+ }
8045
+ return this.toString();
8046
+ }
8047
+ });
8048
+ return YieldableError;
8049
+ }();
8050
+ /**
8051
+ * @since 3.4.0
8052
+ * @experimental
8053
+ * @category errors
8054
+ */
8055
+ const Error$1 = /*#__PURE__*/function () {
8056
+ return class extends YieldableError {
8057
+ constructor(args) {
8058
+ super();
8059
+ if (args) {
8060
+ Object.assign(this, args);
8061
+ }
8062
+ }
8063
+ };
8064
+ }();
8065
+ /**
8066
+ * @since 3.4.0
8067
+ * @experimental
8068
+ * @category errors
8069
+ */
8070
+ const TaggedError = tag => {
8071
+ class Base extends Error$1 {
8072
+ _tag = tag;
8073
+ }
8074
+ Base.prototype.name = tag;
8075
+ return Base;
8076
+ };
8077
+
8078
+ const hasProcessStdout = typeof process === "object" && process !== null && typeof process.stdout === "object" && process.stdout !== null;
8079
+ hasProcessStdout && process.stdout.isTTY === true;
8080
+
8081
+ const SVGString = refined(isValidSVG, () => error('SVG data is malformed'));
8082
+ class BrandValidationError extends TaggedError('BrandValidationError') {
8083
+ constructor(error, type) {
8084
+ super(new Error(`Brand validation failed for type ${type}.`, { cause: error }));
8085
+ }
8086
+ }
8087
+ /**
8088
+ * Creates a synchronous Micro effect that validates a string against the branded `SVGString` type.
8089
+ *
8090
+ * @param svg Raw SVG markup to validate.
8091
+ */
8092
+ const validateSvg = (svg) => try_({
8093
+ try: () => SVGString(sanitizeSvg(svg)),
8094
+ catch: (error) => new BrandValidationError(error, 'SVGString'),
8095
+ });
8096
+ /**
8097
+ * Checks whether a string can be parsed into an SVG document.
8098
+ *
8099
+ * @param svg Raw SVG markup to validate.
8100
+ */
8101
+ function isValidSVG(svg) {
8102
+ if (typeof svg !== 'string')
8103
+ return false;
8104
+ try {
8105
+ const parser = new DOMParser();
8106
+ const doc = parser.parseFromString(svg, 'image/svg+xml');
8107
+ return doc.documentElement.nodeName === 'svg';
8108
+ }
8109
+ catch {
8110
+ return false;
8111
+ }
8112
+ }
8113
+ function sanitizeSvg(svg) {
8114
+ const dataUriPrefix = 'data:image/svg+xml,';
8115
+ const dataUriPrefixWithEncoding = 'data:image/svg+xml;base64,';
8116
+ const base = svg.trim();
8117
+ if (base.startsWith(dataUriPrefixWithEncoding)) {
8118
+ return atob(base.slice(dataUriPrefixWithEncoding.length));
8119
+ }
8120
+ return !base.startsWith(dataUriPrefix) ? base : decodeURIComponent(base.slice(dataUriPrefix.length));
8121
+ }
8122
+ /**
8123
+ * Returns a valid, empty SVG.
8124
+ */
8125
+ const emptyDefaultSvg = () => SVGString(`<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"></svg>`);
8126
+ /**
8127
+ * Returns a valid SVG string, or a fallback empty SVG if the input is invalid.
8128
+ *
8129
+ * @param value The SVG string to validate.
8130
+ */
8131
+ function toValidSvgStringWithFallback(value) {
8132
+ try {
8133
+ return runSync(validateSvg(value));
8134
+ }
8135
+ catch {
8136
+ console.warn('Invalid SVG string:', value);
8137
+ return emptyDefaultSvg();
8138
+ }
8139
+ }
8140
+
8141
+ const checkmarkSvg = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIKICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgYXJpYS1oaWRkZW49InRydWUiIGZvY3VzYWJsZT0iZmFsc2UiPgogICAgPHBhdGggZD0iTTMuNzUgMTIuNTYyNUw4LjgzMDc5IDE3LjYyNUwyMC40Mzc1IDYuMzc1IiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+';
8142
+
8143
+ const lmvzCheckboxCss = () => `@layer lmvz-ds.reset, lmvz-ds.theme, lmvz-ds.components, lmvz-ds.overrides; @layer lmvz-ds.theme { @font-face { font-family: Router; src: local('Router-Book'), url('/assets/fonts/Router-Book.woff') format('woff'), local('Router'); font-weight: 400 normal; } @font-face { font-family: Router; src: local('Router-Medium'), url('/assets/fonts/Router-Medium.woff') format('woff'), local('Router'); font-weight: 500; } @font-face { font-family: Router; src: local('Router-Bold'), url('/assets/fonts/Router-Bold.woff') format('woff'), local('Router'); font-weight: 700 bold; } } .sc-lmvz-checkbox-h { display: inline-block; --checkbox-box-size: var(--lmvz-global-s18, 18px); --checkbox-border-radius: var(--lmvz-global-s4, 4px); --checkbox-bg: var(--lmvz-semantic-color-surface-input-primary, #ffffff); --checkbox-border-color: var(--lmvz-semantic-color-border-default, #e0e0e0); --checkbox-border-color-hover: var(--lmvz-semantic-color-border-hover, #c7c7c7); --checkbox-border-color-checked: var(--lmvz-semantic-color-border-active, #0f8acc); --checkbox-border-color-error: var(--lmvz-semantic-color-status-on-danger, #e52a31); --checkbox-wrapper-bg-hover: var(--lmvz-semantic-color-int-tertiary-hover, #f0f0f0); --checkbox-wrapper-bg-checked: var(--lmvz-semantic-color-status-active, #f1f9fe); --checkbox-ripple-bg: var(--lmvz-semantic-color-int-secondary-hover, #e0e0e0); --checkbox-checkmark-color: var(--lmvz-semantic-color-border-active, #0f8acc); --checkbox-label-color: var(--lmvz-semantic-color-on-surface-primary, #000000); --checkbox-label-color-checked: var(--lmvz-semantic-color-status-on-active, #0e7ab4); --checkbox-helper-color: var(--lmvz-semantic-color-on-surface-secondary, #7a7a7a); --checkbox-error-color: var(--lmvz-semantic-color-status-on-danger, #e52a31); --checkbox-focus-color: var(--lmvz-semantic-color-status-on-active, #0e7ab4); --checkbox-easing: var(--lmvz-global-easing-default, ease); --checkbox-duration: 0.2s; } .pill.sc-lmvz-checkbox { display: flex; align-items: center; gap: var(--lmvz-component-input-md-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); padding-block: var(--lmvz-dimension-2-8, clamp(0.13rem, 0.03rem + 0.39vw, 0.5rem)); padding-inline: var(--lmvz-dimension-4-10, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); border-radius: var(--lmvz-semantic-border-radius-round, 999px); cursor: pointer; text-decoration: none; background-color: transparent; transition: background-color var(--checkbox-duration) var(--checkbox-easing); } input.sc-lmvz-checkbox { position: absolute; opacity: 0; width: var(--checkbox-box-size); height: var(--checkbox-box-size); margin: 0; cursor: pointer; z-index: 1; } .box.sc-lmvz-checkbox { display: flex; align-items: center; justify-content: center; width: var(--checkbox-box-size); height: var(--checkbox-box-size); background-color: var(--checkbox-bg); border: var(--lmvz-semantic-border-width-default, 1px) solid var(--checkbox-border-color); border-radius: var(--checkbox-border-radius); color: var(--checkbox-checkmark-color); transition: border-color var(--checkbox-duration) var(--checkbox-easing), background-color var(--checkbox-duration) var(--checkbox-easing); pointer-events: none; flex-shrink: 0; } .indicator.sc-lmvz-checkbox { display: flex; align-items: center; justify-content: center; line-height: 0; } .content.sc-lmvz-checkbox { display: flex; flex-direction: column; overflow-wrap: break-word; min-width: 0; } label.sc-lmvz-checkbox { font: var(--lmvz-typography-body-md, 400 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.4 Router); color: var(--checkbox-label-color); transition: color var(--checkbox-duration) var(--checkbox-easing); } .helper-text.sc-lmvz-checkbox { font: var(--lmvz-typography-body-sm, 400 clamp(0.75rem, 0.73rem + 0.06vw, 0.81rem) / 1.4 Router); color: var(--checkbox-helper-color); margin-block-start: 2px; } .error-text.sc-lmvz-checkbox { font: var(--lmvz-typography-body-sm, 400 clamp(0.75rem, 0.73rem + 0.06vw, 0.81rem) / 1.4 Router); color: var(--checkbox-error-color); display: block; margin-block-start: 4px; padding-inline: 10px; } @media (hover: hover) { .pill.sc-lmvz-checkbox:hover { background-color: var(--checkbox-wrapper-bg-hover); } .pill.sc-lmvz-checkbox:hover .box.sc-lmvz-checkbox { border-color: var(--checkbox-border-color-hover); } } [checked].sc-lmvz-checkbox-h .pill.sc-lmvz-checkbox { background-color: var(--checkbox-wrapper-bg-checked); } [checked].sc-lmvz-checkbox-h .box.sc-lmvz-checkbox { border-color: var(--checkbox-border-color-checked); } [checked].sc-lmvz-checkbox-h label.sc-lmvz-checkbox { color: var(--checkbox-label-color-checked); } [error].sc-lmvz-checkbox-h .box.sc-lmvz-checkbox { border-color: var(--checkbox-border-color-error); } [error].sc-lmvz-checkbox-h .helper-text.sc-lmvz-checkbox { color: var(--checkbox-error-color); } [disabled].sc-lmvz-checkbox-h { opacity: var(--lmvz-component-input-disabled-opacity, 40%); pointer-events: none; } [disabled].sc-lmvz-checkbox-h .pill.sc-lmvz-checkbox { cursor: not-allowed; } [disabled].sc-lmvz-checkbox-h input.sc-lmvz-checkbox { cursor: not-allowed; } input.sc-lmvz-checkbox:focus-visible ~ .box.sc-lmvz-checkbox { outline: 2px solid var(--checkbox-focus-color); outline-offset: 2px; box-shadow: 0 var(--lmvz-semantic-shadow-l1-1-position-y, 2px) 0 var(--lmvz-semantic-shadow-l1-1-blur, 4px) var(--lmvz-semantic-color-shadow-l1-colored, rgba(175, 223, 249, 0.42)); } @media (forced-colors: active) { .box.sc-lmvz-checkbox { forced-color-adjust: auto; border-color: ButtonText; background-color: Field; } [checked].sc-lmvz-checkbox-h .box.sc-lmvz-checkbox { border-color: Highlight; background-color: Field; } .indicator.sc-lmvz-checkbox { color: ButtonText; } [checked].sc-lmvz-checkbox-h .indicator.sc-lmvz-checkbox { color: HighlightText; } input.sc-lmvz-checkbox:focus-visible ~ .box.sc-lmvz-checkbox { outline-color: Highlight; box-shadow: none; } }`;
8144
+
8145
+ const CHECKMARK_SVG = toValidSvgStringWithFallback(checkmarkSvg);
8146
+ let checkboxIdCounter = 0;
8147
+ class LmvzCheckbox extends ReactiveControllerHost {
8148
+ get el() { return getElement(this); }
8149
+ get validationEl() {
8150
+ return this.el;
8151
+ }
8152
+ internals;
8153
+ nativeInput;
8154
+ checkboxId = `lmvz-checkbox-${checkboxIdCounter++}`;
8155
+ initialChecked = false;
8156
+ get helperId() {
8157
+ return this.helperText ? `${this.checkboxId}-helper` : undefined;
8158
+ }
8159
+ get errorId() {
8160
+ return this.errorMessage ? `${this.checkboxId}-error` : undefined;
8161
+ }
8162
+ get ariaDescribedBy() {
8163
+ const ids = [this.errorId, this.helperId].filter(Boolean);
8164
+ return ids.length > 0 ? ids.join(' ') : undefined;
8165
+ }
8166
+ label;
8167
+ checked = false;
8168
+ value = 'on';
8169
+ name;
8170
+ disabled = false;
8171
+ required = false;
8172
+ error = false;
8173
+ errorMessage;
8174
+ helperText;
8175
+ form;
8176
+ autofocus = false;
8177
+ checkedState = false;
8178
+ handleCheckedChange(val) {
8179
+ this.checkedState = val;
8180
+ this.internals.setFormValue?.(val ? (this.value ?? 'on') : null);
8181
+ }
8182
+ lmvzChange;
8183
+ async focusInput() {
8184
+ this.nativeInput?.focus();
8185
+ }
8186
+ async checkValidity() {
8187
+ return this.internals?.checkValidity() ?? true;
8188
+ }
8189
+ async reportValidity() {
8190
+ return this.internals?.reportValidity() ?? true;
8191
+ }
8192
+ constructor(hostRef) {
8193
+ super();
8194
+ registerInstance(this, hostRef);
8195
+ this.lmvzChange = createEvent(this, "lmvzChange");
8196
+ if (hostRef.$hostElement$["s-ei"]) {
8197
+ this.internals = hostRef.$hostElement$["s-ei"];
8198
+ }
8199
+ else {
8200
+ this.internals = hostRef.$hostElement$.attachInternals();
8201
+ hostRef.$hostElement$["s-ei"] = this.internals;
8202
+ }
8203
+ this.addController(new AriaValidationController(this, {
8204
+ reValidateOnPropChanges: true,
8205
+ }));
8206
+ }
8207
+ componentWillLoad() {
8208
+ this.initialChecked = this.checked;
8209
+ this.checkedState = this.checked;
8210
+ this.internals.setFormValue?.(this.checked ? (this.value ?? 'on') : null);
8211
+ super.componentWillLoad();
8212
+ }
8213
+ componentWillRender() {
8214
+ if (this.error && !this.errorMessage) {
8215
+ console.warn('lmvz-checkbox: error=true set without errorMessage — no visual-only error state is rendered. Provide errorMessage to communicate the error to users.');
8216
+ }
8217
+ super.componentWillRender();
8218
+ }
8219
+ formAssociatedCallback() {
8220
+ this.internals.setFormValue?.(this.checked ? (this.value ?? 'on') : null);
8221
+ }
8222
+ formResetCallback() {
8223
+ this.checked = this.initialChecked;
8224
+ }
8225
+ formStateRestoreCallback(state) {
8226
+ this.checked = state === (this.value ?? 'on');
8227
+ }
8228
+ handleChange = (event) => {
8229
+ const input = event.target;
8230
+ this.checked = input.checked;
8231
+ this.lmvzChange.emit(this.checked);
8232
+ };
8233
+ render() {
8234
+ return (hAsync(Host, { key: '6014c885305bc9824f7a6d4f0ba8c642125f3a5b' }, hAsync("div", { key: 'cbc6de2b684acfb00b77a366e707d73de74a0b8a', class: "pill" }, hAsync("input", { key: '5b442512b6cab2e60a1d62fd40e4c868b1bf87ac', type: "checkbox", id: this.checkboxId, checked: this.checkedState, disabled: this.disabled, required: this.required, "aria-required": this.required ? 'true' : 'false', "aria-invalid": this.error ? 'true' : 'false', "aria-describedby": this.ariaDescribedBy, "aria-errormessage": this.error && this.errorId ? this.errorId : undefined, ref: (el) => (this.nativeInput = el), onChange: this.handleChange, autoFocus: this.autofocus }), hAsync("span", { key: '09c534b7c5642c620129ea05a4468bd584c56ce7', class: "box", "aria-hidden": "true" }, this.checkedState && hAsync("span", { key: 'eaa49e1a60054f8efc62ade0446a4704f0bb46e9', class: "indicator", innerHTML: CHECKMARK_SVG })), hAsync("span", { key: '8fb836d71cbb3d4eadaf67284f5bb52906549275', class: "content" }, hAsync("label", { key: '8df862f11e9885158264908fdac6599f21ecba07', htmlFor: this.checkboxId }, this.label), this.helperText && (hAsync("span", { key: '1e45e6177774e937311cddacd1a3d3379c9c6af5', class: "helper-text", id: this.helperId, role: "status" }, this.helperText)))), this.errorMessage && (hAsync("span", { key: '83fc1f7cd6828973e52ef27604f12f94f41d7f4b', class: "error-text", id: this.errorId, role: "alert" }, this.errorMessage))));
8235
+ }
8236
+ static get formAssociated() { return true; }
8237
+ static get watchers() { return {
8238
+ "checked": [{
8239
+ "handleCheckedChange": 0
8240
+ }]
8241
+ }; }
8242
+ static get style() { return lmvzCheckboxCss(); }
8243
+ static get cmpMeta() { return {
8244
+ "$flags$": 578,
8245
+ "$tagName$": "lmvz-checkbox",
8246
+ "$members$": {
8247
+ "label": [1],
8248
+ "checked": [1540],
8249
+ "value": [1],
8250
+ "name": [1],
8251
+ "disabled": [516],
8252
+ "required": [516],
8253
+ "error": [516],
8254
+ "errorMessage": [1, "error-message"],
8255
+ "helperText": [1, "helper-text"],
8256
+ "form": [1],
8257
+ "autofocus": [4],
8258
+ "checkedState": [32],
8259
+ "focusInput": [64],
8260
+ "checkValidity": [64],
8261
+ "reportValidity": [64]
8262
+ },
8263
+ "$listeners$": undefined,
8264
+ "$lazyBundleId$": "-",
8265
+ "$attrsToReflect$": [["checked", "checked"], ["disabled", "disabled"], ["required", "required"], ["error", "error"]]
8266
+ }; }
8267
+ }
8268
+
8269
+ function debounce(func, wait) {
8270
+ let timeout;
8271
+ return () => {
8272
+ if (timeout !== undefined) {
8273
+ window.clearTimeout(timeout);
8274
+ }
8275
+ timeout = window.setTimeout(() => {
8276
+ func();
8277
+ timeout = undefined;
8278
+ }, wait);
8279
+ };
8280
+ }
8281
+
8282
+ const chipTypes = ['active', 'warning', 'success', 'error', 'neutral'];
8283
+ const chipSizes = ['default', 'small'];
8284
+
8285
+ const lmvzChipCss = () => `:host { --lmvz-chip-border-color: var(--lmvz-semantic-color-status-on-neutral-subtle, #d4d4d4); --lmvz-chip-background-color: var(--lmvz-semantic-color-status-neutral, #fcfcfc); --lmvz-chip-foreground-color: var(--lmvz-semantic-color-status-on-neutral, #545454); padding-block: var(--lmvz-dimension-4-6, clamp(0.25rem, 0.22rem + 0.13vw, 0.38rem)); padding-inline: var(--lmvz-dimension-8-10, clamp(0.5rem, 0.47rem + 0.13vw, 0.63rem)); border: 1px solid var(--lmvz-chip-border-color); border-radius: var(--lmvz-semantic-border-radius-round, 999px); font: var(--lmvz-typography-body-xs-strong, 500 clamp(0.69rem, 0.67rem + 0.06vw, 0.75rem) / 1.4 Router); background-color: var(--lmvz-chip-background-color); color: var(--lmvz-chip-foreground-color); display: inline-flex; align-items: center; justify-content: center; gap: var(--lmvz-dimension-4-6, clamp(0.25rem, 0.22rem + 0.13vw, 0.38rem)); box-sizing: border-box; max-width: 100%; overflow: hidden; white-space: nowrap; > .content-overflow-wrapper { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } } :host([size='small']) { padding-block: var(--lmvz-dimension-2-4, clamp(0.13rem, 0.09rem + 0.13vw, 0.25rem)); padding-inline: var(--lmvz-dimension-6-8, clamp(0.38rem, 0.34rem + 0.13vw, 0.5rem)); font: var(--lmvz-typography-body-2xs-strong, 500 clamp(0.63rem, 0.61rem + 0.06vw, 0.69rem) / 1.4 Router); gap: var(--lmvz-dimension-2-4, clamp(0.13rem, 0.09rem + 0.13vw, 0.25rem)); } ::slotted(*) { display: inline; white-space: inherit; } ::slotted(lmvz-icon) { --lmvz-component-color: var(--lmvz-chip-foreground-color); --lmvz-component-size: var(--lmvz-dimension-12-14, clamp(0.75rem, 0.72rem + 0.13vw, 0.88rem)); } :host([size='small']) ::slotted(lmvz-icon) { --lmvz-component-size: var(--lmvz-dimension-10-12, clamp(0.63rem, 0.59rem + 0.13vw, 0.75rem)); } :host([type='active']) { --lmvz-chip-border-color: var(--lmvz-semantic-color-status-on-active-subtle, #c1e6fa); --lmvz-chip-background-color: var(--lmvz-semantic-color-status-active, #f1f9fe); --lmvz-chip-foreground-color: var(--lmvz-semantic-color-status-on-active, #0e7ab4); } :host([type='warning']) { --lmvz-chip-border-color: var(--lmvz-semantic-color-status-on-warning-subtle, #ffdf75); --lmvz-chip-background-color: var(--lmvz-semantic-color-status-warning, #fffbf0); --lmvz-chip-foreground-color: var(--lmvz-semantic-color-status-on-warning, #7a5e00); } :host([type='success']) { --lmvz-chip-border-color: var(--lmvz-semantic-color-status-on-success-subtle, #a5dad3); --lmvz-chip-background-color: var(--lmvz-semantic-color-status-success, #f1f9f8); --lmvz-chip-foreground-color: var(--lmvz-semantic-color-status-on-success, #37867c); } :host([type='error']) { --lmvz-chip-border-color: var(--lmvz-semantic-color-status-on-danger-subtle, #f7bfc2); --lmvz-chip-background-color: var(--lmvz-semantic-color-status-danger, #fdf1f2); --lmvz-chip-foreground-color: var(--lmvz-semantic-color-status-on-danger, #e52a31); } :host([type='neutral']) { --lmvz-chip-border-color: var(--lmvz-semantic-color-status-on-neutral-subtle, #d4d4d4); --lmvz-chip-background-color: var(--lmvz-semantic-color-status-neutral, #fcfcfc); --lmvz-chip-foreground-color: var(--lmvz-semantic-color-status-on-neutral, #545454); } `;
8286
+
8287
+ class LmvzChip extends ReactiveControllerHost {
8288
+ ariaValidationController = new AriaValidationController(this);
8289
+ beforeSlot;
8290
+ defaultSlot;
8291
+ afterSlot;
8292
+ get el() { return getElement(this); }
8293
+ get validationEl() {
8294
+ return this.el;
8295
+ }
8296
+ type = 'active';
8297
+ size = 'default';
8298
+ constructor(hostRef) {
8299
+ super();
8300
+ registerInstance(this, hostRef);
8301
+ this.addController(this.ariaValidationController);
8302
+ }
8303
+ normalizeType(value) {
8304
+ const normalizedType = chipTypes.includes(value) ? value : 'active';
8305
+ if (normalizedType !== this.type) {
8306
+ this.type = normalizedType;
8307
+ }
8308
+ }
8309
+ normalizeSize(value) {
8310
+ const normalizedSize = chipSizes.includes(value) ? value : 'default';
8311
+ if (normalizedSize !== this.size) {
8312
+ this.size = normalizedSize;
8313
+ }
8314
+ }
8315
+ componentWillLoad() {
8316
+ this.normalizeType(this.type);
8317
+ this.normalizeSize(this.size);
8318
+ super.componentWillLoad();
8319
+ }
8320
+ connectedCallback() {
8321
+ super.connectedCallback();
8322
+ this.checkContent();
8323
+ }
8324
+ checkContent = debounce(() => {
8325
+ if (!isAriaValidationEnabled)
8326
+ return;
8327
+ const elements = [...(this.beforeSlot?.assignedElements() ?? []), ...(this.defaultSlot?.assignedElements() ?? []), ...(this.afterSlot?.assignedElements() ?? [])];
8328
+ if (!elements.length) {
8329
+ console.warn('LmvzChip has no assigned content. Please add content to the default slot or the before-text/after-text slots.');
8330
+ }
8331
+ }, 500);
8332
+ render() {
8333
+ return (hAsync(Host, { key: 'c77e8ae55531eefb31dd37b41b4851746a78f077', type: this.type, size: this.size }, hAsync("slot", { key: '3f4d0a8feb887080172d11facc01afbe730b2726', name: "before-text", ref: (el) => (this.beforeSlot = el), onSlotchange: () => this.checkContent() }), hAsync("span", { key: '6ec135ebcb32f15fea342379ac2b1dfebbe76fa6', class: "content-overflow-wrapper" }, hAsync("slot", { key: '053afb88e2d6702428aab195bfcec6aff6d9c55f', ref: (el) => (this.defaultSlot = el), onSlotchange: () => this.checkContent() })), hAsync("slot", { key: 'ed51db073a512a32d12da59dee285708b83ae87b', name: "after-text", ref: (el) => (this.afterSlot = el), onSlotchange: () => this.checkContent() })));
8334
+ }
8335
+ static get watchers() { return {
8336
+ "type": [{
8337
+ "normalizeType": 0
8338
+ }],
8339
+ "size": [{
8340
+ "normalizeSize": 0
8341
+ }]
8342
+ }; }
8343
+ static get style() { return lmvzChipCss(); }
8344
+ static get cmpMeta() { return {
8345
+ "$flags$": 777,
8346
+ "$tagName$": "lmvz-chip",
8347
+ "$members$": {
8348
+ "type": [1537],
8349
+ "size": [1537]
8350
+ },
8351
+ "$listeners$": undefined,
8352
+ "$lazyBundleId$": "-",
8353
+ "$attrsToReflect$": [["type", "type"], ["size", "size"]]
6014
8354
  }; }
6015
8355
  }
6016
8356
 
@@ -6146,7 +8486,7 @@ class LmvzHeader extends ReactiveControllerHost {
6146
8486
  }
6147
8487
  }
6148
8488
  render() {
6149
- return (hAsync(Host, { key: '96626b8d29cdefc8ed97a7bb68a689ff6155d2c7', onFocus: this.delegateFocus.bind(this) }, hAsync("div", { key: '41ac004bdc6c2c6a1f8e3d293f6b0c3727c27aff', class: "brand" }, hAsync("slot", { key: '8e33150a54c8b8070b22db51c8584e06dd06dd5c', name: "brand" }, hAsync("img", { key: '889955c7335d64f2c8d0b2e032db3dd64a27cbd2', id: "fallback-logo-lmvz", src: logoSvg, alt: "Lehrmittelverlag Z\u00FCrich" }))), hAsync("nav", { key: '37b6ef465d320c325e0c830bcc91ea3a575d2690', "aria-label": "Hauptnavigation" }, hAsync("div", { key: '7a0ec1a78d6eee3b3e37f55f872806b0791c2156', role: "menubar", class: "primary-menubar" }, hAsync("slot", { key: 'e0403633c6acd137c94b1552cc7f08e3549550d3', name: "nav-primary", ref: (el) => (this.primarySlot = el) }), hAsync("div", { key: '4e377f38a0b94a766f9001174729e5763fa0a194', role: "menu", id: "nav-secondary", class: "secondary-menubar", hidden: !this.lmvzActiveNav, ref: (el) => (this.secondaryNav = el) }, hAsync("slot", { key: '368e461f239498c706a3c9bb27a7b05de2b79cac', name: this.secondarySlotName, ref: (el) => (this.secondarySlot = el) })))), hAsync("div", { key: '8ffaf8d6f1254644b48dc0a40b9f552339ecc690', class: "actions" }, hAsync("slot", { key: '5b679885e4fa111d66e993458ab7f5092d8179d4', name: "actions" }))));
8489
+ return (hAsync(Host, { key: '87ecb9948039ea2f4b998bf35865e5839708a65c', onFocus: this.delegateFocus.bind(this) }, hAsync("div", { key: '4f1ae09b1a3e0a9c3eb12659b3952eef34cbd67b', class: "brand" }, hAsync("slot", { key: '99c03f87f0b3462d9b44835ba34ee05c75373b22', name: "brand" }, hAsync("img", { key: '1616ce8464c2e798a53bc7c879385e3882e4d32f', id: "fallback-logo-lmvz", src: logoSvg, alt: "Lehrmittelverlag Z\u00FCrich" }))), hAsync("nav", { key: 'ff7c56dbc9e80ba9a0757683069e1cba168abcb6', "aria-label": "Hauptnavigation" }, hAsync("div", { key: 'a3bb67d788b936422992b066431c73098ff2aa11', role: "menubar", class: "primary-menubar" }, hAsync("slot", { key: 'e85b93f943c6d97bd5a7fa6f75e4855785d09ec5', name: "nav-primary", ref: (el) => (this.primarySlot = el) }), hAsync("div", { key: 'e9efcfc5d3a8cb991c255b32b205924dafb5aaf6', role: "menu", id: "nav-secondary", class: "secondary-menubar", hidden: !this.lmvzActiveNav, ref: (el) => (this.secondaryNav = el) }, hAsync("slot", { key: '7314e6a72705d48b347fa30945b1d5513b87bfd3', name: this.secondarySlotName, ref: (el) => (this.secondarySlot = el) })))), hAsync("div", { key: 'aee503cddbf8964833934e594caf5faa6e073a02', class: "actions" }, hAsync("slot", { key: '5c1b15c0507ef24f67e37cd1652b4cc5ce4cc104', name: "actions" }))));
6150
8490
  }
6151
8491
  static get watchers() { return {
6152
8492
  "lmvzActiveNav": [{
@@ -6167,7 +8507,7 @@ class LmvzHeader extends ReactiveControllerHost {
6167
8507
  }; }
6168
8508
  }
6169
8509
 
6170
- const lmvzIconCss = () => `.sc-lmvz-icon-h{--lmvz-icon-color:var(--lmvz-component-color, var(--lmvz-semantic-color-on-surface-input-primary, #000000));display:inline-block;line-height:0;svg{display:block}svg path{stroke:var(--lmvz-icon-color);fill:none}}[size='xs'].sc-lmvz-icon-h{svg{width:var(--lmvz-component-icon-size-xs, clamp(0.75rem, 0.72rem + 0.13vw, 0.88rem));height:var(--lmvz-component-icon-size-xs, clamp(0.75rem, 0.72rem + 0.13vw, 0.88rem))}}[size='sm'].sc-lmvz-icon-h{svg{width:var(--lmvz-component-icon-size-sm, clamp(0.88rem, 0.84rem + 0.13vw, 1rem));height:var(--lmvz-component-icon-size-sm, clamp(0.88rem, 0.84rem + 0.13vw, 1rem))}}[size='md'].sc-lmvz-icon-h{svg{width:var(--lmvz-component-icon-size-md, clamp(1rem, 0.94rem + 0.26vw, 1.25rem));height:var(--lmvz-component-icon-size-md, clamp(1rem, 0.94rem + 0.26vw, 1.25rem))}}[size='lg'].sc-lmvz-icon-h{svg{width:var(--lmvz-component-icon-size-lg, clamp(1.5rem, 1.44rem + 0.26vw, 1.75rem));height:var(--lmvz-component-icon-size-lg, clamp(1.5rem, 1.44rem + 0.26vw, 1.75rem))}}[size='inherit'].sc-lmvz-icon-h{svg{width:inherit;height:inherit}}[weight='light'].sc-lmvz-icon-h{svg path{stroke-width:1}}[weight='medium'].sc-lmvz-icon-h{svg path{stroke-width:1.5}}[weight='bold'].sc-lmvz-icon-h{svg path{stroke-width:2}}[weight='filled'].sc-lmvz-icon-h{svg path{stroke-width:2;fill:var(--lmvz-icon-color)}}`;
8510
+ const lmvzIconCss = () => `.sc-lmvz-icon-h{--lmvz-icon-color:var(--lmvz-component-color, var(--lmvz-semantic-color-on-surface-input-primary, #000000));--lmvz-icon-size:var(--lmvz-component-size, var(--lmvz-component-icon-size-md, clamp(1rem, 0.94rem + 0.26vw, 1.25rem)));display:inline-block;line-height:0;svg{display:block;height:var(--lmvz-icon-size);width:auto}svg path{stroke:var(--lmvz-icon-color);fill:none}}[size='xs'].sc-lmvz-icon-h{svg{--lmvz-icon-size:var(--lmvz-component-icon-size-xs, clamp(0.75rem, 0.72rem + 0.13vw, 0.88rem))}}[size='sm'].sc-lmvz-icon-h{svg{--lmvz-icon-size:var(--lmvz-component-icon-size-sm, clamp(0.88rem, 0.84rem + 0.13vw, 1rem))}}[size='md'].sc-lmvz-icon-h{svg{--lmvz-icon-size:var(--lmvz-component-icon-size-md, clamp(1rem, 0.94rem + 0.26vw, 1.25rem))}}[size='lg'].sc-lmvz-icon-h{svg{--lmvz-icon-size:var(--lmvz-component-icon-size-lg, clamp(1.5rem, 1.44rem + 0.26vw, 1.75rem))}}[size='inherit'].sc-lmvz-icon-h{svg{height:var(--lmvz-component-size, inherit)}}[weight='light'].sc-lmvz-icon-h{svg path{stroke-width:1}}[weight='medium'].sc-lmvz-icon-h{svg path{stroke-width:1.5}}[weight='bold'].sc-lmvz-icon-h{svg path{stroke-width:2}}[weight='filled'].sc-lmvz-icon-h{svg path{stroke-width:2;fill:var(--lmvz-icon-color)}}`;
6171
8511
 
6172
8512
  class LmvzIcon extends ReactiveControllerHost {
6173
8513
  intersectionObserver;
@@ -6214,7 +8554,7 @@ class LmvzIcon extends ReactiveControllerHost {
6214
8554
  super.componentDidRender();
6215
8555
  }
6216
8556
  render() {
6217
- return hAsync(Host, { key: '6022ed0e30bcdd13455ccaae65784ac70abcb349', role: "img", "aria-hidden": `${this.ariaHidden}`, innerHTML: this.iconData });
8557
+ return hAsync(Host, { key: 'e76fe28500b3545b8917ecdad590da5bc04ed38f', role: "img", "aria-hidden": `${this.ariaHidden}`, innerHTML: this.iconData });
6218
8558
  }
6219
8559
  waitUntilVisible(callback, rootMargin = 50) {
6220
8560
  {
@@ -6407,9 +8747,9 @@ class LmvzInput extends ReactiveControllerHost {
6407
8747
  render() {
6408
8748
  const hasValue = Boolean(this.value);
6409
8749
  const shouldFloatLabel = hasValue || Boolean(this.placeholder);
6410
- return (hAsync("div", { key: '3f14adbe321717cdfe305dc623940acb8be194f8', class: classNames('input-container', {
8750
+ return (hAsync("div", { key: '3cbfee5fccbb5efe1bfb9c6622653e11d4896615', class: classNames('input-container', {
6411
8751
  'interaction-filled': hasValue,
6412
- }) }, hAsync("div", { key: '2cc559cc0ff4da1f8418c510188bcbb93b42da02', class: "input-wrapper" }, hAsync("slot", { key: 'b41a5179b6d8651a9b60777718f92b32f80fda89', name: "before-input" }), hAsync("div", { key: '4ac81c8d277d6592e1d84f4b3abfffef03843a9c', class: "label-input-group" }, hAsync("label", { key: '80b272c3b069a246dcbf26812d2281e436c6cdfa', htmlFor: this.inputId, class: classNames({ floating: shouldFloatLabel }) }, this.label, this.required && (hAsync("span", { key: 'eb00d3be1a3eddd0661df74cfb2d4b95c75f5eea', class: "required-indicator", "aria-hidden": "true" }, ' ', "*"))), hAsync("input", { key: '6192c875976e7d21003de29badabd5a910ed0c17', id: this.inputId, ref: (el) => (this.nativeInputElement = el), type: this.type, min: this.min, max: this.max, step: this.step, value: this.value, name: this.name, placeholder: this.placeholder, disabled: this.disabled, readOnly: this.readonly, required: this.required, form: this.form, autocomplete: this.autocomplete, inputmode: this.inputmode, autocorrect: this.autocorrect, autocapitalize: this.autocapitalize, spellcheck: this.spellcheck, autofocus: this.autofocus, minlength: this.minlength, maxlength: this.maxlength, pattern: this.pattern, "aria-invalid": this.error ? 'true' : 'false', "aria-required": this.required ? 'true' : 'false', "aria-describedby": this.describedBy, "aria-errormessage": this.errorId, onInput: this.handleInput, onChange: this.handleChange, onFocus: this.handleFocus, onBlur: this.handleBlur })), hAsync("slot", { key: '9a908984ecebead7f08bbd88ed57fa8f30a69b67', name: "after-input" })), hAsync("div", { key: 'abe658929d955042358ff24ea2267ae5b7b3484d', id: this.helperId, role: "status" }, this.helperText || null), hAsync("div", { key: '61c689c7d8ab3bbb7c62dc7a227c35441b4bbbd8', id: this.errorId, role: "alert" }, (this.showErrorMessage && this.errorMessage) || null)));
8752
+ }) }, hAsync("div", { key: '2712b0d5eda0ca1d4da70f362047df07acf922a5', class: "input-wrapper" }, hAsync("slot", { key: '992bc86de6b3bdd3cdbac1c000d38a338e6e4474', name: "before-input" }), hAsync("div", { key: '35ace7d889667f5d09eea76dcba161f8711c9b1c', class: "label-input-group" }, hAsync("label", { key: '28520dddf331d35ba75283673aa81e0046628907', htmlFor: this.inputId, class: classNames({ floating: shouldFloatLabel }) }, this.label, this.required && (hAsync("span", { key: 'b91766b86b1bc68ce3dbb4b734ee4aa40fe0759b', class: "required-indicator", "aria-hidden": "true" }, ' ', "*"))), hAsync("input", { key: 'ed7cd4b64091256df1c3b939c1e22d6082fe58b9', id: this.inputId, ref: (el) => (this.nativeInputElement = el), type: this.type, min: this.min, max: this.max, step: this.step, value: this.value, name: this.name, placeholder: this.placeholder, disabled: this.disabled, readOnly: this.readonly, required: this.required, form: this.form, autocomplete: this.autocomplete, inputmode: this.inputmode, autocorrect: this.autocorrect, autocapitalize: this.autocapitalize, spellcheck: this.spellcheck, autofocus: this.autofocus, minlength: this.minlength, maxlength: this.maxlength, pattern: this.pattern, "aria-invalid": this.error ? 'true' : 'false', "aria-required": this.required ? 'true' : 'false', "aria-describedby": this.describedBy, "aria-errormessage": this.errorId, onInput: this.handleInput, onChange: this.handleChange, onFocus: this.handleFocus, onBlur: this.handleBlur })), hAsync("slot", { key: '1e42c305b8e554fadd7c50fbbb54ea234c734b0a', name: "after-input" })), hAsync("div", { key: '190a1a92971a717f3ef594615fbe4dd0c9a72493', id: this.helperId, role: "status" }, this.helperText || null), hAsync("div", { key: '4d07b45a51d3733caf09a1bbc56ae6f51411ecbc', id: this.errorId, role: "alert" }, (this.showErrorMessage && this.errorMessage) || null)));
6413
8753
  }
6414
8754
  static get formAssociated() { return true; }
6415
8755
  static get watchers() { return {
@@ -6464,7 +8804,7 @@ class LmvzInput extends ReactiveControllerHost {
6464
8804
  }; }
6465
8805
  }
6466
8806
 
6467
- const lmvzMenuitemCss = () => `@layer lmvz-ds.reset, lmvz-ds.theme, lmvz-ds.components, lmvz-ds.overrides; @layer lmvz-ds.theme { @font-face { font-family: Router; src: local('Router-Book'), url('/assets/fonts/Router-Book.woff') format('woff'), local('Router'); font-weight: 400 normal; } @font-face { font-family: Router; src: local('Router-Medium'), url('/assets/fonts/Router-Medium.woff') format('woff'), local('Router'); font-weight: 500; } @font-face { font-family: Router; src: local('Router-Bold'), url('/assets/fonts/Router-Bold.woff') format('woff'), local('Router'); font-weight: 700 bold; } } .sc-lmvz-menuitem-h { display: inline-flex; flex-direction: row; align-items: center; justify-content: center; gap: var(--lmvz-component-input-md-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); border-radius: var(--lmvz-semantic-border-radius-lg, 14px); font: var(--lmvz-typography-body-md, 400 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.4 Router); padding: var(--lmvz-component-input-md-padding-y, clamp(0.75rem, 0.69rem + 0.26vw, 1rem)) var(--lmvz-component-input-md-padding-x, clamp(0.75rem, 0.69rem + 0.26vw, 1rem)); cursor: pointer; --lmvz-menuitem-color: var(--lmvz-semantic-color-int-on-tertiary, #545454); --lmvz-menuitem-background: var(--lmvz-semantic-color-int-tertiary, #ffffff); background: var(--lmvz-menuitem-background); color: var(--lmvz-menuitem-color); } .sc-lmvz-menuitem-h:hover { --lmvz-menuitem-background: var(--lmvz-semantic-color-int-tertiary-hover, #f0f0f0); } .sc-lmvz-menuitem-h:active { --lmvz-menuitem-background: var(--lmvz-semantic-color-int-tertiary-active, #e0e0e0); } .sc-lmvz-menuitem-h:focus-visible { z-index: 1; } [aria-expanded='true'].sc-lmvz-menuitem-h { --lmvz-menuitem-background: var(--lmvz-semantic-color-status-on-active, #0e7ab4); --lmvz-menuitem-color: var(--lmvz-semantic-color-status-on-active, #0e7ab4); }`;
8807
+ const lmvzMenuitemCss = () => `@layer lmvz-ds.reset, lmvz-ds.theme, lmvz-ds.components, lmvz-ds.overrides; @layer lmvz-ds.theme { @font-face { font-family: Router; src: local('Router-Book'), url('/assets/fonts/Router-Book.woff') format('woff'), local('Router'); font-weight: 400 normal; } @font-face { font-family: Router; src: local('Router-Medium'), url('/assets/fonts/Router-Medium.woff') format('woff'), local('Router'); font-weight: 500; } @font-face { font-family: Router; src: local('Router-Bold'), url('/assets/fonts/Router-Bold.woff') format('woff'), local('Router'); font-weight: 700 bold; } } .sc-lmvz-menuitem-h { display: inline-flex; flex-direction: row; align-items: center; justify-content: center; gap: var(--lmvz-component-input-md-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); border-radius: var(--lmvz-semantic-border-radius-lg, 14px); font: var(--lmvz-typography-body-md, 400 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.4 Router); padding: var(--lmvz-component-input-md-padding-y, clamp(0.75rem, 0.69rem + 0.26vw, 1rem)) var(--lmvz-component-input-md-padding-x, clamp(0.75rem, 0.69rem + 0.26vw, 1rem)); cursor: pointer; --lmvz-menuitem-color: var(--lmvz-semantic-color-int-on-tertiary, #545454); --lmvz-menuitem-background: var(--lmvz-semantic-color-int-tertiary, #ffffff); background: var(--lmvz-menuitem-background); color: var(--lmvz-menuitem-color); } .sc-lmvz-menuitem-h:hover { --lmvz-menuitem-background: var(--lmvz-semantic-color-int-tertiary-hover, #f0f0f0); } .sc-lmvz-menuitem-h:active { --lmvz-menuitem-background: var(--lmvz-semantic-color-int-tertiary-active, #e0e0e0); } .sc-lmvz-menuitem-h:focus-visible { z-index: 1; } [aria-expanded='true'].sc-lmvz-menuitem-h { --lmvz-menuitem-background: var(--lmvz-semantic-color-status-active, #f1f9fe); --lmvz-menuitem-color: var(--lmvz-semantic-color-status-on-active, #0e7ab4); }`;
6468
8808
 
6469
8809
  class LmvzMenuItem extends ReactiveControllerHost {
6470
8810
  get el() { return getElement(this); }
@@ -6487,7 +8827,7 @@ class LmvzMenuItem extends ReactiveControllerHost {
6487
8827
  this.addController(new ElementActivationController(this));
6488
8828
  }
6489
8829
  render() {
6490
- return (hAsync(Host, { key: '1a37d2873a29c713cf95c60070c8dcf045c9f8fc' }, hAsync("slot", { key: 'c6578bcfdb9f0cebad095d80f0ed63cf663bf91e', ref: (e) => (this.validationSlot = e) })));
8830
+ return (hAsync(Host, { key: 'a87116fba2d35c612e590c6b4e12c03b60d1ef0e' }, hAsync("slot", { key: 'b302049db0b5818d4d7f90c043eb5c3caf48ca1b', ref: (e) => (this.validationSlot = e) })));
6491
8831
  }
6492
8832
  static get style() { return lmvzMenuitemCss(); }
6493
8833
  static get cmpMeta() { return {
@@ -6557,7 +8897,7 @@ class LmvzSelect extends ReactiveControllerHost {
6557
8897
  render() {
6558
8898
  const hasValue = this.hasValue;
6559
8899
  const shouldShowLabel = hasValue;
6560
- return (hAsync(Host, { key: '7d1abb943f79e90451b43c9221801b80a2f61346' }, hAsync("div", { key: 'ded3e45246ab38e89d444c59239cdc63a2c4d4fc', class: "select-wrapper" }, hAsync("label", { key: 'cb68ff79976c2fb55d4cc827f9e90ba2597a8a43', htmlFor: this.selectId, class: shouldShowLabel ? 'floating-label' : 'assistive-label' }, this.label, this.required && shouldShowLabel && hAsync("span", { key: 'ab77eaea1645b95d90f00ffb609bbd7a1704f7bc', "aria-hidden": "true" }, " *")), hAsync("div", { key: '45cee00478a6cc31c10dddf69d8e6687fc8f440d', "aria-hidden": "true" }, hAsync("span", { key: '0c5d425ea8843234aa6abd94a207377e2a675686' }, hasValue ? this.selectedLabel : this.label, this.required && !hasValue && hAsync("span", { key: 'ebef5322371ee0253b50dd801b80cbb6402c067a', "aria-hidden": "true" }, " *")), hAsync("span", { key: 'a12d31dc29563444f728133f181b48914d31705b' }, hAsync("img", { key: 'dd3f175d1ca2b9ccc6c2bfa2075e5da62016a896', src: chevronDownSvg, alt: "" }))), hAsync("select", { key: 'a196f3b824177d1b45971c38341bf6a2939dda82', id: this.selectId, ref: (el) => (this.nativeSelectEl = el), name: this.name, disabled: this.disabled, required: this.required, "aria-label": this.label, onChange: this.handleChange }, !hasValue && hAsync("option", { key: '536cc559def0e9ffa4b2150693ece9a597c238d1', value: "", disabled: true, selected: true, hidden: true }), hAsync("slot", { key: 'ad9fed96b9f8c1d8257511bb1d5ab5ee756973ce' }))), this.helperText && hAsync("div", { key: '4723b44d781c900be5aae7ece2a0be04b6c744b9', role: "status" }, this.helperText)));
8900
+ return (hAsync(Host, { key: '1bdd53df4a33c5292cc072b0a9abc45fa01b237f' }, hAsync("div", { key: 'e38d81e620d8c27cd34e1a7799c42d5640d4b0db', class: "select-wrapper" }, hAsync("label", { key: '3995206b564c7e17ac273709577eb8dd7a3b0ff1', htmlFor: this.selectId, class: shouldShowLabel ? 'floating-label' : 'assistive-label' }, this.label, this.required && shouldShowLabel && hAsync("span", { key: '7c04028f9ff3e0f365f76d10b0139dc6805f2af4', "aria-hidden": "true" }, " *")), hAsync("div", { key: '7b428d22a32181fc13e837b6821ab163ac286453', "aria-hidden": "true" }, hAsync("span", { key: '385ddb473337869777e835cc5b533f9a41c1fbe3' }, hasValue ? this.selectedLabel : this.label, this.required && !hasValue && hAsync("span", { key: 'c53036bd718b916b910225297b40df998729650c', "aria-hidden": "true" }, " *")), hAsync("span", { key: '06db17fbe01d9fea9904aa04e72b6cbfc9d93652' }, hAsync("img", { key: 'b4d46ada048e931aa71f2ace33c93ff9fc67e479', src: chevronDownSvg, alt: "" }))), hAsync("select", { key: '841c86f1d340cd36475a7757e9cad5f33aeac710', id: this.selectId, ref: (el) => (this.nativeSelectEl = el), name: this.name, disabled: this.disabled, required: this.required, "aria-label": this.label, onChange: this.handleChange }, !hasValue && hAsync("option", { key: '4bd193f7878da2077c9185cd093d61c62406a7b9', value: "", disabled: true, selected: true, hidden: true }), hAsync("slot", { key: 'c14a15e022f08ad72a5ad9d29befe0db7c6f24db' }))), this.helperText && hAsync("div", { key: '833eaa383f8a9722fd990fadcdff4a93aa0a79df', role: "status" }, this.helperText)));
6561
8901
  }
6562
8902
  static get watchers() { return {
6563
8903
  "value": [{
@@ -6587,6 +8927,7 @@ registerComponents([
6587
8927
  LmvzAction,
6588
8928
  LmvzButton,
6589
8929
  LmvzCard,
8930
+ LmvzCheckbox,
6590
8931
  LmvzChip,
6591
8932
  LmvzHeader,
6592
8933
  LmvzIcon,