@lmvz-ds/components 0.35.2 → 0.36.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 (224) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/assets/icons/calendar.svg +7 -0
  3. package/cjs/{aria-validation-controller-BC0Eaiv4.js → aria-validation-controller-Do0uEK4t.js} +1 -1
  4. package/cjs/{directional-focus-controller-DBat-oF7.js → directional-focus-controller-3uDoin45.js} +3 -1
  5. package/cjs/{element-activation-controller-BHqCUgQv.js → element-activation-controller-BWtUKzu2.js} +1 -1
  6. package/cjs/{element.util-CRS_YJ59.js → element.util-CctmBvUY.js} +14 -0
  7. package/cjs/{index-TGsVZNDP.js → index-BgvZ4y-3.js} +12 -0
  8. package/cjs/lmvz-action-list.cjs.entry.js +4 -4
  9. package/cjs/lmvz-action.cjs.entry.js +1 -1
  10. package/cjs/lmvz-button-group.cjs.entry.js +2 -2
  11. package/cjs/lmvz-button_2.cjs.entry.js +5 -5
  12. package/cjs/lmvz-card.cjs.entry.js +1 -1
  13. package/cjs/lmvz-checkbox.cjs.entry.js +2 -2
  14. package/cjs/lmvz-chip.cjs.entry.js +2 -2
  15. package/cjs/lmvz-components.cjs.js +2 -2
  16. package/cjs/lmvz-datepicker.cjs.entry.js +2764 -0
  17. package/cjs/lmvz-header_2.cjs.entry.js +6 -6
  18. package/cjs/{lmvz-popover.cjs.entry.js → lmvz-input_2.cjs.entry.js} +230 -11
  19. package/cjs/lmvz-link.cjs.entry.js +2 -2
  20. package/cjs/lmvz-menuitem.cjs.entry.js +5 -5
  21. package/cjs/lmvz-message.cjs.entry.js +2 -2
  22. package/cjs/lmvz-modal.cjs.entry.js +4 -4
  23. package/cjs/lmvz-radio.cjs.entry.js +3 -3
  24. package/cjs/lmvz-select.cjs.entry.js +3 -3
  25. package/cjs/lmvz-snackbar.cjs.entry.js +2 -2
  26. package/cjs/lmvz-spinner.cjs.entry.js +2 -2
  27. package/cjs/lmvz-tab.cjs.entry.js +2 -2
  28. package/cjs/lmvz-tabs.cjs.entry.js +4 -4
  29. package/cjs/lmvz-toggle.cjs.entry.js +4 -5
  30. package/cjs/loader.cjs.js +2 -2
  31. package/cjs/{async.util-Dnl6c82X.js → stencil.util-TjS8_DoU.js} +13 -1
  32. package/collection/assets/icons/calendar.svg +7 -0
  33. package/collection/collection-manifest.json +1 -0
  34. package/collection/components/lmvz-datepicker/lmvz-datepicker.css +166 -0
  35. package/collection/components/lmvz-datepicker/lmvz-datepicker.js +988 -0
  36. package/collection/components/lmvz-datepicker/lmvz-datepicker.utils.js +189 -0
  37. package/collection/components/lmvz-datepicker/test/lmvz-datepicker.utils.unit.js +300 -0
  38. package/collection/components/lmvz-header/lmvz-header.js +1 -1
  39. package/collection/components/lmvz-icon/lmvz-icon.js +1 -1
  40. package/collection/components/lmvz-input/lmvz-input.js +40 -2
  41. package/collection/components/lmvz-link/lmvz-link.js +1 -1
  42. package/collection/components/lmvz-menuitem/lmvz-menuitem.js +1 -1
  43. package/collection/components/lmvz-message/lmvz-message.js +1 -1
  44. package/collection/components/lmvz-modal/lmvz-modal.js +1 -1
  45. package/collection/components/lmvz-popover/lmvz-popover.js +6 -2
  46. package/collection/components/lmvz-radio/lmvz-radio.js +1 -1
  47. package/collection/components/lmvz-select/lmvz-select.js +1 -1
  48. package/collection/components/lmvz-snackbar/lmvz-snackbar.js +1 -1
  49. package/collection/components/lmvz-spinner/lmvz-spinner.js +1 -1
  50. package/collection/components/lmvz-tab/lmvz-tab.js +1 -1
  51. package/collection/components/lmvz-tabs/lmvz-tabs.js +1 -1
  52. package/collection/components/lmvz-toggle/lmvz-toggle.js +1 -1
  53. package/collection/integration/header-integration/header-integration.js +1 -1
  54. package/collection/utils/aria/aria.constants.js +7 -0
  55. package/collection/utils/aria/directional-focus-controller.js +3 -1
  56. package/collection/utils/element/element.util.js +5 -0
  57. package/components/index.d.ts +2 -0
  58. package/components/index.d.ts.bak +2 -0
  59. package/components/index.js +1 -1
  60. package/components/lmvz-action-list.js +1 -1
  61. package/components/lmvz-action.js +1 -1
  62. package/components/lmvz-button-group.js +1 -1
  63. package/components/lmvz-button.js +1 -1
  64. package/components/lmvz-card.js +1 -1
  65. package/components/lmvz-checkbox.js +1 -1
  66. package/components/lmvz-chip.js +1 -1
  67. package/components/lmvz-datepicker.d.ts +11 -0
  68. package/components/lmvz-datepicker.d.ts.bak +11 -0
  69. package/components/lmvz-datepicker.js +1 -0
  70. package/components/lmvz-header.js +1 -1
  71. package/components/lmvz-icon.js +1 -1
  72. package/components/lmvz-input.js +1 -1
  73. package/components/lmvz-link.js +1 -1
  74. package/components/lmvz-menuitem.js +1 -1
  75. package/components/lmvz-message.js +1 -1
  76. package/components/lmvz-modal.js +1 -1
  77. package/components/lmvz-popover.js +1 -1
  78. package/components/lmvz-radio.js +1 -1
  79. package/components/lmvz-select.js +1 -1
  80. package/components/lmvz-snackbar.js +1 -1
  81. package/components/lmvz-spinner.js +1 -1
  82. package/components/lmvz-tab.js +1 -1
  83. package/components/lmvz-tabs.js +1 -1
  84. package/components/lmvz-toggle.js +1 -1
  85. package/components/{p-Chj7BuUZ.js → p--FDdvoIg.js} +1 -1
  86. package/components/{p-CFTmV4XZ.js → p-BAj4FkUt.js} +1 -1
  87. package/components/{p-CxLd309t.js → p-BLMXiDE0.js} +1 -1
  88. package/components/{p-DGg7OzDl.js → p-BPYBmylI.js} +1 -1
  89. package/components/p-BhALzK62.js +1 -0
  90. package/components/{p-B_rnXUwq.js → p-Bnri3fEI.js} +1 -1
  91. package/components/p-C-pRMuMh.js +1 -0
  92. package/components/p-CPuI0_r_.js +1 -0
  93. package/components/p-CWpl0WaZ.js +1 -0
  94. package/components/{p-D5FL8n1q.js → p-CrQCHVKL.js} +1 -1
  95. package/components/p-DqdrUt_G.js +1 -0
  96. package/components/{p-CgK6-SEe.js → p-diOze8wI.js} +1 -1
  97. package/esm/{aria-validation-controller-BvOU1BO8.js → aria-validation-controller-Cp6pofER.js} +1 -1
  98. package/esm/{directional-focus-controller-DgAdCZrG.js → directional-focus-controller-Bhu7RqYE.js} +3 -1
  99. package/esm/{element-activation-controller-7PNSl6io.js → element-activation-controller-BuwyVq4A.js} +1 -1
  100. package/esm/{element.util-BFcYfHYq.js → element.util-Bd9JyKJZ.js} +13 -1
  101. package/esm/{index-BPeerEwm.js → index-BOXP1Vx0.js} +12 -1
  102. package/esm/lmvz-action-list.entry.js +4 -4
  103. package/esm/lmvz-action.entry.js +1 -1
  104. package/esm/lmvz-button-group.entry.js +2 -2
  105. package/esm/lmvz-button_2.entry.js +5 -5
  106. package/esm/lmvz-card.entry.js +1 -1
  107. package/esm/lmvz-checkbox.entry.js +2 -2
  108. package/esm/lmvz-chip.entry.js +2 -2
  109. package/esm/lmvz-components.js +3 -3
  110. package/esm/lmvz-datepicker.entry.js +2762 -0
  111. package/esm/lmvz-header_2.entry.js +6 -6
  112. package/esm/{lmvz-popover.entry.js → lmvz-input_2.entry.js} +227 -9
  113. package/esm/lmvz-link.entry.js +2 -2
  114. package/esm/lmvz-menuitem.entry.js +5 -5
  115. package/esm/lmvz-message.entry.js +2 -2
  116. package/esm/lmvz-modal.entry.js +4 -4
  117. package/esm/lmvz-radio.entry.js +3 -3
  118. package/esm/lmvz-select.entry.js +3 -3
  119. package/esm/lmvz-snackbar.entry.js +2 -2
  120. package/esm/lmvz-spinner.entry.js +2 -2
  121. package/esm/lmvz-tab.entry.js +2 -2
  122. package/esm/lmvz-tabs.entry.js +4 -4
  123. package/esm/lmvz-toggle.entry.js +4 -5
  124. package/esm/loader.js +3 -3
  125. package/esm/{async.util-DZj20TV1.js → stencil.util-C3QOYC8E.js} +13 -1
  126. package/hydrate/index.js +3079 -237
  127. package/hydrate/index.mjs +3079 -237
  128. package/lmvz-components/lmvz-components.esm.js +1 -1
  129. package/lmvz-components/{p-eb62d4af.entry.js → p-0af0211a.entry.js} +1 -1
  130. package/lmvz-components/{p-0c05f24b.entry.js → p-3d5867df.entry.js} +1 -1
  131. package/lmvz-components/{p-a887018d.entry.js → p-492adf21.entry.js} +1 -1
  132. package/lmvz-components/{p-24d13be6.entry.js → p-4fa6e72f.entry.js} +1 -1
  133. package/lmvz-components/{p-5bbbcfc0.entry.js → p-544e3ccb.entry.js} +1 -1
  134. package/lmvz-components/{p-eb4c5a6f.entry.js → p-63f6a596.entry.js} +1 -1
  135. package/lmvz-components/{p-d45164a8.entry.js → p-7a7aa922.entry.js} +1 -1
  136. package/lmvz-components/{p-b6dd045b.entry.js → p-8022c6dc.entry.js} +1 -1
  137. package/lmvz-components/{p-BPeerEwm.js → p-BOXP1Vx0.js} +2 -2
  138. package/lmvz-components/p-Bd9JyKJZ.js +1 -0
  139. package/lmvz-components/{p-D9PQIBzA.js → p-BeY96W7m.js} +1 -1
  140. package/lmvz-components/p-C3QOYC8E.js +1 -0
  141. package/lmvz-components/p-GGkwaiT6.js +1 -0
  142. package/lmvz-components/{p-wlMjNjuv.js → p-UhNgD4L3.js} +1 -1
  143. package/lmvz-components/{p-d4154a65.entry.js → p-a611c110.entry.js} +1 -1
  144. package/lmvz-components/{p-46edf36f.entry.js → p-b1bb4393.entry.js} +1 -1
  145. package/lmvz-components/p-b50b1cb5.entry.js +1 -0
  146. package/lmvz-components/{p-f42b16e6.entry.js → p-b932cf91.entry.js} +1 -1
  147. package/lmvz-components/p-bff115d4.entry.js +1 -0
  148. package/lmvz-components/p-d280d21a.entry.js +1 -0
  149. package/lmvz-components/{p-c2544495.entry.js → p-d48203f9.entry.js} +1 -1
  150. package/lmvz-components/{p-e4ce63b3.entry.js → p-d9aede81.entry.js} +1 -1
  151. package/lmvz-components/{p-ecbd9e93.entry.js → p-dbfbcb74.entry.js} +1 -1
  152. package/lmvz-components/{p-fbf066d9.entry.js → p-f0e28f3a.entry.js} +1 -1
  153. package/lmvz-components/{p-aaa7691c.entry.js → p-f853faae.entry.js} +1 -1
  154. package/lmvz-components/p-fa2efc42.entry.js +1 -0
  155. package/lmvz-components/{p-194a3af5.entry.js → p-fe6f5bdc.entry.js} +1 -1
  156. package/manifest.json +940 -159
  157. package/package.json +5 -1
  158. package/types/api/ds.constants.d.ts +0 -1
  159. package/types/api/ds.types.d.ts +8 -0
  160. package/types/components/lmvz-action/lmvz-action.d.ts +0 -1
  161. package/types/components/lmvz-action-list/lmvz-action-list.d.ts +0 -1
  162. package/types/components/lmvz-button/lmvz-button.d.ts +0 -1
  163. package/types/components/lmvz-button-group/lmvz-button-group.d.ts +0 -1
  164. package/types/components/lmvz-card/lmvz-card.d.ts +0 -1
  165. package/types/components/lmvz-checkbox/lmvz-checkbox.d.ts +0 -1
  166. package/types/components/lmvz-chip/lmvz-chip.d.ts +0 -1
  167. package/types/components/lmvz-datepicker/lmvz-datepicker.d.ts +75 -0
  168. package/types/components/lmvz-datepicker/lmvz-datepicker.utils.d.ts +22 -0
  169. package/types/components/lmvz-datepicker/test/lmvz-datepicker.utils.unit.d.ts +1 -0
  170. package/types/components/lmvz-header/lmvz-header.d.ts +0 -1
  171. package/types/components/lmvz-icon/lmvz-icon.d.ts +0 -1
  172. package/types/components/lmvz-input/lmvz-input.d.ts +5 -1
  173. package/types/components/lmvz-link/lmvz-link.d.ts +0 -1
  174. package/types/components/lmvz-menuitem/lmvz-menuitem.d.ts +0 -1
  175. package/types/components/lmvz-message/lmvz-message.d.ts +0 -1
  176. package/types/components/lmvz-message/public.d.ts +0 -1
  177. package/types/components/lmvz-modal/lmvz-modal.d.ts +0 -1
  178. package/types/components/lmvz-modal/test/testing.d.ts +0 -1
  179. package/types/components/lmvz-popover/lmvz-popover.d.ts +0 -1
  180. package/types/components/lmvz-radio/lmvz-radio.d.ts +0 -1
  181. package/types/components/lmvz-select/lmvz-select.d.ts +0 -1
  182. package/types/components/lmvz-snackbar/lmvz-snackbar.d.ts +0 -1
  183. package/types/components/lmvz-snackbar/public.d.ts +0 -1
  184. package/types/components/lmvz-snackbar/snackbar-controller.d.ts +0 -1
  185. package/types/components/lmvz-spinner/lmvz-spinner.d.ts +0 -1
  186. package/types/components/lmvz-tab/lmvz-tab.d.ts +0 -1
  187. package/types/components/lmvz-tabs/lmvz-tabs.d.ts +0 -1
  188. package/types/components/lmvz-toggle/lmvz-toggle.d.ts +0 -1
  189. package/types/components.d.ts +216 -0
  190. package/types/index.d.ts +0 -1
  191. package/types/utils/aria/aria-validation-controller.d.ts +0 -1
  192. package/types/utils/aria/aria.constants.d.ts +1 -1
  193. package/types/utils/aria/directional-focus-controller.d.ts +0 -1
  194. package/types/utils/aria/element-activation-controller.d.ts +0 -1
  195. package/types/utils/async/async.util.d.ts +1 -2
  196. package/types/utils/data/event.util.d.ts +0 -1
  197. package/types/utils/data/number.util.d.ts +0 -1
  198. package/types/utils/data/object.util.d.ts +0 -1
  199. package/types/utils/data/time.util.d.ts +0 -1
  200. package/types/utils/element/element.util.d.ts +1 -1
  201. package/types/utils/environment.d.ts +0 -1
  202. package/types/utils/icons/icons-registry.d.ts +0 -1
  203. package/types/utils/icons/icons.d.ts +0 -1
  204. package/types/utils/icons/icons.unit.d.ts +0 -1
  205. package/types/utils/icons/public.d.ts +0 -1
  206. package/types/utils/public.d.ts +0 -1
  207. package/types/utils/radio/radio-group-controller.d.ts +0 -1
  208. package/types/utils/stencil/assets.d.ts +0 -1
  209. package/types/utils/stencil/reactive-controller-host.d.ts +0 -1
  210. package/types/utils/stencil/stencil.util.d.ts +0 -1
  211. package/cjs/lmvz-input.cjs.entry.js +0 -186
  212. package/cjs/stencil.util-CBrPLd-F.js +0 -17
  213. package/components/p-DLUsBYJH.js +0 -1
  214. package/components/p-zMWemcoB.js +0 -1
  215. package/esm/lmvz-input.entry.js +0 -184
  216. package/esm/stencil.util-D2-5rsN3.js +0 -15
  217. package/lmvz-components/p-5ff55ba9.entry.js +0 -1
  218. package/lmvz-components/p-888e04d7.entry.js +0 -1
  219. package/lmvz-components/p-9dc420e2.entry.js +0 -1
  220. package/lmvz-components/p-BFcYfHYq.js +0 -1
  221. package/lmvz-components/p-BuEA0MWd.js +0 -1
  222. package/lmvz-components/p-DZj20TV1.js +0 -1
  223. package/lmvz-components/p-bh9cItsP.js +0 -1
  224. package/lmvz-components/p-c3e62aba.entry.js +0 -1
@@ -1 +1 @@
1
- import{g as r,r as e,c as o,h as t,H as i}from"./p-BPeerEwm.js";import{A as a}from"./p-D9PQIBzA.js";import{R as s}from"./p-CICeIanv.js";import"./p-BDonpCG8.js";function l(r){return r.el.shadowRoot?.querySelector("input")??r.el.querySelector("input")??null}class c{hosts=[];_focusedHost=null;_focusinHandler=r=>{this.hosts.some((e=>e.el.contains(r.target)))||this.clearFocused()};register(r){if(!this.hosts.includes(r)){const e=0===this.hosts.length;this.hosts.push(r),this.sortHosts(),e&&document.addEventListener("focusin",this._focusinHandler,!0)}}unregister(r){r===this._focusedHost&&(this._focusedHost=null),this.hosts=this.hosts.filter((e=>e!==r)),0===this.hosts.length&&document.removeEventListener("focusin",this._focusinHandler,!0)}get sortedEnabled(){return this.hosts.filter((r=>!r.disabled))}setFocused(r){this._focusedHost=r,this.updateTabindex(),r.focusInput()}clearFocused(){this._focusedHost=null,this.updateTabindex()}select(r){this._focusedHost=null;for(const e of this.hosts)e.checked=e===r;this.updateTabindex()}updateTabindex(){const r=this.sortedEnabled,e=this.hosts.find((r=>r.checked));let o;o=this._focusedHost&&r.includes(this._focusedHost)?this._focusedHost:e??r[0]??null;for(const r of this.hosts){const e=l(r);e&&(e.tabIndex=r===o?0:-1)}}sortHosts(){this.hosts.sort(((r,e)=>r.el.compareDocumentPosition(e.el)&Node.DOCUMENT_POSITION_FOLLOWING?-1:1))}}class d{host;static registry=new Map;group=null;_groupKey=null;_scope=null;constructor(r){this.host=r}hostConnected(){const{group:r,key:e,scope:o}=d.acquireGroup(this.host);this._groupKey=e,this._scope=o,this.group=r,this.group.register(this.host),this.group.updateTabindex()}hostDidRender(){this.group?.updateTabindex()}hostDisconnected(){this.group&&(this.group.unregister(this.host),this.group.updateTabindex(),d.releaseGroup(this._groupKey,this._scope),this._groupKey=null,this._scope=null,this.group=null)}get sortedEnabled(){return this.group?.sortedEnabled??[]}select(r){this.group?.select(r)}setFocused(r){this.group?.setFocused(r)}clearFocused(){this.group?.clearFocused()}updateTabindex(){this.group?.updateTabindex()}static acquireGroup(r){const e=r.name;if(!e)return{group:new c,key:null,scope:null};const o=r.el.closest("form")??document,t=function(r,e){return e instanceof HTMLFormElement?(e.dataset.lmvzRadioGroupId||(e.dataset.lmvzRadioGroupId=String(Math.random())),`${r}::form::${e.dataset.lmvzRadioGroupId}`):`${r}::document`}(e,o);let i=d.registry.get(t);return i||(i={group:new c,refCount:0},d.registry.set(t,i)),i.refCount++,{group:i.group,key:t,scope:o}}static releaseGroup(r,e){if(!r)return;const o=d.registry.get(r);o&&(o.refCount--,o.refCount<=0&&(d.registry.delete(r),e instanceof HTMLFormElement&&e.removeAttribute("data-lmvz-radio-group-id")))}}let n=0;const h=class extends s{get el(){return r(this)}get validationEl(){return this.el}internals;nativeInput;radioId="lmvz-radio-"+n++;initialChecked=!1;radioGroupController;get helperId(){return this.helperText?`${this.radioId}-helper`:void 0}label;checked=!1;value="on";name;disabled=!1;required=!1;error=!1;helperText;form;autofocus=!1;_handlingNativeChange=!1;_handlingFormReset=!1;handleCheckedChange(r,e){this.internals.setFormValue?.(r?this.value:null),r||!e||this._handlingNativeChange||this._handlingFormReset||this.lmvzChange.emit(!1),!r||e||this._handlingNativeChange||this._handlingFormReset||this.lmvzChange.emit(!0)}handleValueChange(r){this.checked&&this.internals.setFormValue?.(r)}handleLabelChange(r){r||console.warn("[lmvz-radio] label prop is required and must not be empty")}lmvzChange;lmvzActivation;async focusInput(){this.nativeInput?.focus()}async checkValidity(){return this.internals?.checkValidity()??!0}async reportValidity(){return this.internals?.reportValidity()??!0}constructor(r){super(),e(this,r),this.lmvzChange=o(this,"lmvzChange",7),this.lmvzActivation=o(this,"lmvzActivation",7),r.$hostElement$["s-ei"]?this.internals=r.$hostElement$["s-ei"]:(this.internals=r.$hostElement$.attachInternals(),r.$hostElement$["s-ei"]=this.internals),this.addController(new a(this,{reValidateOnPropChanges:!0})),this.radioGroupController=new d(this),this.addController(this.radioGroupController)}componentWillLoad(){this.initialChecked=this.checked,this.internals.setFormValue?.(this.checked?this.value:null),super.componentWillLoad()}formAssociatedCallback(){this.internals.setFormValue?.(this.checked?this.value:null)}formResetCallback(){this._handlingFormReset=!0;try{this.checked=this.initialChecked}finally{this._handlingFormReset=!1}}formStateRestoreCallback(r){if("string"==typeof r){this._handlingFormReset=!0;try{this.checked=r===this.value}finally{this._handlingFormReset=!1}}}handleChange=r=>{this._handlingNativeChange=!0;try{this.checked=r.target.checked,this.lmvzChange.emit(this.checked),this.radioGroupController.select(this),this.lmvzActivation.emit()}finally{this._handlingNativeChange=!1}};handleKeydown(r){const{key:e}=r;if(!["ArrowDown","ArrowRight","ArrowUp","ArrowLeft","Home","End"].includes(e))return;r.preventDefault();const o=this.radioGroupController.sortedEnabled;if(0===o.length)return;const t=o.indexOf(this);if(-1===t)return;let i;i="ArrowDown"===e||"ArrowRight"===e?(t+1)%o.length:"ArrowUp"===e||"ArrowLeft"===e?(t-1+o.length)%o.length:"Home"===e?0:o.length-1;const a=o[i];a&&this.radioGroupController.setFocused(a)}render(){return t(i,{key:"c233b8f8e67016dd9a8622359bd91d3193735438"},t("input",{key:"6a0a028f4ae346b60f86109d33058f7a04f0f2f8",type:"radio",id:this.radioId,name:this.name??void 0,value:this.value,checked:this.checked,disabled:this.disabled,required:this.required,autoFocus:this.autofocus,"aria-invalid":this.error?"true":void 0,"aria-describedby":this.helperId,ref:r=>this.nativeInput=r,onChange:this.handleChange}),t("span",{key:"f86096dd776236e07292dab77a37aeedffb8d8d4",class:"circle","aria-hidden":"true"},this.checked&&t("span",{key:"8e93beefee742af62775d4d5945df8d13adb739f",class:"dot"})),t("span",{key:"19df96e6d015d0f74c96781ae49191a542a4f41d",class:"content"},t("label",{key:"b678b54ca139191ff78d5f503b73ea407eeb0708",htmlFor:this.radioId},this.label),t("span",{key:"4a1e8a60594e959cb5549dd20b3d35a715ce1d99","aria-live":"polite",class:"helper-text",id:this.helperId},this.helperText)))}static get formAssociated(){return!0}static get watchers(){return{checked:[{handleCheckedChange:0}],value:[{handleValueChange:0}],label:[{handleLabelChange:0}]}}};h.style="@layer lmvz-ds.reset, lmvz-ds.theme, lmvz-ds.components, lmvz-ds.overrides; @layer lmvz-ds.theme { @font-face { font-family: Router; src: local('RouterBook-Regular'), local('Router-Book'), url('/assets/fonts/Router-Book.woff') format('woff'); font-weight: 400; } @font-face { font-family: Router; src: local('RouterMedium-Regular'), local('Router-Medium'), url('/assets/fonts/Router-Medium.woff') format('woff'); font-weight: 500; } @font-face { font-family: Router; src: local('RouterBold-Regular'), local('Router-Bold'), url('/assets/fonts/Router-Bold.woff') format('woff'); font-weight: 700; } } .sc-lmvz-radio-h { display: inline-block; --radio-circle-size: var(--lmvz-global-s18, 18px); --radio-dot-size: 0.5rem; --radio-bg: var(--lmvz-semantic-color-surface-input-primary, #ffffff); --radio-border-color: var(--lmvz-semantic-color-border-default, #e0e0e0); --radio-border-color-hover: var(--lmvz-semantic-color-border-hover, #a1a1a1); --radio-border-color-checked: var(--lmvz-semantic-color-border-active, #0f8acc); --radio-border-color-error: var(--lmvz-semantic-color-status-on-danger, #a31419); --radio-dot-color: var(--lmvz-semantic-color-border-active, #0f8acc); --radio-wrapper-bg-hover: var(--lmvz-semantic-color-int-tertiary-hover, #f0f0f0); --radio-wrapper-bg-active: var(--lmvz-semantic-color-int-tertiary-active, #e0e0e0); --radio-label-color: var(--lmvz-semantic-color-on-surface-primary, #000000); --radio-label-color-checked: var(--lmvz-semantic-color-status-on-active, #0e7ab4); --radio-helper-color: var(--lmvz-semantic-color-on-surface-secondary, #545454); --radio-easing: var(--lmvz-global-easing-default, ease); --radio-duration: 0.2s; display: flex; align-items: center; gap: var(--lmvz-component-input-gap-md, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); padding-block: var(--lmvz-dimension-8-2, clamp(0.13rem, 0.03rem + 0.39vw, 0.5rem)); padding-inline: var(--lmvz-dimension-12-8, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); border-radius: var(--lmvz-semantic-border-radius-round, 999px); overflow: clip; cursor: pointer; background-color: transparent; position: relative; transition: background-color var(--radio-duration) var(--radio-easing); } input.sc-lmvz-radio { position: absolute; inset-block-start: var(--lmvz-dimension-8-2, clamp(0.13rem, 0.03rem + 0.39vw, 0.5rem)); inset-inline-start: var(--lmvz-dimension-10-4, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); opacity: 0; width: var(--radio-circle-size); height: var(--radio-circle-size); margin: 0; cursor: pointer; z-index: 1; } .circle.sc-lmvz-radio { width: var(--radio-circle-size); height: var(--radio-circle-size); border-radius: 50%; border: var(--lmvz-semantic-border-width-default, 1px) solid var(--radio-border-color); background-color: var(--radio-bg); pointer-events: none; flex-shrink: 0; display: flex; align-items: center; justify-content: center; box-sizing: border-box; transition: border-color var(--radio-duration) var(--radio-easing); } .dot.sc-lmvz-radio { width: var(--radio-dot-size); height: var(--radio-dot-size); border-radius: 50%; background-color: var(--radio-dot-color); } .content.sc-lmvz-radio { display: flex; flex-direction: column; overflow-wrap: break-word; min-width: 0; } label.sc-lmvz-radio { font: var(--lmvz-typography-body-md, 400 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.5 Router); color: var(--radio-label-color); cursor: pointer; transition: color var(--radio-duration) var(--radio-easing); } .helper-text.sc-lmvz-radio { display: block; font: var(--lmvz-typography-body-sm, 400 clamp(0.75rem, 0.72rem + 0.13vw, 0.88rem) / 1.5 Router); color: var(--radio-helper-color); margin-block-start: 2px; } .helper-text.sc-lmvz-radio:empty { display: none; } @media (hover: hover) { .sc-lmvz-radio-h:hover .circle.sc-lmvz-radio { border-color: var(--radio-border-color-hover); } .sc-lmvz-radio-h:hover { background-color: var(--radio-wrapper-bg-hover); } } .sc-lmvz-radio-h:active { background-color: var(--radio-wrapper-bg-active); } [checked].sc-lmvz-radio-h .circle.sc-lmvz-radio { border-color: var(--radio-border-color-checked); } [checked].sc-lmvz-radio-h label.sc-lmvz-radio { color: var(--radio-label-color-checked); } [error].sc-lmvz-radio-h .circle.sc-lmvz-radio { border-color: var(--radio-border-color-error); } [error].sc-lmvz-radio-h .helper-text.sc-lmvz-radio { color: var(--lmvz-semantic-color-status-on-danger, #a31419); } [disabled].sc-lmvz-radio-h { opacity: var(--lmvz-component-input-disabled-opacity, 40%); pointer-events: none; cursor: not-allowed; } @media (forced-colors: active) { .circle.sc-lmvz-radio { forced-color-adjust: auto; border-color: ButtonText; background-color: Field; } [checked].sc-lmvz-radio-h .circle.sc-lmvz-radio { border-color: Highlight; } .dot.sc-lmvz-radio { background-color: ButtonText; } [checked].sc-lmvz-radio-h .dot.sc-lmvz-radio { background-color: HighlightText; } }.sc-lmvz-radio-h:focus-within{outline:var(--lmvz-ds-outline, 1px solid #0e7ab4);outline-offset:var(--lmvz-ds-outline-offset, clamp(0.25rem, 0.19rem + 0.26vw, 0.5rem))}@media (forced-colors: active){.sc-lmvz-radio-h:focus-within{outline-color:Highlight;box-shadow:none}}";export{h as lmvz_radio}
1
+ import{g as r,r as e,c as o,h as t,H as i}from"./p-BOXP1Vx0.js";import{A as a}from"./p-BeY96W7m.js";import{R as s}from"./p-CICeIanv.js";import"./p-BDonpCG8.js";function l(r){return r.el.shadowRoot?.querySelector("input")??r.el.querySelector("input")??null}class c{hosts=[];_focusedHost=null;_focusinHandler=r=>{this.hosts.some((e=>e.el.contains(r.target)))||this.clearFocused()};register(r){if(!this.hosts.includes(r)){const e=0===this.hosts.length;this.hosts.push(r),this.sortHosts(),e&&document.addEventListener("focusin",this._focusinHandler,!0)}}unregister(r){r===this._focusedHost&&(this._focusedHost=null),this.hosts=this.hosts.filter((e=>e!==r)),0===this.hosts.length&&document.removeEventListener("focusin",this._focusinHandler,!0)}get sortedEnabled(){return this.hosts.filter((r=>!r.disabled))}setFocused(r){this._focusedHost=r,this.updateTabindex(),r.focusInput()}clearFocused(){this._focusedHost=null,this.updateTabindex()}select(r){this._focusedHost=null;for(const e of this.hosts)e.checked=e===r;this.updateTabindex()}updateTabindex(){const r=this.sortedEnabled,e=this.hosts.find((r=>r.checked));let o;o=this._focusedHost&&r.includes(this._focusedHost)?this._focusedHost:e??r[0]??null;for(const r of this.hosts){const e=l(r);e&&(e.tabIndex=r===o?0:-1)}}sortHosts(){this.hosts.sort(((r,e)=>r.el.compareDocumentPosition(e.el)&Node.DOCUMENT_POSITION_FOLLOWING?-1:1))}}class n{host;static registry=new Map;group=null;_groupKey=null;_scope=null;constructor(r){this.host=r}hostConnected(){const{group:r,key:e,scope:o}=n.acquireGroup(this.host);this._groupKey=e,this._scope=o,this.group=r,this.group.register(this.host),this.group.updateTabindex()}hostDidRender(){this.group?.updateTabindex()}hostDisconnected(){this.group&&(this.group.unregister(this.host),this.group.updateTabindex(),n.releaseGroup(this._groupKey,this._scope),this._groupKey=null,this._scope=null,this.group=null)}get sortedEnabled(){return this.group?.sortedEnabled??[]}select(r){this.group?.select(r)}setFocused(r){this.group?.setFocused(r)}clearFocused(){this.group?.clearFocused()}updateTabindex(){this.group?.updateTabindex()}static acquireGroup(r){const e=r.name;if(!e)return{group:new c,key:null,scope:null};const o=r.el.closest("form")??document,t=function(r,e){return e instanceof HTMLFormElement?(e.dataset.lmvzRadioGroupId||(e.dataset.lmvzRadioGroupId=String(Math.random())),`${r}::form::${e.dataset.lmvzRadioGroupId}`):`${r}::document`}(e,o);let i=n.registry.get(t);return i||(i={group:new c,refCount:0},n.registry.set(t,i)),i.refCount++,{group:i.group,key:t,scope:o}}static releaseGroup(r,e){if(!r)return;const o=n.registry.get(r);o&&(o.refCount--,o.refCount<=0&&(n.registry.delete(r),e instanceof HTMLFormElement&&e.removeAttribute("data-lmvz-radio-group-id")))}}let d=0;const h=class extends s{get el(){return r(this)}get validationEl(){return this.el}internals;nativeInput;radioId="lmvz-radio-"+d++;initialChecked=!1;radioGroupController;get helperId(){return this.helperText?`${this.radioId}-helper`:void 0}label;checked=!1;value="on";name;disabled=!1;required=!1;error=!1;helperText;form;autofocus=!1;_handlingNativeChange=!1;_handlingFormReset=!1;handleCheckedChange(r,e){this.internals.setFormValue?.(r?this.value:null),r||!e||this._handlingNativeChange||this._handlingFormReset||this.lmvzChange.emit(!1),!r||e||this._handlingNativeChange||this._handlingFormReset||this.lmvzChange.emit(!0)}handleValueChange(r){this.checked&&this.internals.setFormValue?.(r)}handleLabelChange(r){r||console.warn("[lmvz-radio] label prop is required and must not be empty")}lmvzChange;lmvzActivation;async focusInput(){this.nativeInput?.focus()}async checkValidity(){return this.internals?.checkValidity()??!0}async reportValidity(){return this.internals?.reportValidity()??!0}constructor(r){super(),e(this,r),this.lmvzChange=o(this,"lmvzChange",7),this.lmvzActivation=o(this,"lmvzActivation",7),r.$hostElement$["s-ei"]?this.internals=r.$hostElement$["s-ei"]:(this.internals=r.$hostElement$.attachInternals(),r.$hostElement$["s-ei"]=this.internals),this.addController(new a(this,{reValidateOnPropChanges:!0})),this.radioGroupController=new n(this),this.addController(this.radioGroupController)}componentWillLoad(){this.initialChecked=this.checked,this.internals.setFormValue?.(this.checked?this.value:null),super.componentWillLoad()}formAssociatedCallback(){this.internals.setFormValue?.(this.checked?this.value:null)}formResetCallback(){this._handlingFormReset=!0;try{this.checked=this.initialChecked}finally{this._handlingFormReset=!1}}formStateRestoreCallback(r){if("string"==typeof r){this._handlingFormReset=!0;try{this.checked=r===this.value}finally{this._handlingFormReset=!1}}}handleChange=r=>{this._handlingNativeChange=!0;try{this.checked=r.target.checked,this.lmvzChange.emit(this.checked),this.radioGroupController.select(this),this.lmvzActivation.emit()}finally{this._handlingNativeChange=!1}};handleKeydown(r){const{key:e}=r;if(!["ArrowDown","ArrowRight","ArrowUp","ArrowLeft","Home","End"].includes(e))return;r.preventDefault();const o=this.radioGroupController.sortedEnabled;if(0===o.length)return;const t=o.indexOf(this);if(-1===t)return;let i;i="ArrowDown"===e||"ArrowRight"===e?(t+1)%o.length:"ArrowUp"===e||"ArrowLeft"===e?(t-1+o.length)%o.length:"Home"===e?0:o.length-1;const a=o[i];a&&this.radioGroupController.setFocused(a)}render(){return t(i,{key:"cb2db48956ca781f226fbbddcf1d8ea819f9192a"},t("input",{key:"ec208dbaa714ae015415370b0d38ef916955b023",type:"radio",id:this.radioId,name:this.name??void 0,value:this.value,checked:this.checked,disabled:this.disabled,required:this.required,autoFocus:this.autofocus,"aria-invalid":this.error?"true":void 0,"aria-describedby":this.helperId,ref:r=>this.nativeInput=r,onChange:this.handleChange}),t("span",{key:"ef8221077d410d59248ce30678989f6bf7fbbebb",class:"circle","aria-hidden":"true"},this.checked&&t("span",{key:"7faa45b58d39f05f64a7782329046fe07b0c2a98",class:"dot"})),t("span",{key:"e508b4bf061ab0e038df7c169a80285bb7930dc3",class:"content"},t("label",{key:"8117be47e7b0ae9cc17bab21bb7cc5d9300d2146",htmlFor:this.radioId},this.label),t("span",{key:"44ab845ee18415b54fb5d23e533f85644f4e5e50","aria-live":"polite",class:"helper-text",id:this.helperId},this.helperText)))}static get formAssociated(){return!0}static get watchers(){return{checked:[{handleCheckedChange:0}],value:[{handleValueChange:0}],label:[{handleLabelChange:0}]}}};h.style="@layer lmvz-ds.reset, lmvz-ds.theme, lmvz-ds.components, lmvz-ds.overrides; @layer lmvz-ds.theme { @font-face { font-family: Router; src: local('RouterBook-Regular'), local('Router-Book'), url('/assets/fonts/Router-Book.woff') format('woff'); font-weight: 400; } @font-face { font-family: Router; src: local('RouterMedium-Regular'), local('Router-Medium'), url('/assets/fonts/Router-Medium.woff') format('woff'); font-weight: 500; } @font-face { font-family: Router; src: local('RouterBold-Regular'), local('Router-Bold'), url('/assets/fonts/Router-Bold.woff') format('woff'); font-weight: 700; } } .sc-lmvz-radio-h { display: inline-block; --radio-circle-size: var(--lmvz-global-s18, 18px); --radio-dot-size: 0.5rem; --radio-bg: var(--lmvz-semantic-color-surface-input-primary, #ffffff); --radio-border-color: var(--lmvz-semantic-color-border-default, #e0e0e0); --radio-border-color-hover: var(--lmvz-semantic-color-border-hover, #a1a1a1); --radio-border-color-checked: var(--lmvz-semantic-color-border-active, #0f8acc); --radio-border-color-error: var(--lmvz-semantic-color-status-on-danger, #a31419); --radio-dot-color: var(--lmvz-semantic-color-border-active, #0f8acc); --radio-wrapper-bg-hover: var(--lmvz-semantic-color-int-tertiary-hover, #f0f0f0); --radio-wrapper-bg-active: var(--lmvz-semantic-color-int-tertiary-active, #e0e0e0); --radio-label-color: var(--lmvz-semantic-color-on-surface-primary, #000000); --radio-label-color-checked: var(--lmvz-semantic-color-status-on-active, #0e7ab4); --radio-helper-color: var(--lmvz-semantic-color-on-surface-secondary, #545454); --radio-easing: var(--lmvz-global-easing-default, ease); --radio-duration: 0.2s; display: flex; align-items: center; gap: var(--lmvz-component-input-gap-md, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); padding-block: var(--lmvz-dimension-8-2, clamp(0.13rem, 0.03rem + 0.39vw, 0.5rem)); padding-inline: var(--lmvz-dimension-12-8, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); border-radius: var(--lmvz-semantic-border-radius-round, 999px); overflow: clip; cursor: pointer; background-color: transparent; position: relative; transition: background-color var(--radio-duration) var(--radio-easing); } input.sc-lmvz-radio { position: absolute; inset-block-start: var(--lmvz-dimension-8-2, clamp(0.13rem, 0.03rem + 0.39vw, 0.5rem)); inset-inline-start: var(--lmvz-dimension-10-4, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); opacity: 0; width: var(--radio-circle-size); height: var(--radio-circle-size); margin: 0; cursor: pointer; z-index: 1; } .circle.sc-lmvz-radio { width: var(--radio-circle-size); height: var(--radio-circle-size); border-radius: 50%; border: var(--lmvz-semantic-border-width-default, 1px) solid var(--radio-border-color); background-color: var(--radio-bg); pointer-events: none; flex-shrink: 0; display: flex; align-items: center; justify-content: center; box-sizing: border-box; transition: border-color var(--radio-duration) var(--radio-easing); } .dot.sc-lmvz-radio { width: var(--radio-dot-size); height: var(--radio-dot-size); border-radius: 50%; background-color: var(--radio-dot-color); } .content.sc-lmvz-radio { display: flex; flex-direction: column; overflow-wrap: break-word; min-width: 0; } label.sc-lmvz-radio { font: var(--lmvz-typography-body-md, 400 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.5 Router); color: var(--radio-label-color); cursor: pointer; transition: color var(--radio-duration) var(--radio-easing); } .helper-text.sc-lmvz-radio { display: block; font: var(--lmvz-typography-body-sm, 400 clamp(0.75rem, 0.72rem + 0.13vw, 0.88rem) / 1.5 Router); color: var(--radio-helper-color); margin-block-start: 2px; } .helper-text.sc-lmvz-radio:empty { display: none; } @media (hover: hover) { .sc-lmvz-radio-h:hover .circle.sc-lmvz-radio { border-color: var(--radio-border-color-hover); } .sc-lmvz-radio-h:hover { background-color: var(--radio-wrapper-bg-hover); } } .sc-lmvz-radio-h:active { background-color: var(--radio-wrapper-bg-active); } [checked].sc-lmvz-radio-h .circle.sc-lmvz-radio { border-color: var(--radio-border-color-checked); } [checked].sc-lmvz-radio-h label.sc-lmvz-radio { color: var(--radio-label-color-checked); } [error].sc-lmvz-radio-h .circle.sc-lmvz-radio { border-color: var(--radio-border-color-error); } [error].sc-lmvz-radio-h .helper-text.sc-lmvz-radio { color: var(--lmvz-semantic-color-status-on-danger, #a31419); } [disabled].sc-lmvz-radio-h { opacity: var(--lmvz-component-input-disabled-opacity, 40%); pointer-events: none; cursor: not-allowed; } @media (forced-colors: active) { .circle.sc-lmvz-radio { forced-color-adjust: auto; border-color: ButtonText; background-color: Field; } [checked].sc-lmvz-radio-h .circle.sc-lmvz-radio { border-color: Highlight; } .dot.sc-lmvz-radio { background-color: ButtonText; } [checked].sc-lmvz-radio-h .dot.sc-lmvz-radio { background-color: HighlightText; } }.sc-lmvz-radio-h:focus-within{outline:var(--lmvz-ds-outline, 1px solid #0e7ab4);outline-offset:var(--lmvz-ds-outline-offset, clamp(0.25rem, 0.19rem + 0.26vw, 0.5rem))}@media (forced-colors: active){.sc-lmvz-radio-h:focus-within{outline-color:Highlight;box-shadow:none}}";export{h as lmvz_radio}