@synergy-design-system/components 1.7.0 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -0
- package/dist/chunks/{chunk.23HTU3YE.js → chunk.2EI3TNL7.js} +1 -16
- package/dist/chunks/chunk.2EI3TNL7.js.map +7 -0
- package/dist/chunks/{chunk.RSONAU45.js → chunk.2RF7KO5I.js} +1 -12
- package/dist/chunks/chunk.2RF7KO5I.js.map +7 -0
- package/dist/chunks/{chunk.GHMKOVA3.js → chunk.3DE5ARIC.js} +23 -3
- package/dist/chunks/chunk.3DE5ARIC.js.map +7 -0
- package/dist/chunks/chunk.3O5WTWSN.js +12 -0
- package/dist/chunks/chunk.3O5WTWSN.js.map +7 -0
- package/dist/chunks/{chunk.MFFJYORB.js → chunk.3STW62TA.js} +1 -12
- package/dist/chunks/chunk.3STW62TA.js.map +7 -0
- package/dist/chunks/{chunk.EKOK7YPB.js → chunk.4QS5IWYB.js} +1 -16
- package/dist/chunks/chunk.4QS5IWYB.js.map +7 -0
- package/dist/chunks/{chunk.ULMZHWWW.js → chunk.5BMNRZ7L.js} +2 -2
- package/dist/chunks/{chunk.SMSP5C6C.js → chunk.5CB3CVZ7.js} +2 -2
- package/dist/chunks/{chunk.GMUVD5B2.js → chunk.5R3OVMH2.js} +25 -10
- package/dist/chunks/chunk.5R3OVMH2.js.map +7 -0
- package/dist/chunks/{chunk.EI34C7LC.js → chunk.6MS3WNDW.js} +8 -7
- package/dist/chunks/chunk.6MS3WNDW.js.map +7 -0
- package/dist/chunks/{chunk.4ZURABYO.js → chunk.A7IIJ2LL.js} +1 -7
- package/dist/chunks/{chunk.O7USYXBT.js.map → chunk.A7IIJ2LL.js.map} +3 -3
- package/dist/chunks/{chunk.PGCXJ2PT.js → chunk.ACTJFDNK.js} +1 -12
- package/dist/chunks/chunk.ACTJFDNK.js.map +7 -0
- package/dist/chunks/{chunk.MNMITYTH.js → chunk.ADRKUQGR.js} +1 -12
- package/dist/chunks/chunk.ADRKUQGR.js.map +7 -0
- package/dist/chunks/{chunk.5OPODPPZ.js → chunk.AJU6C4KC.js} +2 -2
- package/dist/chunks/{chunk.VZ7S7YYN.js → chunk.AVTU2BGE.js} +2 -2
- package/dist/chunks/{chunk.QHFGD6WW.js → chunk.BGHK4NQA.js} +1 -12
- package/dist/chunks/chunk.BGHK4NQA.js.map +7 -0
- package/dist/chunks/{chunk.LWXCBEHD.js → chunk.BGKFRWWO.js} +5 -5
- package/dist/chunks/{chunk.3ZHSSMBL.js → chunk.BJYVLDYR.js} +84 -6
- package/dist/chunks/chunk.BJYVLDYR.js.map +7 -0
- package/dist/chunks/chunk.BLOH2ZNU.js +636 -0
- package/dist/chunks/chunk.BLOH2ZNU.js.map +7 -0
- package/dist/chunks/{chunk.USYR7G7Z.js → chunk.BTZX6ZFZ.js} +2 -2
- package/dist/chunks/{chunk.W6V7TPGK.js → chunk.CFIQXXMW.js} +1 -12
- package/dist/chunks/chunk.CFIQXXMW.js.map +7 -0
- package/dist/chunks/{chunk.RA2WSKQT.js → chunk.F4THECWA.js} +2 -2
- package/dist/chunks/{chunk.Z4NKFCKY.js → chunk.FSONLJTT.js} +19 -15
- package/dist/chunks/chunk.FSONLJTT.js.map +7 -0
- package/dist/chunks/{chunk.PMTVLWNZ.js → chunk.FUNZW7ES.js} +2 -2
- package/dist/chunks/{chunk.OJREQD2D.js → chunk.GAPQVJGQ.js} +22 -14
- package/dist/chunks/chunk.GAPQVJGQ.js.map +7 -0
- package/dist/chunks/{chunk.NAX6WP3D.js → chunk.GBOII6N4.js} +11 -7
- package/dist/chunks/chunk.GBOII6N4.js.map +7 -0
- package/dist/chunks/chunk.GTSRMEPE.js +108 -0
- package/dist/chunks/chunk.GTSRMEPE.js.map +7 -0
- package/dist/chunks/{chunk.JAKJHV44.js → chunk.HF75YRVS.js} +22 -15
- package/dist/chunks/chunk.HF75YRVS.js.map +7 -0
- package/dist/chunks/{chunk.7VOPIPHW.js → chunk.IOPUYG6Q.js} +2 -2
- package/dist/chunks/{chunk.5THN2K5Q.js → chunk.IR2PZHC7.js} +2 -2
- package/dist/chunks/{chunk.SBEIXLRW.js → chunk.K3O2PP7X.js} +6 -5
- package/dist/chunks/chunk.K3O2PP7X.js.map +7 -0
- package/dist/chunks/{chunk.TUYEX4KP.js → chunk.KDDTDU4B.js} +73 -35
- package/dist/chunks/chunk.KDDTDU4B.js.map +7 -0
- package/dist/chunks/{chunk.5BOEKFIJ.js → chunk.KNXO2FGQ.js} +86 -48
- package/dist/chunks/chunk.KNXO2FGQ.js.map +7 -0
- package/dist/chunks/{chunk.HG5QC5EW.js → chunk.KUO3KJOC.js} +2 -2
- package/dist/chunks/{chunk.B6AKFQJS.js → chunk.LF2XSSHD.js} +2 -2
- package/dist/chunks/{chunk.2FN5DTS6.js → chunk.LJQ7LEPV.js} +1 -12
- package/dist/chunks/chunk.LJQ7LEPV.js.map +7 -0
- package/dist/chunks/{chunk.KP7SYG4K.js → chunk.LZE7OXKV.js} +2 -2
- package/dist/chunks/{chunk.CYN675Z6.js → chunk.MDZ22YWD.js} +12 -8
- package/dist/chunks/chunk.MDZ22YWD.js.map +7 -0
- package/dist/chunks/{chunk.JN7CLMQZ.js → chunk.MIMALEWP.js} +21 -7
- package/dist/chunks/chunk.MIMALEWP.js.map +7 -0
- package/dist/chunks/{chunk.XSXBQCWN.js → chunk.O6AXKVFJ.js} +11 -7
- package/dist/chunks/chunk.O6AXKVFJ.js.map +7 -0
- package/dist/chunks/{chunk.N2I6HVX3.js → chunk.OSBC36KQ.js} +4 -9
- package/dist/chunks/chunk.OSBC36KQ.js.map +7 -0
- package/dist/chunks/chunk.PHSJD47V.js +162 -0
- package/dist/chunks/chunk.PHSJD47V.js.map +7 -0
- package/dist/chunks/{chunk.JBYBQ5TQ.js → chunk.PKO6FEOM.js} +1 -12
- package/dist/chunks/chunk.PKO6FEOM.js.map +7 -0
- package/dist/chunks/{chunk.7KSU2SUD.js → chunk.PRZRH7SN.js} +2 -2
- package/dist/chunks/{chunk.4MYR27GF.js → chunk.PWMSNMDF.js} +13 -9
- package/dist/chunks/chunk.PWMSNMDF.js.map +7 -0
- package/dist/chunks/{chunk.BQG5LF7J.js → chunk.QAUTITK3.js} +2 -2
- package/dist/chunks/{chunk.DJOAQ4JU.js → chunk.QNDC5KWA.js} +43 -2
- package/dist/chunks/{chunk.6XU6OLZ3.js → chunk.QNQNR3RY.js} +1 -16
- package/dist/chunks/chunk.QNQNR3RY.js.map +7 -0
- package/dist/chunks/{chunk.Q7X5NOPZ.js → chunk.QY6MKIMK.js} +2 -2
- package/dist/chunks/{chunk.VQWUZKDS.js → chunk.RMQZMRVP.js} +2 -2
- package/dist/chunks/{chunk.XXF35USM.js → chunk.RMZBSKRR.js} +59 -109
- package/dist/chunks/chunk.RMZBSKRR.js.map +7 -0
- package/dist/chunks/{chunk.OJ4KOC7R.js → chunk.SJMMPKWP.js} +1 -12
- package/dist/chunks/chunk.SJMMPKWP.js.map +7 -0
- package/dist/chunks/{chunk.AMTCNRDE.js → chunk.SZCGMXW5.js} +3 -3
- package/dist/chunks/chunk.SZCGMXW5.js.map +7 -0
- package/dist/chunks/{chunk.JHXCBOUD.js → chunk.TTL762VF.js} +57 -60
- package/dist/chunks/chunk.TTL762VF.js.map +7 -0
- package/dist/chunks/chunk.UYD2OVFV.js +83 -0
- package/dist/chunks/chunk.UYD2OVFV.js.map +7 -0
- package/dist/chunks/{chunk.7EGCXNF2.js → chunk.UZFPGR6M.js} +8 -7
- package/dist/chunks/chunk.UZFPGR6M.js.map +7 -0
- package/dist/chunks/{chunk.SXW2KV3B.js → chunk.VATYXV2O.js} +2 -2
- package/dist/chunks/{chunk.AFEABUNX.js → chunk.W5JK7V7K.js} +6 -1
- package/dist/chunks/chunk.W5JK7V7K.js.map +7 -0
- package/dist/chunks/{chunk.IRT2DA6R.js → chunk.WC5SV4TV.js} +28 -18
- package/dist/chunks/chunk.WC5SV4TV.js.map +7 -0
- package/dist/chunks/{chunk.HKCTVD3U.js → chunk.XEI5ZP7Y.js} +11 -7
- package/dist/chunks/chunk.XEI5ZP7Y.js.map +7 -0
- package/dist/chunks/{chunk.4I6M5V6O.js → chunk.XIUSSERX.js} +1 -16
- package/dist/chunks/chunk.XIUSSERX.js.map +7 -0
- package/dist/chunks/{chunk.6V3HOZNE.js → chunk.Y72MIUNI.js} +2 -2
- package/dist/chunks/{chunk.IKKMWFWH.js → chunk.ZIQXX272.js} +2 -2
- package/dist/chunks/{chunk.GOVLCQY5.js → chunk.ZT5DUKVA.js} +2 -2
- package/dist/components/button/button.component.js +13 -14
- package/dist/components/button/button.custom.styles.js +1 -1
- package/dist/components/button/button.js +14 -15
- package/dist/components/button/button.styles.js +2 -4
- package/dist/components/button-group/button-group.component.js +4 -5
- package/dist/components/button-group/button-group.js +5 -6
- package/dist/components/button-group/button-group.styles.js +2 -3
- package/dist/components/checkbox/checkbox.component.d.ts +5 -0
- package/dist/components/checkbox/checkbox.component.js +12 -11
- package/dist/components/checkbox/checkbox.custom.styles.js +1 -1
- package/dist/components/checkbox/checkbox.js +13 -12
- package/dist/components/checkbox/checkbox.styles.js +2 -4
- package/dist/components/divider/divider.component.js +5 -6
- package/dist/components/divider/divider.custom.styles.js +1 -1
- package/dist/components/divider/divider.js +6 -7
- package/dist/components/divider/divider.styles.js +2 -4
- package/dist/components/drawer/drawer.component.d.ts +110 -0
- package/dist/components/drawer/drawer.component.js +27 -0
- package/dist/components/drawer/drawer.component.js.map +7 -0
- package/dist/components/drawer/drawer.custom.styles.d.ts +2 -0
- package/dist/components/drawer/drawer.custom.styles.js +8 -0
- package/dist/components/drawer/drawer.custom.styles.js.map +7 -0
- package/dist/components/drawer/drawer.d.ts +8 -0
- package/dist/components/drawer/drawer.js +28 -0
- package/dist/components/drawer/drawer.js.map +7 -0
- package/dist/components/drawer/drawer.styles.d.ts +2 -0
- package/dist/components/drawer/drawer.styles.js +8 -0
- package/dist/components/drawer/drawer.styles.js.map +7 -0
- package/dist/components/icon/icon.component.js +6 -7
- package/dist/components/icon/icon.custom.styles.js +1 -1
- package/dist/components/icon/icon.js +7 -8
- package/dist/components/icon/icon.styles.js +2 -4
- package/dist/components/icon/library.default.js +1 -1
- package/dist/components/icon/library.js +1 -1
- package/dist/components/icon/library.system.js +1 -1
- package/dist/components/icon-button/icon-button.component.js +8 -9
- package/dist/components/icon-button/icon-button.custom.styles.js +1 -1
- package/dist/components/icon-button/icon-button.js +9 -10
- package/dist/components/icon-button/icon-button.styles.js +2 -4
- package/dist/components/input/input.component.js +14 -15
- package/dist/components/input/input.custom.styles.js +1 -1
- package/dist/components/input/input.js +15 -16
- package/dist/components/input/input.styles.js +2 -5
- package/dist/components/optgroup/optgroup.component.js +6 -7
- package/dist/components/optgroup/optgroup.js +7 -8
- package/dist/components/optgroup/optgroup.styles.js +1 -1
- package/dist/components/option/option.component.js +8 -9
- package/dist/components/option/option.custom.styles.js +1 -1
- package/dist/components/option/option.js +9 -10
- package/dist/components/option/option.styles.js +2 -4
- package/dist/components/popup/popup.component.d.ts +9 -0
- package/dist/components/popup/popup.component.js +4 -5
- package/dist/components/popup/popup.styles.js +2 -3
- package/dist/components/radio/radio.component.js +8 -9
- package/dist/components/radio/radio.custom.styles.js +1 -1
- package/dist/components/radio/radio.js +9 -10
- package/dist/components/radio/radio.styles.js +2 -4
- package/dist/components/radio-button/radio-button.component.js +6 -8
- package/dist/components/radio-button/radio-button.js +7 -9
- package/dist/components/radio-button/radio-button.styles.js +3 -5
- package/dist/components/radio-group/radio-group.component.d.ts +1 -0
- package/dist/components/radio-group/radio-group.component.js +9 -10
- package/dist/components/radio-group/radio-group.custom.styles.js +1 -1
- package/dist/components/radio-group/radio-group.js +10 -11
- package/dist/components/radio-group/radio-group.styles.js +2 -5
- package/dist/components/select/select.component.d.ts +1 -0
- package/dist/components/select/select.component.js +20 -20
- package/dist/components/select/select.custom.styles.js +1 -1
- package/dist/components/select/select.js +21 -21
- package/dist/components/select/select.styles.js +2 -5
- package/dist/components/spinner/spinner.component.js +4 -5
- package/dist/components/spinner/spinner.styles.js +2 -3
- package/dist/components/switch/switch.component.d.ts +5 -0
- package/dist/components/switch/switch.component.js +9 -8
- package/dist/components/switch/switch.custom.styles.js +2 -2
- package/dist/components/switch/switch.js +10 -9
- package/dist/components/switch/switch.styles.js +2 -4
- package/dist/components/tag/tag.component.js +10 -11
- package/dist/components/tag/tag.custom.styles.js +1 -1
- package/dist/components/tag/tag.js +11 -12
- package/dist/components/tag/tag.styles.js +2 -4
- package/dist/components/textarea/textarea.component.js +8 -9
- package/dist/components/textarea/textarea.custom.styles.js +1 -1
- package/dist/components/textarea/textarea.js +9 -10
- package/dist/components/textarea/textarea.styles.js +2 -5
- package/dist/custom-elements.json +877 -351
- package/dist/events/events.d.ts +2 -0
- package/dist/events/syn-initial-focus.d.ts +6 -0
- package/dist/events/syn-request-close.d.ts +8 -0
- package/dist/internal/active-elements.d.ts +15 -0
- package/dist/internal/longpress.d.ts +2 -2
- package/dist/internal/modal.d.ts +24 -0
- package/dist/internal/string.d.ts +2 -0
- package/dist/internal/tabbable.d.ts +9 -0
- package/dist/synergy-autoloader.js +1 -1
- package/dist/synergy.d.ts +1 -0
- package/dist/synergy.js +88 -81
- package/dist/themes/utility.css +29 -0
- package/dist/translations/de.js +1 -1
- package/dist/translations/en.js +1 -1
- package/dist/utilities/animation-registry.js +2 -2
- package/dist/utilities/base-path.js +1 -1
- package/dist/utilities/form.js +3 -3
- package/dist/utilities/icon-library.js +1 -1
- package/dist/utilities/localize.js +1 -1
- package/dist/vscode.html-custom-data.json +78 -21
- package/package.json +4 -5
- package/dist/chunks/chunk.23HTU3YE.js.map +0 -7
- package/dist/chunks/chunk.2FN5DTS6.js.map +0 -7
- package/dist/chunks/chunk.3ZHSSMBL.js.map +0 -7
- package/dist/chunks/chunk.4I6M5V6O.js.map +0 -7
- package/dist/chunks/chunk.4MYR27GF.js.map +0 -7
- package/dist/chunks/chunk.4ZURABYO.js.map +0 -7
- package/dist/chunks/chunk.5BOEKFIJ.js.map +0 -7
- package/dist/chunks/chunk.6XU6OLZ3.js.map +0 -7
- package/dist/chunks/chunk.7EGCXNF2.js.map +0 -7
- package/dist/chunks/chunk.AFEABUNX.js.map +0 -7
- package/dist/chunks/chunk.AMTCNRDE.js.map +0 -7
- package/dist/chunks/chunk.CYN675Z6.js.map +0 -7
- package/dist/chunks/chunk.EI34C7LC.js.map +0 -7
- package/dist/chunks/chunk.EKOK7YPB.js.map +0 -7
- package/dist/chunks/chunk.GHMKOVA3.js.map +0 -7
- package/dist/chunks/chunk.GMUVD5B2.js.map +0 -7
- package/dist/chunks/chunk.HKCTVD3U.js.map +0 -7
- package/dist/chunks/chunk.IRT2DA6R.js.map +0 -7
- package/dist/chunks/chunk.JAKJHV44.js.map +0 -7
- package/dist/chunks/chunk.JBYBQ5TQ.js.map +0 -7
- package/dist/chunks/chunk.JHXCBOUD.js.map +0 -7
- package/dist/chunks/chunk.JN7CLMQZ.js.map +0 -7
- package/dist/chunks/chunk.MFFJYORB.js.map +0 -7
- package/dist/chunks/chunk.MNMITYTH.js.map +0 -7
- package/dist/chunks/chunk.N2I6HVX3.js.map +0 -7
- package/dist/chunks/chunk.NAX6WP3D.js.map +0 -7
- package/dist/chunks/chunk.O7USYXBT.js +0 -23
- package/dist/chunks/chunk.OJ4KOC7R.js.map +0 -7
- package/dist/chunks/chunk.OJREQD2D.js.map +0 -7
- package/dist/chunks/chunk.PGCXJ2PT.js.map +0 -7
- package/dist/chunks/chunk.QHFGD6WW.js.map +0 -7
- package/dist/chunks/chunk.RSONAU45.js.map +0 -7
- package/dist/chunks/chunk.SBEIXLRW.js.map +0 -7
- package/dist/chunks/chunk.TUYEX4KP.js.map +0 -7
- package/dist/chunks/chunk.W6V7TPGK.js.map +0 -7
- package/dist/chunks/chunk.XSXBQCWN.js.map +0 -7
- package/dist/chunks/chunk.XXF35USM.js.map +0 -7
- package/dist/chunks/chunk.Z4NKFCKY.js.map +0 -7
- package/dist/web-types.json +0 -2449
- /package/dist/chunks/{chunk.ULMZHWWW.js.map → chunk.5BMNRZ7L.js.map} +0 -0
- /package/dist/chunks/{chunk.SMSP5C6C.js.map → chunk.5CB3CVZ7.js.map} +0 -0
- /package/dist/chunks/{chunk.5OPODPPZ.js.map → chunk.AJU6C4KC.js.map} +0 -0
- /package/dist/chunks/{chunk.VZ7S7YYN.js.map → chunk.AVTU2BGE.js.map} +0 -0
- /package/dist/chunks/{chunk.LWXCBEHD.js.map → chunk.BGKFRWWO.js.map} +0 -0
- /package/dist/chunks/{chunk.USYR7G7Z.js.map → chunk.BTZX6ZFZ.js.map} +0 -0
- /package/dist/chunks/{chunk.RA2WSKQT.js.map → chunk.F4THECWA.js.map} +0 -0
- /package/dist/chunks/{chunk.PMTVLWNZ.js.map → chunk.FUNZW7ES.js.map} +0 -0
- /package/dist/chunks/{chunk.7VOPIPHW.js.map → chunk.IOPUYG6Q.js.map} +0 -0
- /package/dist/chunks/{chunk.5THN2K5Q.js.map → chunk.IR2PZHC7.js.map} +0 -0
- /package/dist/chunks/{chunk.HG5QC5EW.js.map → chunk.KUO3KJOC.js.map} +0 -0
- /package/dist/chunks/{chunk.B6AKFQJS.js.map → chunk.LF2XSSHD.js.map} +0 -0
- /package/dist/chunks/{chunk.KP7SYG4K.js.map → chunk.LZE7OXKV.js.map} +0 -0
- /package/dist/chunks/{chunk.7KSU2SUD.js.map → chunk.PRZRH7SN.js.map} +0 -0
- /package/dist/chunks/{chunk.BQG5LF7J.js.map → chunk.QAUTITK3.js.map} +0 -0
- /package/dist/chunks/{chunk.DJOAQ4JU.js.map → chunk.QNDC5KWA.js.map} +0 -0
- /package/dist/chunks/{chunk.Q7X5NOPZ.js.map → chunk.QY6MKIMK.js.map} +0 -0
- /package/dist/chunks/{chunk.VQWUZKDS.js.map → chunk.RMQZMRVP.js.map} +0 -0
- /package/dist/chunks/{chunk.SXW2KV3B.js.map → chunk.VATYXV2O.js.map} +0 -0
- /package/dist/chunks/{chunk.6V3HOZNE.js.map → chunk.Y72MIUNI.js.map} +0 -0
- /package/dist/chunks/{chunk.IKKMWFWH.js.map → chunk.ZIQXX272.js.map} +0 -0
- /package/dist/chunks/{chunk.GOVLCQY5.js.map → chunk.ZT5DUKVA.js.map} +0 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/internal/animate.ts", "../../src/internal/offset.ts", "../../src/internal/scroll.ts", "../../src/internal/event.ts"],
|
|
4
|
+
"sourcesContent": ["// ---------------------------------------------------------------------\n// \uD83D\uDD12 AUTOGENERATED BY VENDORISM\n// Removing this comment will prevent it from being managed by it.\n// ---------------------------------------------------------------------\n\n/* eslint-disable */\n/**\n * Animates an element using keyframes. Returns a promise that resolves after the animation completes or gets canceled.\n */\nexport function animateTo(el: HTMLElement, keyframes: Keyframe[], options?: KeyframeAnimationOptions) {\n return new Promise(resolve => {\n if (options?.duration === Infinity) {\n throw new Error('Promise-based animations must be finite.');\n }\n\n const animation = el.animate(keyframes, {\n ...options,\n duration: prefersReducedMotion() ? 0 : options!.duration\n });\n\n animation.addEventListener('cancel', resolve, { once: true });\n animation.addEventListener('finish', resolve, { once: true });\n });\n}\n\n/** Parses a CSS duration and returns the number of milliseconds. */\nexport function parseDuration(delay: number | string) {\n delay = delay.toString().toLowerCase();\n\n if (delay.indexOf('ms') > -1) {\n return parseFloat(delay);\n }\n\n if (delay.indexOf('s') > -1) {\n return parseFloat(delay) * 1000;\n }\n\n return parseFloat(delay);\n}\n\n/** Tells if the user has enabled the \"reduced motion\" setting in their browser or OS. */\nexport function prefersReducedMotion() {\n const query = window.matchMedia('(prefers-reduced-motion: reduce)');\n return query.matches;\n}\n\n/**\n * Stops all active animations on the target element. Returns a promise that resolves after all animations are canceled.\n */\nexport function stopAnimations(el: HTMLElement) {\n return Promise.all(\n el.getAnimations().map(animation => {\n return new Promise(resolve => {\n animation.cancel();\n requestAnimationFrame(resolve);\n });\n })\n );\n}\n\n/**\n * We can't animate `height: auto`, but we can calculate the height and shim keyframes by replacing it with the\n * element's scrollHeight before the animation.\n */\nexport function shimKeyframesHeightAuto(keyframes: Keyframe[], calculatedHeight: number) {\n return keyframes.map(keyframe => ({\n ...keyframe,\n height: keyframe.height === 'auto' ? `${calculatedHeight}px` : keyframe.height\n }));\n}\n", "// ---------------------------------------------------------------------\n// \uD83D\uDD12 AUTOGENERATED BY VENDORISM\n// Removing this comment will prevent it from being managed by it.\n// ---------------------------------------------------------------------\n\n/* eslint-disable */\n/**\n * Returns an element's offset relative to its parent. Similar to element.offsetTop and element.offsetLeft, except the\n * parent doesn't have to be positioned relative or absolute.\n *\n * NOTE: This was created to work around what appears to be a bug in Chrome where a slotted element's offsetParent seems\n * to ignore elements inside the surrounding shadow DOM: https://bugs.chromium.org/p/chromium/issues/detail?id=920069\n */\nexport function getOffset(element: HTMLElement, parent: HTMLElement) {\n return {\n top: Math.round(element.getBoundingClientRect().top - parent.getBoundingClientRect().top),\n left: Math.round(element.getBoundingClientRect().left - parent.getBoundingClientRect().left)\n };\n}\n", "// ---------------------------------------------------------------------\n// \uD83D\uDD12 AUTOGENERATED BY VENDORISM\n// Removing this comment will prevent it from being managed by it.\n// ---------------------------------------------------------------------\n\n/* eslint-disable */\nimport { getOffset } from './offset.js';\n\nconst locks = new Set();\n\n/** Returns the width of the document's scrollbar */\nfunction getScrollbarWidth() {\n const documentWidth = document.documentElement.clientWidth;\n return Math.abs(window.innerWidth - documentWidth);\n}\n\n/**\n * Prevents body scrolling. Keeps track of which elements requested a lock so multiple levels of locking are possible\n * without premature unlocking.\n */\nexport function lockBodyScrolling(lockingEl: HTMLElement) {\n locks.add(lockingEl);\n\n // When the first lock is created, set the scroll lock size to match the scrollbar's width to prevent content from\n // shifting. We only do this on the first lock because the scrollbar width will measure zero after overflow is hidden.\n if (!document.body.classList.contains('syn-scroll-lock')) {\n const scrollbarWidth = getScrollbarWidth(); // must be measured before the `syn-scroll-lock` class is applied\n document.body.classList.add('syn-scroll-lock');\n document.body.style.setProperty('--syn-scroll-lock-size', `${scrollbarWidth}px`);\n }\n}\n\n/**\n * Unlocks body scrolling. Scrolling will only be unlocked once all elements that requested a lock call this method.\n */\nexport function unlockBodyScrolling(lockingEl: HTMLElement) {\n locks.delete(lockingEl);\n\n if (locks.size === 0) {\n document.body.classList.remove('syn-scroll-lock');\n document.body.style.removeProperty('--syn-scroll-lock-size');\n }\n}\n\n/** Scrolls an element into view of its container. If the element is already in view, nothing will happen. */\nexport function scrollIntoView(\n element: HTMLElement,\n container: HTMLElement,\n direction: 'horizontal' | 'vertical' | 'both' = 'vertical',\n behavior: 'smooth' | 'auto' = 'smooth'\n) {\n const offset = getOffset(element, container);\n const offsetTop = offset.top + container.scrollTop;\n const offsetLeft = offset.left + container.scrollLeft;\n const minX = container.scrollLeft;\n const maxX = container.scrollLeft + container.offsetWidth;\n const minY = container.scrollTop;\n const maxY = container.scrollTop + container.offsetHeight;\n\n if (direction === 'horizontal' || direction === 'both') {\n if (offsetLeft < minX) {\n container.scrollTo({ left: offsetLeft, behavior });\n } else if (offsetLeft + element.clientWidth > maxX) {\n container.scrollTo({ left: offsetLeft - container.offsetWidth + element.clientWidth, behavior });\n }\n }\n\n if (direction === 'vertical' || direction === 'both') {\n if (offsetTop < minY) {\n container.scrollTo({ top: offsetTop, behavior });\n } else if (offsetTop + element.clientHeight > maxY) {\n container.scrollTo({ top: offsetTop - container.offsetHeight + element.clientHeight, behavior });\n }\n }\n}\n", "// ---------------------------------------------------------------------\n// \uD83D\uDD12 AUTOGENERATED BY VENDORISM\n// Removing this comment will prevent it from being managed by it.\n// ---------------------------------------------------------------------\n\n/* eslint-disable */\n/** Waits for a specific event to be emitted from an element. Ignores events that bubble up from child elements. */\nexport function waitForEvent(el: HTMLElement, eventName: string) {\n return new Promise<void>(resolve => {\n function done(event: Event) {\n if (event.target === el) {\n el.removeEventListener(eventName, done);\n resolve();\n }\n }\n\n el.addEventListener(eventName, done);\n });\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,24 +1,32 @@
|
|
|
1
1
|
import {
|
|
2
2
|
textarea_styles_default
|
|
3
|
-
} from "./chunk.
|
|
3
|
+
} from "./chunk.2EI3TNL7.js";
|
|
4
4
|
import {
|
|
5
|
-
|
|
6
|
-
} from "./chunk.
|
|
5
|
+
textarea_custom_styles_default
|
|
6
|
+
} from "./chunk.YBIBWRKC.js";
|
|
7
7
|
import {
|
|
8
8
|
defaultValue
|
|
9
9
|
} from "./chunk.WFAJR3FN.js";
|
|
10
|
+
import {
|
|
11
|
+
form_control_custom_styles_default,
|
|
12
|
+
form_control_styles_default
|
|
13
|
+
} from "./chunk.TTL762VF.js";
|
|
10
14
|
import {
|
|
11
15
|
FormControlController
|
|
12
|
-
} from "./chunk.
|
|
16
|
+
} from "./chunk.SZCGMXW5.js";
|
|
17
|
+
import {
|
|
18
|
+
HasSlotController
|
|
19
|
+
} from "./chunk.XGXFE6IF.js";
|
|
13
20
|
import {
|
|
14
21
|
watch
|
|
15
|
-
} from "./chunk.
|
|
22
|
+
} from "./chunk.AVTU2BGE.js";
|
|
16
23
|
import {
|
|
17
|
-
SynergyElement
|
|
18
|
-
|
|
24
|
+
SynergyElement,
|
|
25
|
+
component_styles_default
|
|
26
|
+
} from "./chunk.3DE5ARIC.js";
|
|
19
27
|
import {
|
|
20
28
|
__decorateClass
|
|
21
|
-
} from "./chunk.
|
|
29
|
+
} from "./chunk.QNDC5KWA.js";
|
|
22
30
|
|
|
23
31
|
// src/components/textarea/textarea.component.ts
|
|
24
32
|
import { classMap } from "lit/directives/class-map.js";
|
|
@@ -144,11 +152,10 @@ var SynTextarea = class extends SynergyElement {
|
|
|
144
152
|
this.input.setSelectionRange(selectionStart, selectionEnd, selectionDirection);
|
|
145
153
|
}
|
|
146
154
|
/** Replaces a range of text with a new string. */
|
|
147
|
-
setRangeText(replacement, start, end, selectMode) {
|
|
148
|
-
this.input.
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
}
|
|
155
|
+
setRangeText(replacement, start, end, selectMode = "preserve") {
|
|
156
|
+
const selectionStart = start != null ? start : this.input.selectionStart;
|
|
157
|
+
const selectionEnd = end != null ? end : this.input.selectionEnd;
|
|
158
|
+
this.input.setRangeText(replacement, selectionStart, selectionEnd, selectMode);
|
|
152
159
|
if (this.value !== this.input.value) {
|
|
153
160
|
this.value = this.input.value;
|
|
154
161
|
this.setTextareaHeight();
|
|
@@ -261,7 +268,7 @@ var SynTextarea = class extends SynergyElement {
|
|
|
261
268
|
`;
|
|
262
269
|
}
|
|
263
270
|
};
|
|
264
|
-
SynTextarea.styles = textarea_styles_default;
|
|
271
|
+
SynTextarea.styles = [component_styles_default, form_control_styles_default, textarea_styles_default, form_control_custom_styles_default, textarea_custom_styles_default];
|
|
265
272
|
__decorateClass([
|
|
266
273
|
query(".textarea__control")
|
|
267
274
|
], SynTextarea.prototype, "input", 2);
|
|
@@ -357,4 +364,4 @@ __decorateClass([
|
|
|
357
364
|
export {
|
|
358
365
|
SynTextarea
|
|
359
366
|
};
|
|
360
|
-
//# sourceMappingURL=chunk.
|
|
367
|
+
//# sourceMappingURL=chunk.HF75YRVS.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/textarea/textarea.component.ts"],
|
|
4
|
+
"sourcesContent": ["// ---------------------------------------------------------------------\n// \uD83D\uDD12 AUTOGENERATED BY VENDORISM\n// Removing this comment will prevent it from being managed by it.\n// ---------------------------------------------------------------------\n\n/* eslint-disable */\nimport { classMap } from 'lit/directives/class-map.js';\nimport { defaultValue } from '../../internal/default-value.js';\nimport { FormControlController } from '../../internal/form.js';\nimport { HasSlotController } from '../../internal/slot.js';\nimport { html } from 'lit';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\nimport { property, query, state } from 'lit/decorators.js';\nimport { watch } from '../../internal/watch.js';\nimport componentStyles from '../../styles/component.styles.js';\nimport formControlStyles from '../../styles/form-control.styles.js';\nimport formControlCustomStyles from '../../styles/form-control.custom.styles.js';\nimport SynergyElement from '../../internal/synergy-element.js';\nimport styles from './textarea.styles.js';\nimport customStyles from './textarea.custom.styles.js';\nimport type { CSSResultGroup } from 'lit';\nimport type { SynergyFormControl } from '../../internal/synergy-element.js';\n\n/**\n * @summary Textareas collect data from the user and allow multiple lines of text.\n * @documentation https://synergy.style/components/textarea\n * @status stable\n * @since 2.0\n *\n * @slot label - The textarea's label. Alternatively, you can use the `label` attribute.\n * @slot help-text - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.\n *\n * @event syn-blur - Emitted when the control loses focus.\n * @event syn-change - Emitted when an alteration to the control's value is committed by the user.\n * @event syn-focus - Emitted when the control gains focus.\n * @event syn-input - Emitted when the control receives input.\n * @event syn-invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n *\n * @csspart form-control - The form control that wraps the label, input, and help text.\n * @csspart form-control-label - The label's wrapper.\n * @csspart form-control-input - The input's wrapper.\n * @csspart form-control-help-text - The help text's wrapper.\n * @csspart base - The component's base wrapper.\n * @csspart textarea - The internal `<textarea>` control.\n */\nexport default class SynTextarea extends SynergyElement implements SynergyFormControl {\n static styles: CSSResultGroup = [componentStyles, formControlStyles, styles, formControlCustomStyles, customStyles];\n\n private readonly formControlController = new FormControlController(this, {\n assumeInteractionOn: ['syn-blur', 'syn-input']\n });\n private readonly hasSlotController = new HasSlotController(this, 'help-text', 'label', 'prefix', 'suffix');\n private resizeObserver: ResizeObserver;\n\n @query('.textarea__control') input: HTMLTextAreaElement;\n\n @state() private hasFocus = false;\n @property() title = ''; // make reactive to pass through\n\n /** The name of the textarea, submitted as a name/value pair with form data. */\n @property() name = '';\n\n /** The current value of the textarea, submitted as a name/value pair with form data. */\n @property() value = '';\n\n /** The textarea's size. */\n @property({ reflect: true }) size: 'small' | 'medium' | 'large' = 'medium';\n\n /** The textarea's label. If you need to display HTML, use the `label` slot instead. */\n @property() label = '';\n\n /** The textarea's help text. If you need to display HTML, use the `help-text` slot instead. */\n @property({ attribute: 'help-text' }) helpText = '';\n\n /** Placeholder text to show as a hint when the input is empty. */\n @property() placeholder = '';\n\n /** The number of rows to display by default. */\n @property({ type: Number }) rows = 4;\n\n /** Controls how the textarea can be resized. */\n @property() resize: 'none' | 'vertical' | 'auto' = 'vertical';\n\n /** Disables the textarea. */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** Makes the textarea readonly. */\n @property({ type: Boolean, reflect: true }) readonly = false;\n\n /**\n * By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\n * to place the form control outside of a form and associate it with the form that has this `id`. The form must be in\n * the same document or shadow root for this to work.\n */\n @property({ reflect: true }) form = '';\n\n /** Makes the textarea a required field. */\n @property({ type: Boolean, reflect: true }) required = false;\n\n /** The minimum length of input that will be considered valid. */\n @property({ type: Number }) minlength: number;\n\n /** The maximum length of input that will be considered valid. */\n @property({ type: Number }) maxlength: number;\n\n /** Controls whether and how text input is automatically capitalized as it is entered by the user. */\n @property() autocapitalize: 'off' | 'none' | 'on' | 'sentences' | 'words' | 'characters';\n\n /** Indicates whether the browser's autocorrect feature is on or off. */\n @property() autocorrect: string;\n\n /**\n * Specifies what permission the browser has to provide assistance in filling out form field values. Refer to\n * [this page on MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) for available values.\n */\n @property() autocomplete: string;\n\n /** Indicates that the input should receive focus on page load. */\n @property({ type: Boolean }) autofocus: boolean;\n\n /** Used to customize the label or icon of the Enter key on virtual keyboards. */\n @property() enterkeyhint: 'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send';\n\n /** Enables spell checking on the textarea. */\n @property({\n type: Boolean,\n converter: {\n // Allow \"true|false\" attribute values but keep the property boolean\n fromAttribute: value => (!value || value === 'false' ? false : true),\n toAttribute: value => (value ? 'true' : 'false')\n }\n })\n spellcheck = true;\n\n /**\n * Tells the browser what type of data will be entered by the user, allowing it to display the appropriate virtual\n * keyboard on supportive devices.\n */\n @property() inputmode: 'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url';\n\n /** The default value of the form control. Primarily used for resetting the form control. */\n @defaultValue() defaultValue = '';\n\n /** Gets the validity state object */\n get validity() {\n return this.input.validity;\n }\n\n /** Gets the validation message */\n get validationMessage() {\n return this.input.validationMessage;\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.resizeObserver = new ResizeObserver(() => this.setTextareaHeight());\n\n this.updateComplete.then(() => {\n this.setTextareaHeight();\n this.resizeObserver.observe(this.input);\n });\n }\n\n firstUpdated() {\n this.formControlController.updateValidity();\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.resizeObserver.unobserve(this.input);\n }\n\n private handleBlur() {\n this.hasFocus = false;\n this.emit('syn-blur');\n }\n\n private handleChange() {\n this.value = this.input.value;\n this.setTextareaHeight();\n this.emit('syn-change');\n }\n\n private handleFocus() {\n this.hasFocus = true;\n this.emit('syn-focus');\n }\n\n private handleInput() {\n this.value = this.input.value;\n this.emit('syn-input');\n }\n\n private handleInvalid(event: Event) {\n this.formControlController.setValidity(false);\n this.formControlController.emitInvalidEvent(event);\n }\n\n private setTextareaHeight() {\n if (this.resize === 'auto') {\n this.input.style.height = 'auto';\n this.input.style.height = `${this.input.scrollHeight}px`;\n } else {\n (this.input.style.height as string | undefined) = undefined;\n }\n }\n\n @watch('disabled', { waitUntilFirstUpdate: true })\n handleDisabledChange() {\n // Disabled form controls are always valid\n this.formControlController.setValidity(this.disabled);\n }\n\n @watch('rows', { waitUntilFirstUpdate: true })\n handleRowsChange() {\n this.setTextareaHeight();\n }\n\n @watch('value', { waitUntilFirstUpdate: true })\n async handleValueChange() {\n await this.updateComplete;\n this.formControlController.updateValidity();\n this.setTextareaHeight();\n }\n\n /** Sets focus on the textarea. */\n focus(options?: FocusOptions) {\n this.input.focus(options);\n }\n\n /** Removes focus from the textarea. */\n blur() {\n this.input.blur();\n }\n\n /** Selects all the text in the textarea. */\n select() {\n this.input.select();\n }\n\n /** Gets or sets the textarea's scroll position. */\n scrollPosition(position?: { top?: number; left?: number }): { top: number; left: number } | undefined {\n if (position) {\n if (typeof position.top === 'number') this.input.scrollTop = position.top;\n if (typeof position.left === 'number') this.input.scrollLeft = position.left;\n return undefined;\n }\n\n return {\n top: this.input.scrollTop,\n left: this.input.scrollTop\n };\n }\n\n /** Sets the start and end positions of the text selection (0-based). */\n setSelectionRange(\n selectionStart: number,\n selectionEnd: number,\n selectionDirection: 'forward' | 'backward' | 'none' = 'none'\n ) {\n this.input.setSelectionRange(selectionStart, selectionEnd, selectionDirection);\n }\n\n /** Replaces a range of text with a new string. */\n setRangeText(\n replacement: string,\n start?: number,\n end?: number,\n selectMode: 'select' | 'start' | 'end' | 'preserve' = 'preserve'\n ) {\n const selectionStart = start ?? this.input.selectionStart;\n const selectionEnd = end ?? this.input.selectionEnd;\n\n this.input.setRangeText(replacement, selectionStart, selectionEnd, selectMode);\n\n if (this.value !== this.input.value) {\n this.value = this.input.value;\n this.setTextareaHeight();\n }\n }\n\n /** Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid. */\n checkValidity() {\n return this.input.checkValidity();\n }\n\n /** Gets the associated form, if one exists. */\n getForm(): HTMLFormElement | null {\n return this.formControlController.getForm();\n }\n\n /** Checks for validity and shows the browser's validation message if the control is invalid. */\n reportValidity() {\n return this.input.reportValidity();\n }\n\n /** Sets a custom validation message. Pass an empty string to restore validity. */\n setCustomValidity(message: string) {\n this.input.setCustomValidity(message);\n this.formControlController.updateValidity();\n }\n\n render() {\n const hasLabelSlot = this.hasSlotController.test('label');\n const hasHelpTextSlot = this.hasSlotController.test('help-text');\n const hasPrefixSlot = this.hasSlotController.test('prefix');\n const hasSuffixSlot = this.hasSlotController.test('suffix');\n const hasLabel = this.label ? true : !!hasLabelSlot;\n const hasHelpText = this.helpText ? true : !!hasHelpTextSlot;\n\n return html`\n <div\n part=\"form-control\"\n class=${classMap({\n 'form-control': true,\n 'form-control--small': this.size === 'small',\n 'form-control--medium': this.size === 'medium',\n 'form-control--large': this.size === 'large',\n 'form-control--has-label': hasLabel,\n 'form-control--has-help-text': hasHelpText,\n 'form-control--has-prefix': hasPrefixSlot,\n 'form-control--has-suffix': hasSuffixSlot\n })}\n >\n <label\n part=\"form-control-label\"\n class=\"form-control__label\"\n for=\"input\"\n aria-hidden=${hasLabel ? 'false' : 'true'}\n >\n <slot name=\"label\">${this.label}</slot>\n </label>\n\n <div part=\"form-control-input\" class=\"form-control-input\">\n <div\n part=\"base\"\n class=${classMap({\n textarea: true,\n 'textarea--small': this.size === 'small',\n 'textarea--medium': this.size === 'medium',\n 'textarea--large': this.size === 'large',\n 'textarea--standard': !this.readonly,\n 'textarea--readonly': this.readonly,\n 'textarea--disabled': this.disabled,\n 'textarea--focused': this.hasFocus,\n 'textarea--empty': !this.value,\n 'textarea--resize-none': this.resize === 'none',\n 'textarea--resize-vertical': this.resize === 'vertical',\n 'textarea--resize-auto': this.resize === 'auto'\n })}\n >\n <textarea\n part=\"textarea\"\n id=\"input\"\n class=\"textarea__control\"\n title=${this.title /* An empty title prevents browser validation tooltips from appearing on hover */}\n name=${ifDefined(this.name)}\n .value=${live(this.value)}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n ?required=${this.required}\n placeholder=${ifDefined(this.placeholder)}\n rows=${ifDefined(this.rows)}\n minlength=${ifDefined(this.minlength)}\n maxlength=${ifDefined(this.maxlength)}\n autocapitalize=${ifDefined(this.autocapitalize)}\n autocorrect=${ifDefined(this.autocorrect)}\n ?autofocus=${this.autofocus}\n spellcheck=${ifDefined(this.spellcheck)}\n enterkeyhint=${ifDefined(this.enterkeyhint)}\n inputmode=${ifDefined(this.inputmode)}\n aria-describedby=\"help-text\"\n @change=${this.handleChange}\n @input=${this.handleInput}\n @invalid=${this.handleInvalid}\n @focus=${this.handleFocus}\n @blur=${this.handleBlur}\n ></textarea>\n </div>\n </div>\n\n <div\n part=\"form-control-help-text\"\n id=\"help-text\"\n class=\"form-control__help-text\"\n aria-hidden=${hasHelpText ? 'false' : 'true'}\n >\n <slot name=\"help-text\">${this.helpText}</slot>\n </div>\n </div>\n `;\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SynRadioGroup
|
|
3
|
-
} from "./chunk.
|
|
3
|
+
} from "./chunk.GAPQVJGQ.js";
|
|
4
4
|
|
|
5
5
|
// src/components/radio-group/radio-group.ts
|
|
6
6
|
var radio_group_default = SynRadioGroup;
|
|
@@ -9,4 +9,4 @@ SynRadioGroup.define("syn-radio-group");
|
|
|
9
9
|
export {
|
|
10
10
|
radio_group_default
|
|
11
11
|
};
|
|
12
|
-
//# sourceMappingURL=chunk.
|
|
12
|
+
//# sourceMappingURL=chunk.IOPUYG6Q.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SynTextarea
|
|
3
|
-
} from "./chunk.
|
|
3
|
+
} from "./chunk.HF75YRVS.js";
|
|
4
4
|
|
|
5
5
|
// src/components/textarea/textarea.ts
|
|
6
6
|
var textarea_default = SynTextarea;
|
|
@@ -9,4 +9,4 @@ SynTextarea.define("syn-textarea");
|
|
|
9
9
|
export {
|
|
10
10
|
textarea_default
|
|
11
11
|
};
|
|
12
|
-
//# sourceMappingURL=chunk.
|
|
12
|
+
//# sourceMappingURL=chunk.IR2PZHC7.js.map
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
spinner_styles_default
|
|
3
|
-
} from "./chunk.
|
|
3
|
+
} from "./chunk.OSBC36KQ.js";
|
|
4
4
|
import {
|
|
5
5
|
LocalizeController
|
|
6
6
|
} from "./chunk.LAB4YJYE.js";
|
|
7
7
|
import {
|
|
8
|
-
SynergyElement
|
|
9
|
-
|
|
8
|
+
SynergyElement,
|
|
9
|
+
component_styles_default
|
|
10
|
+
} from "./chunk.3DE5ARIC.js";
|
|
10
11
|
|
|
11
12
|
// src/components/spinner/spinner.component.ts
|
|
12
13
|
import { html } from "lit";
|
|
@@ -24,9 +25,9 @@ var SynSpinner = class extends SynergyElement {
|
|
|
24
25
|
`;
|
|
25
26
|
}
|
|
26
27
|
};
|
|
27
|
-
SynSpinner.styles = spinner_styles_default;
|
|
28
|
+
SynSpinner.styles = [component_styles_default, spinner_styles_default];
|
|
28
29
|
|
|
29
30
|
export {
|
|
30
31
|
SynSpinner
|
|
31
32
|
};
|
|
32
|
-
//# sourceMappingURL=chunk.
|
|
33
|
+
//# sourceMappingURL=chunk.K3O2PP7X.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/spinner/spinner.component.ts"],
|
|
4
|
+
"sourcesContent": ["// ---------------------------------------------------------------------\n// \uD83D\uDD12 AUTOGENERATED BY VENDORISM\n// Removing this comment will prevent it from being managed by it.\n// ---------------------------------------------------------------------\n\n/* eslint-disable */\nimport { html } from 'lit';\nimport { LocalizeController } from '../../utilities/localize.js';\nimport componentStyles from '../../styles/component.styles.js';\nimport SynergyElement from '../../internal/synergy-element.js';\nimport styles from './spinner.styles.js';\nimport type { CSSResultGroup } from 'lit';\n\n/**\n * @summary Spinners are used to show the progress of an indeterminate operation.\n * @documentation https://synergy.style/components/spinner\n * @status stable\n * @since 2.0\n *\n * @csspart base - The component's base wrapper.\n *\n * @cssproperty --track-width - The width of the track.\n * @cssproperty --track-color - The color of the track.\n * @cssproperty --indicator-color - The color of the spinner's indicator.\n * @cssproperty --speed - The time it takes for the spinner to complete one animation cycle.\n */\nexport default class SynSpinner extends SynergyElement {\n static styles: CSSResultGroup = [componentStyles, styles];\n\n private readonly localize = new LocalizeController(this);\n\n render() {\n return html`\n <svg part=\"base\" class=\"spinner\" role=\"progressbar\" aria-label=${this.localize.term('loading')}>\n <circle class=\"spinner__track\"></circle>\n <circle class=\"spinner__indicator\"></circle>\n </svg>\n `;\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;AAMA,SAAS,YAAY;AAoBrB,IAAqB,aAArB,cAAwC,eAAe;AAAA,EAAvD;AAAA;AAGE,SAAiB,WAAW,IAAI,mBAAmB,IAAI;AAAA;AAAA,EAEvD,SAAS;AACP,WAAO;AAAA,uEAC4D,KAAK,SAAS,KAAK,SAAS,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKlG;AACF;AAbqB,WACZ,SAAyB,CAAC,0BAAiB,sBAAM;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,21 +1,32 @@
|
|
|
1
1
|
import {
|
|
2
2
|
switch_styles_default
|
|
3
|
-
} from "./chunk.
|
|
3
|
+
} from "./chunk.ADRKUQGR.js";
|
|
4
|
+
import {
|
|
5
|
+
switch_custom_styles_default
|
|
6
|
+
} from "./chunk.W5JK7V7K.js";
|
|
4
7
|
import {
|
|
5
8
|
defaultValue
|
|
6
9
|
} from "./chunk.WFAJR3FN.js";
|
|
10
|
+
import {
|
|
11
|
+
form_control_custom_styles_default,
|
|
12
|
+
form_control_styles_default
|
|
13
|
+
} from "./chunk.TTL762VF.js";
|
|
7
14
|
import {
|
|
8
15
|
FormControlController
|
|
9
|
-
} from "./chunk.
|
|
16
|
+
} from "./chunk.SZCGMXW5.js";
|
|
17
|
+
import {
|
|
18
|
+
HasSlotController
|
|
19
|
+
} from "./chunk.XGXFE6IF.js";
|
|
10
20
|
import {
|
|
11
21
|
watch
|
|
12
|
-
} from "./chunk.
|
|
22
|
+
} from "./chunk.AVTU2BGE.js";
|
|
13
23
|
import {
|
|
14
|
-
SynergyElement
|
|
15
|
-
|
|
24
|
+
SynergyElement,
|
|
25
|
+
component_styles_default
|
|
26
|
+
} from "./chunk.3DE5ARIC.js";
|
|
16
27
|
import {
|
|
17
28
|
__decorateClass
|
|
18
|
-
} from "./chunk.
|
|
29
|
+
} from "./chunk.QNDC5KWA.js";
|
|
19
30
|
|
|
20
31
|
// src/components/switch/switch.component.ts
|
|
21
32
|
import { classMap } from "lit/directives/class-map.js";
|
|
@@ -31,6 +42,7 @@ var SynSwitch = class extends SynergyElement {
|
|
|
31
42
|
defaultValue: (control) => control.defaultChecked,
|
|
32
43
|
setValue: (control, checked) => control.checked = checked
|
|
33
44
|
});
|
|
45
|
+
this.hasSlotController = new HasSlotController(this, "help-text");
|
|
34
46
|
this.hasFocus = false;
|
|
35
47
|
this.title = "";
|
|
36
48
|
this.name = "";
|
|
@@ -40,6 +52,7 @@ var SynSwitch = class extends SynergyElement {
|
|
|
40
52
|
this.defaultChecked = false;
|
|
41
53
|
this.form = "";
|
|
42
54
|
this.required = false;
|
|
55
|
+
this.helpText = "";
|
|
43
56
|
}
|
|
44
57
|
/** Gets the validity state object */
|
|
45
58
|
get validity() {
|
|
@@ -122,10 +135,21 @@ var SynSwitch = class extends SynergyElement {
|
|
|
122
135
|
this.formControlController.updateValidity();
|
|
123
136
|
}
|
|
124
137
|
render() {
|
|
138
|
+
const hasHelpTextSlot = this.hasSlotController.test("help-text");
|
|
139
|
+
const hasHelpText = this.helpText ? true : !!hasHelpTextSlot;
|
|
125
140
|
return html`
|
|
126
|
-
<
|
|
127
|
-
part="base"
|
|
141
|
+
<div
|
|
128
142
|
class=${classMap({
|
|
143
|
+
"form-control": true,
|
|
144
|
+
"form-control--small": this.size === "small",
|
|
145
|
+
"form-control--medium": this.size === "medium",
|
|
146
|
+
"form-control--large": this.size === "large",
|
|
147
|
+
"form-control--has-help-text": hasHelpText
|
|
148
|
+
})}
|
|
149
|
+
>
|
|
150
|
+
<label
|
|
151
|
+
part="base"
|
|
152
|
+
class=${classMap({
|
|
129
153
|
switch: true,
|
|
130
154
|
"switch--checked": this.checked,
|
|
131
155
|
"switch--disabled": this.disabled,
|
|
@@ -134,38 +158,49 @@ var SynSwitch = class extends SynergyElement {
|
|
|
134
158
|
"switch--medium": this.size === "medium",
|
|
135
159
|
"switch--large": this.size === "large"
|
|
136
160
|
})}
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
161
|
+
>
|
|
162
|
+
<input
|
|
163
|
+
class="switch__input"
|
|
164
|
+
type="checkbox"
|
|
165
|
+
title=${this.title}
|
|
166
|
+
name=${this.name}
|
|
167
|
+
value=${ifDefined(this.value)}
|
|
168
|
+
.checked=${live(this.checked)}
|
|
169
|
+
.disabled=${this.disabled}
|
|
170
|
+
.required=${this.required}
|
|
171
|
+
role="switch"
|
|
172
|
+
aria-checked=${this.checked ? "true" : "false"}
|
|
173
|
+
aria-describedby="help-text"
|
|
174
|
+
@click=${this.handleClick}
|
|
175
|
+
@input=${this.handleInput}
|
|
176
|
+
@invalid=${this.handleInvalid}
|
|
177
|
+
@blur=${this.handleBlur}
|
|
178
|
+
@focus=${this.handleFocus}
|
|
179
|
+
@keydown=${this.handleKeyDown}
|
|
180
|
+
/>
|
|
156
181
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
182
|
+
<span part="control" class="switch__control">
|
|
183
|
+
<span part="thumb" class="switch__thumb"></span>
|
|
184
|
+
</span>
|
|
160
185
|
|
|
161
|
-
|
|
162
|
-
|
|
186
|
+
<div part="label" class="switch__label">
|
|
187
|
+
<slot></slot>
|
|
188
|
+
</div>
|
|
189
|
+
</label>
|
|
190
|
+
|
|
191
|
+
<div
|
|
192
|
+
aria-hidden=${hasHelpText ? "false" : "true"}
|
|
193
|
+
class="form-control__help-text"
|
|
194
|
+
id="help-text"
|
|
195
|
+
part="form-control-help-text"
|
|
196
|
+
>
|
|
197
|
+
<slot name="help-text">${this.helpText}</slot>
|
|
163
198
|
</div>
|
|
164
|
-
</
|
|
199
|
+
</div>
|
|
165
200
|
`;
|
|
166
201
|
}
|
|
167
202
|
};
|
|
168
|
-
SynSwitch.styles = switch_styles_default;
|
|
203
|
+
SynSwitch.styles = [component_styles_default, form_control_styles_default, switch_styles_default, form_control_custom_styles_default, switch_custom_styles_default];
|
|
169
204
|
__decorateClass([
|
|
170
205
|
query('input[type="checkbox"]')
|
|
171
206
|
], SynSwitch.prototype, "input", 2);
|
|
@@ -199,6 +234,9 @@ __decorateClass([
|
|
|
199
234
|
__decorateClass([
|
|
200
235
|
property({ type: Boolean, reflect: true })
|
|
201
236
|
], SynSwitch.prototype, "required", 2);
|
|
237
|
+
__decorateClass([
|
|
238
|
+
property({ attribute: "help-text" })
|
|
239
|
+
], SynSwitch.prototype, "helpText", 2);
|
|
202
240
|
__decorateClass([
|
|
203
241
|
watch("checked", { waitUntilFirstUpdate: true })
|
|
204
242
|
], SynSwitch.prototype, "handleCheckedChange", 1);
|
|
@@ -209,4 +247,4 @@ __decorateClass([
|
|
|
209
247
|
export {
|
|
210
248
|
SynSwitch
|
|
211
249
|
};
|
|
212
|
-
//# sourceMappingURL=chunk.
|
|
250
|
+
//# sourceMappingURL=chunk.KDDTDU4B.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/switch/switch.component.ts"],
|
|
4
|
+
"sourcesContent": ["// ---------------------------------------------------------------------\n// \uD83D\uDD12 AUTOGENERATED BY VENDORISM\n// Removing this comment will prevent it from being managed by it.\n// ---------------------------------------------------------------------\n\n/* eslint-disable */\nimport { classMap } from 'lit/directives/class-map.js';\nimport { defaultValue } from '../../internal/default-value.js';\nimport { FormControlController } from '../../internal/form.js';\nimport { HasSlotController } from '../../internal/slot.js';\nimport { html } from 'lit';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\nimport { property, query, state } from 'lit/decorators.js';\nimport { watch } from '../../internal/watch.js';\nimport componentStyles from '../../styles/component.styles.js';\nimport formControlStyles from '../../styles/form-control.styles.js';\nimport formControlCustomStyles from '../../styles/form-control.custom.styles.js';\nimport SynergyElement from '../../internal/synergy-element.js';\nimport styles from './switch.styles.js';\nimport customStyles from './switch.custom.styles.js';\nimport type { CSSResultGroup } from 'lit';\nimport type { SynergyFormControl } from '../../internal/synergy-element.js';\n\n/**\n * @summary Switches allow the user to toggle an option on or off.\n * @documentation https://synergy.style/components/switch\n * @status stable\n * @since 2.0\n *\n * @slot - The switch's label.\n * @slot help-text - Text that describes how to use the switch. Alternatively, you can use the `help-text` attribute.\n *\n * @event syn-blur - Emitted when the control loses focus.\n * @event syn-change - Emitted when the control's checked state changes.\n * @event syn-input - Emitted when the control receives input.\n * @event syn-focus - Emitted when the control gains focus.\n * @event syn-invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n *\n * @csspart base - The component's base wrapper.\n * @csspart control - The control that houses the switch's thumb.\n * @csspart thumb - The switch's thumb.\n * @csspart label - The switch's label.\n * @csspart form-control-help-text - The help text's wrapper.\n *\n * @cssproperty --width - The width of the switch.\n * @cssproperty --height - The height of the switch.\n * @cssproperty --thumb-size - The size of the thumb.\n */\nexport default class SynSwitch extends SynergyElement implements SynergyFormControl {\n static styles: CSSResultGroup = [componentStyles, formControlStyles, styles, formControlCustomStyles, customStyles];\n\n private readonly formControlController = new FormControlController(this, {\n value: (control: SynSwitch) => (control.checked ? control.value || 'on' : undefined),\n defaultValue: (control: SynSwitch) => control.defaultChecked,\n setValue: (control: SynSwitch, checked: boolean) => (control.checked = checked)\n });\n private readonly hasSlotController = new HasSlotController(this, 'help-text');\n\n @query('input[type=\"checkbox\"]') input: HTMLInputElement;\n\n @state() private hasFocus = false;\n @property() title = ''; // make reactive to pass through\n\n /** The name of the switch, submitted as a name/value pair with form data. */\n @property() name = '';\n\n /** The current value of the switch, submitted as a name/value pair with form data. */\n @property() value: string;\n\n /** The switch's size. */\n @property({ reflect: true }) size: 'small' | 'medium' | 'large' = 'medium';\n\n /** Disables the switch. */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** Draws the switch in a checked state. */\n @property({ type: Boolean, reflect: true }) checked = false;\n\n /** The default value of the form control. Primarily used for resetting the form control. */\n @defaultValue('checked') defaultChecked = false;\n\n /**\n * By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\n * to place the form control outside of a form and associate it with the form that has this `id`. The form must be in\n * the same document or shadow root for this to work.\n */\n @property({ reflect: true }) form = '';\n\n /** Makes the switch a required field. */\n @property({ type: Boolean, reflect: true }) required = false;\n\n /** The switch's help text. If you need to display HTML, use the `help-text` slot instead. */\n @property({ attribute: 'help-text' }) helpText = '';\n\n /** Gets the validity state object */\n get validity() {\n return this.input.validity;\n }\n\n /** Gets the validation message */\n get validationMessage() {\n return this.input.validationMessage;\n }\n\n firstUpdated() {\n this.formControlController.updateValidity();\n }\n\n private handleBlur() {\n this.hasFocus = false;\n this.emit('syn-blur');\n }\n\n private handleInput() {\n this.emit('syn-input');\n }\n\n private handleInvalid(event: Event) {\n this.formControlController.setValidity(false);\n this.formControlController.emitInvalidEvent(event);\n }\n\n private handleClick() {\n this.checked = !this.checked;\n this.emit('syn-change');\n }\n\n private handleFocus() {\n this.hasFocus = true;\n this.emit('syn-focus');\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n this.checked = false;\n this.emit('syn-change');\n this.emit('syn-input');\n }\n\n if (event.key === 'ArrowRight') {\n event.preventDefault();\n this.checked = true;\n this.emit('syn-change');\n this.emit('syn-input');\n }\n }\n\n @watch('checked', { waitUntilFirstUpdate: true })\n handleCheckedChange() {\n this.input.checked = this.checked; // force a sync update\n this.formControlController.updateValidity();\n }\n\n @watch('disabled', { waitUntilFirstUpdate: true })\n handleDisabledChange() {\n // Disabled form controls are always valid\n this.formControlController.setValidity(true);\n }\n\n /** Simulates a click on the switch. */\n click() {\n this.input.click();\n }\n\n /** Sets focus on the switch. */\n focus(options?: FocusOptions) {\n this.input.focus(options);\n }\n\n /** Removes focus from the switch. */\n blur() {\n this.input.blur();\n }\n\n /** Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid. */\n checkValidity() {\n return this.input.checkValidity();\n }\n\n /** Gets the associated form, if one exists. */\n getForm(): HTMLFormElement | null {\n return this.formControlController.getForm();\n }\n\n /** Checks for validity and shows the browser's validation message if the control is invalid. */\n reportValidity() {\n return this.input.reportValidity();\n }\n\n /** Sets a custom validation message. Pass an empty string to restore validity. */\n setCustomValidity(message: string) {\n this.input.setCustomValidity(message);\n this.formControlController.updateValidity();\n }\n\n render() {\n const hasHelpTextSlot = this.hasSlotController.test('help-text');\n const hasHelpText = this.helpText ? true : !!hasHelpTextSlot;\n\n return html`\n <div\n class=${classMap({\n 'form-control': true,\n 'form-control--small': this.size === 'small',\n 'form-control--medium': this.size === 'medium',\n 'form-control--large': this.size === 'large',\n 'form-control--has-help-text': hasHelpText\n })}\n >\n <label\n part=\"base\"\n class=${classMap({\n switch: true,\n 'switch--checked': this.checked,\n 'switch--disabled': this.disabled,\n 'switch--focused': this.hasFocus,\n 'switch--small': this.size === 'small',\n 'switch--medium': this.size === 'medium',\n 'switch--large': this.size === 'large'\n })}\n >\n <input\n class=\"switch__input\"\n type=\"checkbox\"\n title=${this.title /* An empty title prevents browser validation tooltips from appearing on hover */}\n name=${this.name}\n value=${ifDefined(this.value)}\n .checked=${live(this.checked)}\n .disabled=${this.disabled}\n .required=${this.required}\n role=\"switch\"\n aria-checked=${this.checked ? 'true' : 'false'}\n aria-describedby=\"help-text\"\n @click=${this.handleClick}\n @input=${this.handleInput}\n @invalid=${this.handleInvalid}\n @blur=${this.handleBlur}\n @focus=${this.handleFocus}\n @keydown=${this.handleKeyDown}\n />\n\n <span part=\"control\" class=\"switch__control\">\n <span part=\"thumb\" class=\"switch__thumb\"></span>\n </span>\n\n <div part=\"label\" class=\"switch__label\">\n <slot></slot>\n </div>\n </label>\n\n <div\n aria-hidden=${hasHelpText ? 'false' : 'true'}\n class=\"form-control__help-text\"\n id=\"help-text\"\n part=\"form-control-help-text\"\n >\n <slot name=\"help-text\">${this.helpText}</slot>\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'syn-switch': SynSwitch;\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,24 +1,35 @@
|
|
|
1
1
|
import {
|
|
2
2
|
defaultValue
|
|
3
3
|
} from "./chunk.WFAJR3FN.js";
|
|
4
|
+
import {
|
|
5
|
+
form_control_custom_styles_default,
|
|
6
|
+
form_control_styles_default
|
|
7
|
+
} from "./chunk.TTL762VF.js";
|
|
8
|
+
import {
|
|
9
|
+
checkbox_custom_styles_default
|
|
10
|
+
} from "./chunk.2XZKXVMR.js";
|
|
4
11
|
import {
|
|
5
12
|
checkbox_styles_default
|
|
6
|
-
} from "./chunk.
|
|
13
|
+
} from "./chunk.3STW62TA.js";
|
|
7
14
|
import {
|
|
8
15
|
FormControlController
|
|
9
|
-
} from "./chunk.
|
|
16
|
+
} from "./chunk.SZCGMXW5.js";
|
|
17
|
+
import {
|
|
18
|
+
HasSlotController
|
|
19
|
+
} from "./chunk.XGXFE6IF.js";
|
|
10
20
|
import {
|
|
11
21
|
SynIcon
|
|
12
|
-
} from "./chunk.
|
|
22
|
+
} from "./chunk.PWMSNMDF.js";
|
|
13
23
|
import {
|
|
14
24
|
watch
|
|
15
|
-
} from "./chunk.
|
|
25
|
+
} from "./chunk.AVTU2BGE.js";
|
|
16
26
|
import {
|
|
17
|
-
SynergyElement
|
|
18
|
-
|
|
27
|
+
SynergyElement,
|
|
28
|
+
component_styles_default
|
|
29
|
+
} from "./chunk.3DE5ARIC.js";
|
|
19
30
|
import {
|
|
20
31
|
__decorateClass
|
|
21
|
-
} from "./chunk.
|
|
32
|
+
} from "./chunk.QNDC5KWA.js";
|
|
22
33
|
|
|
23
34
|
// src/components/checkbox/checkbox.component.ts
|
|
24
35
|
import { classMap } from "lit/directives/class-map.js";
|
|
@@ -34,6 +45,7 @@ var SynCheckbox = class extends SynergyElement {
|
|
|
34
45
|
defaultValue: (control) => control.defaultChecked,
|
|
35
46
|
setValue: (control, checked) => control.checked = checked
|
|
36
47
|
});
|
|
48
|
+
this.hasSlotController = new HasSlotController(this, "help-text");
|
|
37
49
|
this.hasFocus = false;
|
|
38
50
|
this.title = "";
|
|
39
51
|
this.name = "";
|
|
@@ -44,6 +56,7 @@ var SynCheckbox = class extends SynergyElement {
|
|
|
44
56
|
this.defaultChecked = false;
|
|
45
57
|
this.form = "";
|
|
46
58
|
this.required = false;
|
|
59
|
+
this.helpText = "";
|
|
47
60
|
}
|
|
48
61
|
/** Gets the validity state object */
|
|
49
62
|
get validity() {
|
|
@@ -117,10 +130,21 @@ var SynCheckbox = class extends SynergyElement {
|
|
|
117
130
|
this.formControlController.updateValidity();
|
|
118
131
|
}
|
|
119
132
|
render() {
|
|
133
|
+
const hasHelpTextSlot = this.hasSlotController.test("help-text");
|
|
134
|
+
const hasHelpText = this.helpText ? true : !!hasHelpTextSlot;
|
|
120
135
|
return html`
|
|
121
|
-
<
|
|
122
|
-
part="base"
|
|
136
|
+
<div
|
|
123
137
|
class=${classMap({
|
|
138
|
+
"form-control": true,
|
|
139
|
+
"form-control--small": this.size === "small",
|
|
140
|
+
"form-control--medium": this.size === "medium",
|
|
141
|
+
"form-control--large": this.size === "large",
|
|
142
|
+
"form-control--has-help-text": hasHelpText
|
|
143
|
+
})}
|
|
144
|
+
>
|
|
145
|
+
<label
|
|
146
|
+
part="base"
|
|
147
|
+
class=${classMap({
|
|
124
148
|
checkbox: true,
|
|
125
149
|
"checkbox--checked": this.checked,
|
|
126
150
|
"checkbox--disabled": this.disabled,
|
|
@@ -130,50 +154,61 @@ var SynCheckbox = class extends SynergyElement {
|
|
|
130
154
|
"checkbox--medium": this.size === "medium",
|
|
131
155
|
"checkbox--large": this.size === "large"
|
|
132
156
|
})}
|
|
133
|
-
>
|
|
134
|
-
<input
|
|
135
|
-
class="checkbox__input"
|
|
136
|
-
type="checkbox"
|
|
137
|
-
title=${this.title}
|
|
138
|
-
name=${this.name}
|
|
139
|
-
value=${ifDefined(this.value)}
|
|
140
|
-
.indeterminate=${live(this.indeterminate)}
|
|
141
|
-
.checked=${live(this.checked)}
|
|
142
|
-
.disabled=${this.disabled}
|
|
143
|
-
.required=${this.required}
|
|
144
|
-
aria-checked=${this.checked ? "true" : "false"}
|
|
145
|
-
@click=${this.handleClick}
|
|
146
|
-
@input=${this.handleInput}
|
|
147
|
-
@invalid=${this.handleInvalid}
|
|
148
|
-
@blur=${this.handleBlur}
|
|
149
|
-
@focus=${this.handleFocus}
|
|
150
|
-
/>
|
|
151
|
-
|
|
152
|
-
<span
|
|
153
|
-
part="control${this.checked ? " control--checked" : ""}${this.indeterminate ? " control--indeterminate" : ""}"
|
|
154
|
-
class="checkbox__control"
|
|
155
157
|
>
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
158
|
+
<input
|
|
159
|
+
class="checkbox__input"
|
|
160
|
+
type="checkbox"
|
|
161
|
+
title=${this.title}
|
|
162
|
+
name=${this.name}
|
|
163
|
+
value=${ifDefined(this.value)}
|
|
164
|
+
.indeterminate=${live(this.indeterminate)}
|
|
165
|
+
.checked=${live(this.checked)}
|
|
166
|
+
.disabled=${this.disabled}
|
|
167
|
+
.required=${this.required}
|
|
168
|
+
aria-checked=${this.checked ? "true" : "false"}
|
|
169
|
+
aria-describedby="help-text"
|
|
170
|
+
@click=${this.handleClick}
|
|
171
|
+
@input=${this.handleInput}
|
|
172
|
+
@invalid=${this.handleInvalid}
|
|
173
|
+
@blur=${this.handleBlur}
|
|
174
|
+
@focus=${this.handleFocus}
|
|
175
|
+
/>
|
|
176
|
+
|
|
177
|
+
<span
|
|
178
|
+
part="control${this.checked ? " control--checked" : ""}${this.indeterminate ? " control--indeterminate" : ""}"
|
|
179
|
+
class="checkbox__control"
|
|
180
|
+
>
|
|
181
|
+
${this.checked ? html`
|
|
182
|
+
<syn-icon part="checked-icon" class="checkbox__checked-icon" library="system" name="check"></syn-icon>
|
|
183
|
+
` : ""}
|
|
184
|
+
${!this.checked && this.indeterminate ? html`
|
|
185
|
+
<syn-icon
|
|
186
|
+
part="indeterminate-icon"
|
|
187
|
+
class="checkbox__indeterminate-icon"
|
|
188
|
+
library="system"
|
|
189
|
+
name="indeterminate"
|
|
190
|
+
></syn-icon>
|
|
191
|
+
` : ""}
|
|
192
|
+
</span>
|
|
193
|
+
|
|
194
|
+
<div part="label" class="checkbox__label">
|
|
195
|
+
<slot></slot>
|
|
196
|
+
</div>
|
|
197
|
+
</label>
|
|
168
198
|
|
|
169
|
-
<div
|
|
170
|
-
|
|
199
|
+
<div
|
|
200
|
+
aria-hidden=${hasHelpText ? "false" : "true"}
|
|
201
|
+
class="form-control__help-text"
|
|
202
|
+
id="help-text"
|
|
203
|
+
part="form-control-help-text"
|
|
204
|
+
>
|
|
205
|
+
<slot name="help-text">${this.helpText}</slot>
|
|
171
206
|
</div>
|
|
172
|
-
</
|
|
207
|
+
</div>
|
|
173
208
|
`;
|
|
174
209
|
}
|
|
175
210
|
};
|
|
176
|
-
SynCheckbox.styles = checkbox_styles_default;
|
|
211
|
+
SynCheckbox.styles = [component_styles_default, checkbox_styles_default, form_control_styles_default, form_control_custom_styles_default, checkbox_custom_styles_default];
|
|
177
212
|
SynCheckbox.dependencies = { "syn-icon": SynIcon };
|
|
178
213
|
__decorateClass([
|
|
179
214
|
query('input[type="checkbox"]')
|
|
@@ -211,6 +246,9 @@ __decorateClass([
|
|
|
211
246
|
__decorateClass([
|
|
212
247
|
property({ type: Boolean, reflect: true })
|
|
213
248
|
], SynCheckbox.prototype, "required", 2);
|
|
249
|
+
__decorateClass([
|
|
250
|
+
property({ attribute: "help-text" })
|
|
251
|
+
], SynCheckbox.prototype, "helpText", 2);
|
|
214
252
|
__decorateClass([
|
|
215
253
|
watch("disabled", { waitUntilFirstUpdate: true })
|
|
216
254
|
], SynCheckbox.prototype, "handleDisabledChange", 1);
|
|
@@ -221,4 +259,4 @@ __decorateClass([
|
|
|
221
259
|
export {
|
|
222
260
|
SynCheckbox
|
|
223
261
|
};
|
|
224
|
-
//# sourceMappingURL=chunk.
|
|
262
|
+
//# sourceMappingURL=chunk.KNXO2FGQ.js.map
|