jebamo 0.0.13 → 0.0.14
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/components/je-alert.js +2 -2
- package/components/je-button.js +1 -1
- package/components/je-card.js +1 -1
- package/components/je-card.js.map +1 -1
- package/components/je-datepicker.js +21 -25
- package/components/je-datepicker.js.map +1 -1
- package/components/je-details.js +2 -2
- package/components/je-icon-button.js +1 -1
- package/components/je-pill.js +1 -1
- package/components/je-textfield.js +15 -5
- package/components/je-textfield.js.map +1 -1
- package/components/p-B4Ctd9hh.js +43 -0
- package/components/p-B4Ctd9hh.js.map +1 -0
- package/components/{p-DDWeNBqe.js → p-D2R7Jtds.js} +5 -5
- package/components/p-D2R7Jtds.js.map +1 -0
- package/components/{p-C07q1kKX.js → p-DvT9jOjY.js} +3 -3
- package/components/{p-C07q1kKX.js.map → p-DvT9jOjY.js.map} +1 -1
- package/dist/cjs/je-button.je-icon-button.je-loading.entry.cjs.js.map +1 -1
- package/dist/cjs/je-button_3.cjs.entry.js +3 -3
- package/dist/cjs/je-button_3.cjs.entry.js.map +1 -1
- package/dist/cjs/je-card.cjs.entry.js +1 -1
- package/dist/cjs/je-card.cjs.entry.js.map +1 -1
- package/dist/cjs/je-card.entry.cjs.js.map +1 -1
- package/dist/cjs/je-datepicker.cjs.entry.js +18 -22
- package/dist/cjs/je-datepicker.cjs.entry.js.map +1 -1
- package/dist/cjs/je-datepicker.entry.cjs.js.map +1 -1
- package/dist/cjs/je-pill.cjs.entry.js +8 -4
- package/dist/cjs/je-pill.cjs.entry.js.map +1 -1
- package/dist/cjs/je-pill.entry.cjs.js.map +1 -1
- package/dist/cjs/je-textfield.cjs.entry.js +12 -3
- package/dist/cjs/je-textfield.cjs.entry.js.map +1 -1
- package/dist/cjs/je-textfield.entry.cjs.js.map +1 -1
- package/dist/cjs/jebamo.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/je-button/je-button.js +3 -3
- package/dist/collection/components/je-button/je-button.js.map +1 -1
- package/dist/collection/components/je-card/je-card.css +1 -0
- package/dist/collection/components/je-datepicker/je-datepicker.css +4 -4
- package/dist/collection/components/je-datepicker/je-datepicker.js +19 -23
- package/dist/collection/components/je-datepicker/je-datepicker.js.map +1 -1
- package/dist/collection/components/je-pill/je-pill.css +14 -17
- package/dist/collection/components/je-pill/je-pill.js +16 -43
- package/dist/collection/components/je-pill/je-pill.js.map +1 -1
- package/dist/collection/components/je-textfield/je-textfield.css +23 -0
- package/dist/collection/components/je-textfield/je-textfield.js +31 -2
- package/dist/collection/components/je-textfield/je-textfield.js.map +1 -1
- package/dist/esm/je-button.je-icon-button.je-loading.entry.js.map +1 -1
- package/dist/esm/je-button_3.entry.js +3 -3
- package/dist/esm/je-button_3.entry.js.map +1 -1
- package/dist/esm/je-card.entry.js +1 -1
- package/dist/esm/je-card.entry.js.map +1 -1
- package/dist/esm/je-datepicker.entry.js +18 -22
- package/dist/esm/je-datepicker.entry.js.map +1 -1
- package/dist/esm/je-pill.entry.js +9 -5
- package/dist/esm/je-pill.entry.js.map +1 -1
- package/dist/esm/je-textfield.entry.js +12 -3
- package/dist/esm/je-textfield.entry.js.map +1 -1
- package/dist/esm/jebamo.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/jebamo/je-button.je-icon-button.je-loading.entry.esm.js.map +1 -1
- package/dist/jebamo/je-card.entry.esm.js.map +1 -1
- package/dist/jebamo/je-datepicker.entry.esm.js.map +1 -1
- package/dist/jebamo/je-pill.entry.esm.js.map +1 -1
- package/dist/jebamo/je-textfield.entry.esm.js.map +1 -1
- package/dist/jebamo/jebamo.esm.js +1 -1
- package/dist/jebamo/p-1221fc3d.entry.js +2 -0
- package/dist/jebamo/p-1221fc3d.entry.js.map +1 -0
- package/dist/jebamo/p-3ab440dd.entry.js +2 -0
- package/dist/jebamo/p-3ab440dd.entry.js.map +1 -0
- package/dist/jebamo/{p-877450ab.entry.js → p-7365017e.entry.js} +2 -2
- package/dist/jebamo/p-7365017e.entry.js.map +1 -0
- package/dist/jebamo/p-c37c93ea.entry.js +2 -0
- package/dist/jebamo/p-c37c93ea.entry.js.map +1 -0
- package/dist/jebamo/p-c85b30e4.entry.js +2 -0
- package/dist/jebamo/p-c85b30e4.entry.js.map +1 -0
- package/dist/types/components/je-datepicker/je-datepicker.d.ts +7 -5
- package/dist/types/components/je-pill/je-pill.d.ts +2 -2
- package/dist/types/components/je-textfield/je-textfield.d.ts +5 -0
- package/dist/types/components.d.ts +10 -6
- package/package.json +1 -1
- package/components/p-DDWeNBqe.js.map +0 -1
- package/components/p-lBr1fFg4.js +0 -41
- package/components/p-lBr1fFg4.js.map +0 -1
- package/dist/jebamo/p-0fde45e3.entry.js +0 -2
- package/dist/jebamo/p-0fde45e3.entry.js.map +0 -1
- package/dist/jebamo/p-3975f47b.entry.js +0 -2
- package/dist/jebamo/p-3975f47b.entry.js.map +0 -1
- package/dist/jebamo/p-877450ab.entry.js.map +0 -1
- package/dist/jebamo/p-9d90ba0c.entry.js +0 -2
- package/dist/jebamo/p-9d90ba0c.entry.js.map +0 -1
- package/dist/jebamo/p-ee50e126.entry.js +0 -2
- package/dist/jebamo/p-ee50e126.entry.js.map +0 -1
- package/dist/vscode-data.json +0 -1698
|
@@ -393,8 +393,6 @@ export namespace Components {
|
|
|
393
393
|
"layout": 'sticky' | 'flex';
|
|
394
394
|
}
|
|
395
395
|
interface JePill {
|
|
396
|
-
"button": boolean;
|
|
397
|
-
"disabled": boolean;
|
|
398
396
|
"outline": boolean;
|
|
399
397
|
}
|
|
400
398
|
interface JePlaceholder {
|
|
@@ -638,6 +636,10 @@ export namespace Components {
|
|
|
638
636
|
* Shows a success icon in the end slot when true. Has no effect on form validation
|
|
639
637
|
*/
|
|
640
638
|
"success": boolean;
|
|
639
|
+
/**
|
|
640
|
+
* Whether to suppress the default behavior of the input event
|
|
641
|
+
*/
|
|
642
|
+
"suppressDefaultBehavior": boolean;
|
|
641
643
|
/**
|
|
642
644
|
* Transforms the value before it is passed to the input (from) and after the input emits a new value (to). There are built-in transformers for 'number', 'date', and 'datetime'.
|
|
643
645
|
*/
|
|
@@ -914,7 +916,7 @@ declare global {
|
|
|
914
916
|
new (): HTMLJeColumnGroupElement;
|
|
915
917
|
};
|
|
916
918
|
interface HTMLJeDatepickerElementEventMap {
|
|
917
|
-
"valueChange": number
|
|
919
|
+
"valueChange": number;
|
|
918
920
|
}
|
|
919
921
|
interface HTMLJeDatepickerElement extends Components.JeDatepicker, HTMLStencilElement {
|
|
920
922
|
addEventListener<K extends keyof HTMLJeDatepickerElementEventMap>(type: K, listener: (this: HTMLJeDatepickerElement, ev: JeDatepickerCustomEvent<HTMLJeDatepickerElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
@@ -1561,7 +1563,7 @@ declare namespace LocalJSX {
|
|
|
1561
1563
|
"isDateDisabled"?: (date: Date) => boolean;
|
|
1562
1564
|
"max"?: number;
|
|
1563
1565
|
"min"?: number;
|
|
1564
|
-
"onValueChange"?: (event: JeDatepickerCustomEvent<number
|
|
1566
|
+
"onValueChange"?: (event: JeDatepickerCustomEvent<number>) => void;
|
|
1565
1567
|
"type"?: 'date' | 'datetime' | 'time';
|
|
1566
1568
|
"value"?: number;
|
|
1567
1569
|
}
|
|
@@ -1774,8 +1776,6 @@ declare namespace LocalJSX {
|
|
|
1774
1776
|
"layout"?: 'sticky' | 'flex';
|
|
1775
1777
|
}
|
|
1776
1778
|
interface JePill {
|
|
1777
|
-
"button"?: boolean;
|
|
1778
|
-
"disabled"?: boolean;
|
|
1779
1779
|
"outline"?: boolean;
|
|
1780
1780
|
}
|
|
1781
1781
|
interface JePlaceholder {
|
|
@@ -2043,6 +2043,10 @@ declare namespace LocalJSX {
|
|
|
2043
2043
|
* Shows a success icon in the end slot when true. Has no effect on form validation
|
|
2044
2044
|
*/
|
|
2045
2045
|
"success"?: boolean;
|
|
2046
|
+
/**
|
|
2047
|
+
* Whether to suppress the default behavior of the input event
|
|
2048
|
+
*/
|
|
2049
|
+
"suppressDefaultBehavior"?: boolean;
|
|
2046
2050
|
/**
|
|
2047
2051
|
* Transforms the value before it is passed to the input (from) and after the input emits a new value (to). There are built-in transformers for 'number', 'date', and 'datetime'.
|
|
2048
2052
|
*/
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"p-DDWeNBqe.js","mappings":";;;AAAA,MAAM,WAAW,GAAG,y6QAAy6Q;;MCUh7Q,QAAQ,iBAAAA,kBAAA,CAAA,MAAA,QAAA,SAAAC,CAAA,CAAA;AAPrB,IAAA,WAAA,GAAA;;;;;AAaU,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK;;AAYhB,QAAA,IAAM,CAAA,MAAA,GAAG,KAAK;;AAGd,QAAA,IAAO,CAAA,OAAA,GAAG,KAAK;;AAGE,QAAA,IAAI,CAAA,IAAA,GAAkC,OAAO;;AAG7C,QAAA,IAAI,CAAA,IAAA,GAAuB,IAAI;AA8CzD;IAzCC,gBAAgB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;;YAErF,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;gBACpD,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;gBAClC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;AACxC,gBAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;;;;IAMtC,WAAW,GAAA;;QACT,CAAA,EAAA,GAAA,IAAI,CAAC,YAAY,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,KAAK,EAAE;;IAI5B,eAAe,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAA,EAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAA,EAAA,CAAI,CAAC;;;IAIxF,MAAM,GAAA;AACJ,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC;SACtB;QACD,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAA,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAQ,IAAI,EAAC,cAAc,EAAC,GAAG,EAAE,EAAE,IAAI,IAAI,CAAC,QAAQ,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAA,EAC1I,IAAI,CAAC,OAAO,GAAG,CAAa,CAAA,YAAA,EAAA,IAAA,CAAA,GAAG,CAAO,CAAA,MAAA,EAAA,IAAA,CAAA,EACvC,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,OAAO,GAAE,CACb,CACJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/je-button/je-button.scss?tag=je-button&encapsulation=shadow","src/components/je-button/je-button.tsx"],"sourcesContent":["@use '../../styles/styles' as *;\n\n/**\n * @prop --height: Fixed height\n * @prop --font-size: Font size\n * @prop --padding-inline: Inner inline padding\n * @prop --color: Text color\n * @prop --background: Default background color\n * @prop --hover-background: Hovered background color\n * @prop --active-background: Pressed background color\n */\n\n:host {\n display: contents;\n\n --height: 2.5rem;\n --padding-inline: #{spacing-get(md)};\n --font-size: #{font-size(md)};\n --border-color: transparent;\n}\n\n:host([size=sm]) {\n --height: 2rem;\n --padding-inline: #{spacing-get(sm)};\n --font-size: #{font-size(sm)};\n}\n\n:host([size=lg]) {\n --height: 3rem;\n --padding-inline: #{spacing-get(lg)};\n --font-size: #{font-size(lg)};\n}\n\n:host(:not([color])) button {\n --color: light-dark(#{secondary(800)}, #{secondary(200)});\n --hover-color: light-dark(#{secondary(850)}, #{secondary(150)});\n --active-color: light-dark(#{secondary(900)}, #{secondary(100)});\n --background: transparent;\n --hover-background: light-dark(#{secondary(150)}, #{secondary(850)});\n --active-background: light-dark(#{secondary(200)}, #{secondary(800)});\n\n &.solid {\n --border-color: light-dark(#{secondary(500)}, #{secondary(750)});\n }\n}\n\nbutton {\n &.outline {\n --border-color: currentcolor;\n }\n\n &.primary {\n &.solid {\n --color: #{primary(100)};\n --background: #{primary(500)};\n --hover-background: #{primary(600)};\n --active-background: #{primary(700)};\n }\n &.clear,\n &.outline {\n --color: light-dark(#{primary(500)}, #{primary(300)});\n --hover-color: light-dark(#{primary(600)}, #{primary(200)});\n --active-color: light-dark(#{primary(700)}, #{primary(100)});\n --background: transparent;\n --hover-background: light-dark(#{primary(50)}, #{primary(850)});\n --active-background: light-dark(#{primary(100)}, #{primary(800)});\n }\n }\n\n &.secondary {\n &.solid {\n --color: #{secondary(900)};\n --background: #{secondary(500)};\n --hover-background: #{secondary(400)};\n --active-background: #{secondary(300)};\n }\n &.clear,\n &.outline {\n --color: light-dark(#{secondary(700)}, #{secondary(500)});\n --hover-color: light-dark(#{secondary(800)}, #{secondary(400)});\n --active-color: light-dark(#{secondary(900)}, #{secondary(300)});\n --background: transparent;\n --hover-background: light-dark(#{secondary(100)}, #{secondary(875)});\n --active-background: light-dark(#{secondary(150)}, #{secondary(850)});\n }\n }\n\n &.warning {\n &.solid {\n --color: #{warning(900)};\n --background: #{warning(500)};\n --hover-background: #{warning(400)};\n --active-background: #{warning(300)};\n }\n &.clear,\n &.outline {\n --color: light-dark(#{warning(700)}, #{warning(500)});\n --hover-color: light-dark(#{warning(800)}, #{warning(400)});\n --active-color: light-dark(#{warning(900)}, #{warning(300)});\n --background: transparent;\n --hover-background: light-dark(#{warning(100)}, #{warning(900)});\n --active-background: light-dark(#{warning(150)}, #{warning(875)});\n }\n }\n\n &.success {\n &.solid {\n --color: #{success(900)};\n --background: #{success(500)};\n --hover-background: #{success(400)};\n --active-background: #{success(300)};\n }\n &.clear,\n &.outline {\n --color: light-dark(#{success(700)}, #{success(500)});\n --hover-color: light-dark(#{success(800)}, #{success(400)});\n --active-color: light-dark(#{success(900)}, #{success(300)});\n --background: transparent;\n --hover-background: light-dark(#{success(100)}, #{success(900)});\n --active-background: light-dark(#{success(150)}, #{success(875)});\n }\n }\n\n &.danger {\n &.solid {\n --color: #{danger(100)};\n --background: #{danger(500)};\n --hover-background: #{danger(600)};\n --active-background: #{danger(700)};\n }\n &.clear,\n &.outline {\n --color: light-dark(#{danger(500)}, #{danger(300)});\n --hover-color: light-dark(#{danger(600)}, #{danger(200)});\n --active-color: light-dark(#{danger(700)}, #{danger(100)});\n --background: transparent;\n --hover-background: light-dark(#{danger(50)}, #{danger(750)});\n --active-background: light-dark(#{danger(100)}, #{danger(700)});\n }\n }\n\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n position: relative;\n box-sizing: border-box;\n border-radius: radius-get(md);\n margin: 0;\n padding-block: 0;\n padding-inline: var(--padding-inline);\n cursor: pointer;\n flex-shrink: 0;\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n user-select: none;\n text-transform: capitalize;\n text-wrap: wrap;\n font-family: inherit;\n font-size: var(--font-size);\n font-weight: font-weight(semi-bold);\n height: var(--height);\n color: var(--color);\n background-color: var(--background, transparent);\n transition: all 125ms ease-in-out;\n outline-color: primary(300);\n outline-offset: 3px;\n border: solid 1px var(--border-color);\n\n @media (hover: hover) {\n &:hover:not(:disabled) {\n background-color: var(--hover-background, var(--background, transparent));\n color: var(--hover-color, var(--color));\n }\n }\n\n &:active:not(:disabled) {\n background-color: var(--active-background, var(--background, transparent));\n color: var(--active-color, var(--color));\n }\n\n &:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n &.pending {\n opacity: 0.8;\n cursor: progress;\n width: var(--pending-width);\n }\n\n &.expand {\n width: 100%;\n }\n}\n\n::slotted([slot=badge]) {\n top: 0;\n right: 0;\n position: absolute;\n z-index: 1;\n transform: translate(50%, -50%);\n border-radius: radius-get(circle);\n box-sizing: border-box;\n color: light-dark(secondary(100), secondary(850));\n background-color: light-dark(secondary(850), secondary(100));\n padding: spacing-get(2xs);\n font-size: var(--font-size);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n","import { Component, Prop, h, Element, Listen, Host, Watch } from '@stencil/core';\nimport { Color } from '../../utils/utils';\n\n@Component({\n tag: 'je-button',\n styleUrl: 'je-button.scss',\n shadow: {\n delegatesFocus: true\n },\n})\nexport class JeButton {\n @Element() el: HTMLJeButtonElement;\n private formButtonEl?: HTMLButtonElement;\n private buttonEl: HTMLButtonElement;\n\n /** Disables button */\n @Prop() disabled = false;\n\n /** Can set to submit or reset to participate in forms */\n @Prop() type?: 'submit' | 'reset';\n\n /**\n * Can set form id to participate in forms. Use this if you need to place\n * submit/reset button outside the form element\n */\n @Prop() form?: string;\n\n /** Expands the button to the full width of it's container */\n @Prop() expand = false;\n\n /** Shows a loading spinner and disables the button */\n @Prop() pending = false;\n\n /** Button fill */\n @Prop({ reflect: true }) fill: 'solid' | 'outline' | 'clear' = 'solid';\n\n /** Button size */\n @Prop({ reflect: true }) size: 'md' | 'lg' | 'sm' = 'md';\n\n /** Predefined colors */\n @Prop({ reflect: true }) color?: Color;\n\n componentDidLoad() {\n if (this.type) {\n let formEl = this.form ? document.getElementById(this.form) : this.el.closest('form');\n //if (formEl.tagName === 'JE-FORM') formEl = formEl.querySelector('form')\n if (formEl) {\n this.formButtonEl = document.createElement('button');\n this.formButtonEl.type = this.type;\n this.formButtonEl.style.display = 'none';\n formEl.append(this.formButtonEl);\n }\n }\n }\n\n @Listen('click')\n handleClick() {\n this.formButtonEl?.click();\n }\n\n @Watch('pending')\n onPendingChange() {\n if (this.pending) {\n this.buttonEl.style.setProperty('--pending-width', `${this.buttonEl.clientWidth}px`);\n }\n }\n\n render() {\n const classes = {\n [this.fill]: true,\n expand: this.expand,\n pending: this.pending,\n [this.color]: !!this.color\n }\n return (\n <Host>\n <button part='inner-button' ref={el => this.buttonEl = el} disabled={this.disabled || this.pending} type='button' tabindex={0} class={classes}>\n {this.pending ? <je-loading/> : <slot/>}\n <slot name='badge'/>\n </button>\n </Host>\n );\n }\n}\n"],"version":3}
|
package/components/p-lBr1fFg4.js
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { p as proxyCustomElement, H, h, d as Host } from './p-CL0NicyQ.js';
|
|
2
|
-
|
|
3
|
-
const jePillCss = ":host{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;gap:var(--je-spacing-2xs);padding-inline:4px;border-radius:var(--je-border-radius, 2px);height:20px;min-width:40px;-webkit-user-select:none;user-select:none;transition:all 125ms ease-in-out;color:var(--je-pill-color);background-color:var(--je-pill-background);--je-pill-color:var(--je-primary-500, buttonface);--je-pill-background:var(--je-primary-100, buttontext);--je-pill-hover-background:var(--je-primary-200, buttontext)}:host(:not([button=false])){cursor:pointer}:host(:not([button=false])) ::slotted(je-icon){cursor:pointer}@media (hover: hover){:host(:not([button=false]):not([disabled]):hover){--je-pill-background:var(--je-pill-hover-background)}}:host([disabled]){opacity:0.8;cursor:default}:host([outline]){background-color:transparent;color:var(--je-pill-color);border:solid 1px var(--je-pill-background)}";
|
|
4
|
-
|
|
5
|
-
const JePill = /*@__PURE__*/ proxyCustomElement(class JePill extends H {
|
|
6
|
-
constructor() {
|
|
7
|
-
super();
|
|
8
|
-
this.__registerHost();
|
|
9
|
-
this.__attachShadow();
|
|
10
|
-
this.outline = false;
|
|
11
|
-
this.button = true;
|
|
12
|
-
this.disabled = false;
|
|
13
|
-
}
|
|
14
|
-
render() {
|
|
15
|
-
return (h(Host, { key: '8e8b4caf9684c5ac5d4e92aac5988a7bab70393a' }, h("slot", { key: '459f21016cd0577bcccff43252b9a7c0b8e2e4b7' })));
|
|
16
|
-
}
|
|
17
|
-
static get style() { return jePillCss; }
|
|
18
|
-
}, [1, "je-pill", {
|
|
19
|
-
"outline": [516],
|
|
20
|
-
"button": [516],
|
|
21
|
-
"disabled": [516]
|
|
22
|
-
}]);
|
|
23
|
-
function defineCustomElement() {
|
|
24
|
-
if (typeof customElements === "undefined") {
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
const components = ["je-pill"];
|
|
28
|
-
components.forEach(tagName => { switch (tagName) {
|
|
29
|
-
case "je-pill":
|
|
30
|
-
if (!customElements.get(tagName)) {
|
|
31
|
-
customElements.define(tagName, JePill);
|
|
32
|
-
}
|
|
33
|
-
break;
|
|
34
|
-
} });
|
|
35
|
-
}
|
|
36
|
-
defineCustomElement();
|
|
37
|
-
|
|
38
|
-
export { JePill as J, defineCustomElement as d };
|
|
39
|
-
//# sourceMappingURL=p-lBr1fFg4.js.map
|
|
40
|
-
|
|
41
|
-
//# sourceMappingURL=p-lBr1fFg4.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"p-lBr1fFg4.js","mappings":";;AAAA,MAAM,SAAS,GAAG,84BAA84B;;MCOn5B,MAAM,iBAAAA,kBAAA,CAAA,MAAA,MAAA,SAAAC,CAAA,CAAA;AALnB,IAAA,WAAA,GAAA;;;;AAM2B,QAAA,IAAO,CAAA,OAAA,GAAG,KAAK;AACf,QAAA,IAAM,CAAA,MAAA,GAAG,IAAI;AACb,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK;AAS1C;IAPC,MAAM,GAAA;QACJ,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACR;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/je-pill/je-pill.scss?tag=je-pill&encapsulation=shadow","src/components/je-pill/je-pill.tsx"],"sourcesContent":[":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n gap: var(--je-spacing-2xs);\n padding-inline: 4px;\n border-radius: var(--je-border-radius, 2px);\n height: 20px;\n min-width: 40px;\n -webkit-user-select: none;\n user-select: none;\n transition: all 125ms ease-in-out;\n color: var(--je-pill-color);\n background-color: var(--je-pill-background);\n\n --je-pill-color: var(--je-primary-500, buttonface);\n --je-pill-background: var(--je-primary-100, buttontext);\n --je-pill-hover-background: var(--je-primary-200, buttontext);\n}\n\n:host(:not([button=false])) {\n cursor: pointer;\n ::slotted(je-icon) {\n cursor: pointer;\n }\n}\n\n:host(:not([button=false]):not([disabled]):hover) {\n @media (hover: hover) {\n --je-pill-background: var(--je-pill-hover-background);\n }\n}\n\n:host([disabled]) {\n opacity: 0.8;\n cursor: default;\n}\n\n:host([outline]) {\n background-color: transparent;\n color: var(--je-pill-color);\n border: solid 1px var(--je-pill-background);\n}\n","import { Component, Host, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'je-pill',\n styleUrl: 'je-pill.scss',\n shadow: true,\n})\nexport class JePill {\n @Prop({ reflect: true }) outline = false;\n @Prop({ reflect: true }) button = true;\n @Prop({ reflect: true }) disabled = false;\n\n render() {\n return (\n <Host>\n <slot></slot>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as e,h as o,a as r}from"./p-Dq5G4FMt.js";const t=":host{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;gap:var(--je-spacing-2xs);padding-inline:4px;border-radius:var(--je-border-radius, 2px);height:20px;min-width:40px;-webkit-user-select:none;user-select:none;transition:all 125ms ease-in-out;color:var(--je-pill-color);background-color:var(--je-pill-background);--je-pill-color:var(--je-primary-500, buttonface);--je-pill-background:var(--je-primary-100, buttontext);--je-pill-hover-background:var(--je-primary-200, buttontext)}:host(:not([button=false])){cursor:pointer}:host(:not([button=false])) ::slotted(je-icon){cursor:pointer}@media (hover: hover){:host(:not([button=false]):not([disabled]):hover){--je-pill-background:var(--je-pill-hover-background)}}:host([disabled]){opacity:0.8;cursor:default}:host([outline]){background-color:transparent;color:var(--je-pill-color);border:solid 1px var(--je-pill-background)}";const a=class{constructor(o){e(this,o);this.outline=false;this.button=true;this.disabled=false}render(){return o(r,{key:"8e8b4caf9684c5ac5d4e92aac5988a7bab70393a"},o("slot",{key:"459f21016cd0577bcccff43252b9a7c0b8e2e4b7"}))}};a.style=t;export{a as je_pill};
|
|
2
|
-
//# sourceMappingURL=p-0fde45e3.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["jePillCss","JePill","constructor","hostRef","this","outline","button","disabled","render","h","Host","key"],"sources":["src/components/je-pill/je-pill.scss?tag=je-pill&encapsulation=shadow","src/components/je-pill/je-pill.tsx"],"sourcesContent":[":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n gap: var(--je-spacing-2xs);\n padding-inline: 4px;\n border-radius: var(--je-border-radius, 2px);\n height: 20px;\n min-width: 40px;\n -webkit-user-select: none;\n user-select: none;\n transition: all 125ms ease-in-out;\n color: var(--je-pill-color);\n background-color: var(--je-pill-background);\n\n --je-pill-color: var(--je-primary-500, buttonface);\n --je-pill-background: var(--je-primary-100, buttontext);\n --je-pill-hover-background: var(--je-primary-200, buttontext);\n}\n\n:host(:not([button=false])) {\n cursor: pointer;\n ::slotted(je-icon) {\n cursor: pointer;\n }\n}\n\n:host(:not([button=false]):not([disabled]):hover) {\n @media (hover: hover) {\n --je-pill-background: var(--je-pill-hover-background);\n }\n}\n\n:host([disabled]) {\n opacity: 0.8;\n cursor: default;\n}\n\n:host([outline]) {\n background-color: transparent;\n color: var(--je-pill-color);\n border: solid 1px var(--je-pill-background);\n}\n","import { Component, Host, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'je-pill',\n styleUrl: 'je-pill.scss',\n shadow: true,\n})\nexport class JePill {\n @Prop({ reflect: true }) outline = false;\n @Prop({ reflect: true }) button = true;\n @Prop({ reflect: true }) disabled = false;\n\n render() {\n return (\n <Host>\n <slot></slot>\n </Host>\n );\n }\n}\n"],"mappings":"kDAAA,MAAMA,EAAY,+4B,MCOLC,EAAM,MALnB,WAAAC,CAAAC,G,UAM2BC,KAAOC,QAAG,MACVD,KAAME,OAAG,KACTF,KAAQG,SAAG,KASrC,CAPC,MAAAC,GACE,OACEC,EAACC,EAAI,CAAAC,IAAA,4CACHF,EAAa,QAAAE,IAAA,6C","ignoreList":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as e,c as t,h as i,F as a,a as s,g as n}from"./p-Dq5G4FMt.js";import{d as c}from"./p-iWCgRMLC.js";const d=":host{display:flex;padding:var(--je-spacing-xs, 0.5rem);box-sizing:border-box;flex-direction:column;align-items:center;justify-content:center;gap:var(--je-spacing-sm, 0.75rem)}je-button.day{--height:var(--je-spacing-xl, 1.5rem);--padding-inline:0px}je-button.day::part(inner-button){width:var(--je-spacing-xl, 1.5rem);font-weight:400}.header{width:100%;min-width:200px;max-width:300px;display:flex;align-items:center;justify-content:space-between}.header span{flex:1;text-align:center}.weekdays-grid{display:grid;grid-template-columns:repeat(7, 1fr);gap:var(--je-spacing-2xs, 0.25rem)}.weekdays-grid div{height:var(--je-spacing-xl, 1.5rem);width:var(--je-spacing-xl, 1.5rem);font-size:var(--je-font-md, 1rem);font-weight:400;color:color-mix(in srgb, var(--je-secondary, #99becb) 80%, black 20%);text-align:center;align-content:center}.days-grid{display:grid;grid-template-columns:repeat(7, 1fr);gap:var(--je-spacing-2xs, 0.25rem)}.timepicker{display:flex;justify-content:space-between;align-items:center;width:100%;min-width:200px;max-width:300px}.timepicker-content{display:flex}.timepicker-column{display:flex;flex-direction:column;gap:var(--je-spacing-2xs, 0.25rem);height:200px;overflow:auto;align-items:center;padding:var(--je-spacing-xs, 0.5rem);box-sizing:border-box}";const r=["S","M","T","W","T","F","S"];const o=class{constructor(i){e(this,i);this.valueChange=t(this,"valueChange",7);this.currentDate=new Date;this.type="datetime";this.includeSeconds=false;this.nextMonth=()=>{this.currentDate=c.addMonths(this.currentDate,1)};this.prevMonth=()=>{this.currentDate=c.subMonths(this.currentDate,1)};this.nextYear=()=>{this.currentDate=c.addMonths(this.currentDate,12)};this.prevYear=()=>{this.currentDate=c.subMonths(this.currentDate,12)};this.setDay=e=>{this.value=c.set(this.value,{year:e.getFullYear(),month:e.getMonth(),date:e.getDate()}).getTime()};this.setHour=e=>{this.value=c.setHours(this.value,e).getTime()};this.setMinute=e=>{this.value=c.setMinutes(this.value,e).getTime()};this.setSecond=e=>{this.value=c.setSeconds(this.value,e).getTime()};this.scrollTimeIntoView=()=>{this.el.shadowRoot.querySelectorAll(".timepicker-column").forEach((e=>{var t;(t=e.querySelector('je-button[color="primary"][fill="solid"]'))===null||t===void 0?void 0:t.scrollIntoView({block:"center",behavior:"smooth"})}))}}componentWillLoad(){if(this.value){this.currentDate=new Date(this.value)}}valueChangeHandler(){if(this.value){this.currentDate=new Date(this.value)}this.valueChange.emit(this.value?new Date(this.value).getTime():undefined)}render(){const e=c.startOfMonth(this.currentDate);const t=c.endOfMonth(this.currentDate);const n=c.eachDayOfInterval({start:e,end:t});const d=c.subMonths(this.currentDate,1);const o=c.endOfMonth(d);const l=c.getDay(e);const h=Array.from({length:l}).map(((e,t)=>c.subMonths(this.currentDate,1).setDate(o.getDate()-(l-t-1))));const b=c.getDay(t);const f=Array.from({length:6-b}).map(((e,t)=>c.addMonths(this.currentDate,1).setDate(t+1)));return i(s,{key:"b98a066fbe52dbdfd1cbdceaa2f0dee60b33cc23"},(this.type=="date"||this.type=="datetime")&&i(a,{key:"7d0b6573e3e5093da30d34c1477e2e83ca826a82"},i("div",{key:"0011cf847d1211351d4d11b387fa5d3af5505c35",class:"header"},i("je-icon-button",{key:"b95ca07bdd17ea031822ce26be1d757cbf36904b",icon:"keyboard_double_arrow_left",onClick:this.prevYear}),i("je-icon-button",{key:"6c29c5a3387fcb722847fe1323f31e28bc407450",icon:"keyboard_arrow_left",onClick:this.prevMonth}),i("span",{key:"bc2f58d9906e06d025a7b57ad3cd2d401a2bca68"},c.format(this.currentDate,"MMMM yyyy")),i("je-icon-button",{key:"3f8ddca9bf1b02a4967350625aa1f2ddaa44b816",icon:"keyboard_arrow_right",onClick:this.nextMonth}),i("je-icon-button",{key:"773923004e744dfbd3e789e205a89b07b6a2d5e5",icon:"keyboard_double_arrow_right",onClick:this.nextYear})),i("div",{key:"5f7d1d002add648381ab42fd0bfb782c24f7bb02",class:"weekdays-grid"},r.map((e=>i("div",null,e)))),i("div",{key:"8f3cd3f021d9a0945bd90c3e196096bd62d78558",class:"days-grid"},h.map((e=>i("je-button",{expand:true,disabled:true,color:"secondary",fill:"clear",class:"day"},c.format(e,"d")))),n.map((e=>{const t=this.value&&c.isSameDay(e,this.value);const a=c.isToday(e);const s=this.isDateDisabled&&this.isDateDisabled(e)||this.min&&e<new Date(this.min)||this.max&&e>new Date(this.max);return i("je-button",{expand:true,disabled:s,color:t||a?"primary":s?"secondary":undefined,fill:t?"solid":"clear",class:"day",onClick:()=>this.setDay(e)},c.format(e,"d"))})),f.map((e=>i("je-button",{expand:true,disabled:true,color:"secondary",fill:"clear",class:"day"},c.format(e,"d")))))),(this.type=="time"||this.type=="datetime")&&i("div",{key:"f50f591eeb16d5a8732e9b30a42eba673f32384d",class:"timepicker"},i("span",{key:"6927deea9958b340cca4cd7637ca2603c6edc63c"},"Time"),i("je-popover",{key:"12138f92fcef7386ea1ab7288ba25fa7af2c6796",arrow:true,onPresent:this.scrollTimeIntoView},i("je-pill",{key:"a905c257376113e808b35616c94e5cf2b413270d",slot:"trigger"},this.value?this.includeSeconds?c.format(this.value,"hh:mm:ss a"):c.format(this.value,"hh:mm a"):"-"),i("div",{key:"2af6bb66e76ec0858cbfa92694648bede547dbf0",class:"timepicker-content"},i("div",{key:"57ec7f9421eefe59194357a6ab6813f889a52a3f",class:"timepicker-column"},Array.from({length:24}).map(((e,t)=>i("je-button",{size:"sm",color:this.currentDate.getHours()===t?"primary":undefined,fill:this.currentDate.getHours()===t?"solid":"clear",onClick:()=>this.setHour(t)},c.format((new Date).setHours(t),"hh a"))))),i("div",{key:"14daad853052b211b6a491a00b0e43a492129502",class:"timepicker-column"},Array.from({length:60}).map(((e,t)=>i("je-button",{size:"sm",color:this.currentDate.getMinutes()===t?"primary":undefined,fill:this.currentDate.getMinutes()===t?"solid":"clear",onClick:()=>this.setMinute(t)},c.format((new Date).setMinutes(t),"mm"))))),this.includeSeconds&&i("div",{key:"2f892c17024c84abdd0c9e94f839943738696248",class:"timepicker-column"},Array.from({length:60}).map(((e,t)=>i("je-button",{size:"sm",color:this.currentDate.getSeconds()===t?"primary":undefined,fill:this.currentDate.getSeconds()===t?"solid":"clear",onClick:()=>this.setSecond(t)},c.format((new Date).setSeconds(t),"ss")))))))))}get el(){return n(this)}static get watchers(){return{value:["valueChangeHandler"]}}};o.style=d;export{o as je_datepicker};
|
|
2
|
-
//# sourceMappingURL=p-3975f47b.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["jeDatepickerCss","daysOfWeek","JeDatepicker","constructor","hostRef","this","currentDate","Date","type","includeSeconds","nextMonth","addMonths","prevMonth","subMonths","nextYear","prevYear","setDay","day","value","set","year","getFullYear","month","getMonth","date","getDate","getTime","setHour","hour","setHours","setMinute","minute","setMinutes","setSecond","second","setSeconds","scrollTimeIntoView","el","shadowRoot","querySelectorAll","forEach","column","_a","querySelector","scrollIntoView","block","behavior","componentWillLoad","valueChangeHandler","valueChange","emit","undefined","render","firstDayOfMonth","startOfMonth","lastDayOfMonth","endOfMonth","daysInMonth","eachDayOfInterval","start","end","prevMonthEnd","firstDayOfWeek","getDay","daysBefore","Array","from","length","map","_","i","setDate","lastDayOfWeek","daysAfter","h","Host","key","Fragment","class","icon","onClick","format","expand","disabled","color","fill","selected","isSameDay","today","isToday","isDisabled","isDateDisabled","min","max","arrow","onPresent","slot","size","getHours","getMinutes","getSeconds"],"sources":["src/components/je-datepicker/je-datepicker.scss?tag=je-datepicker&encapsulation=shadow","src/components/je-datepicker/je-datepicker.tsx"],"sourcesContent":["@use '../../styles/styles' as *;\n\n:host {\n display: flex;\n padding: spacing-get(xs);\n box-sizing: border-box;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: spacing-get(sm);\n}\n\nje-button.day {\n --height: #{spacing-get(xl)};\n --padding-inline: 0px;\n\n &::part(inner-button) {\n width: spacing-get(xl);\n font-weight: 400;\n }\n}\n\n.header {\n width: 100%;\n min-width: 200px;\n max-width: 300px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n span {\n flex: 1;\n text-align: center;\n }\n}\n\n.weekdays-grid {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n gap: spacing-get(2xs);\n\n div {\n height: spacing-get(xl);\n width: spacing-get(xl);\n font-size: font-size(md);\n font-weight: 400;\n color: secondary(600);\n text-align: center;\n align-content: center;\n }\n}\n\n.days-grid {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n gap: spacing-get(2xs);\n}\n\n.timepicker {\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n min-width: 200px;\n max-width: 300px;\n}\n\n.timepicker-content {\n display: flex;\n}\n\n.timepicker-column {\n display: flex;\n flex-direction: column;\n gap: spacing-get(2xs);\n height: 200px;\n overflow: auto;\n align-items: center;\n padding: spacing-get(xs);\n box-sizing: border-box;\n}\n","import { Component, Element, Event, EventEmitter, Fragment, Host, Prop, State, Watch, h } from '@stencil/core';\nimport { startOfMonth, endOfMonth, eachDayOfInterval, addMonths, subMonths, isSameDay, isToday, format, getDay, set, setHours, setMinutes, setSeconds } from 'date-fns';\n\nconst daysOfWeek = ['S', 'M', 'T', 'W', 'T', 'F', 'S'] as const;\n\n@Component({\n tag: 'je-datepicker',\n styleUrl: 'je-datepicker.scss',\n shadow: true,\n})\nexport class JeDatepicker {\n @Element() el!: HTMLJeDatepickerElement;\n @State() currentDate = new Date();\n @Prop() type: 'date' | 'datetime' | 'time' = 'datetime';\n @Prop() includeSeconds = false;\n @Prop() min?: number;\n @Prop() max?: number;\n @Prop() isDateDisabled?: (date: Date) => boolean;\n @Prop({ mutable: true }) value?: number;\n @Event() valueChange: EventEmitter<number | undefined>;\n\n componentWillLoad() {\n if (this.value) {\n this.currentDate = new Date(this.value);\n }\n }\n\n @Watch('value')\n valueChangeHandler() {\n if (this.value) {\n this.currentDate = new Date(this.value);\n }\n this.valueChange.emit(this.value ? new Date(this.value).getTime() : undefined);\n }\n\n nextMonth = () => {\n this.currentDate = addMonths(this.currentDate, 1);\n }\n\n prevMonth = () => {\n this.currentDate = subMonths(this.currentDate, 1);\n }\n\n nextYear = () => {\n this.currentDate = addMonths(this.currentDate, 12);\n }\n\n prevYear = () => {\n this.currentDate = subMonths(this.currentDate, 12);\n }\n\n setDay = (day: Date) => {\n this.value = set(this.value, {\n year: day.getFullYear(),\n month: day.getMonth(),\n date: day.getDate()\n }).getTime();\n }\n\n setHour = (hour: number) => {\n this.value = setHours(this.value, hour).getTime();\n }\n\n setMinute = (minute: number) => {\n this.value = setMinutes(this.value, minute).getTime();\n }\n\n setSecond = (second: number) => {\n this.value = setSeconds(this.value, second).getTime();\n }\n\n scrollTimeIntoView = () => {\n this.el.shadowRoot.querySelectorAll('.timepicker-column').forEach(column => {\n column.querySelector('je-button[color=\"primary\"][fill=\"solid\"]')?.scrollIntoView({ block: 'center', behavior: 'smooth'});\n });\n }\n\n render() {\n const firstDayOfMonth = startOfMonth(this.currentDate);\n const lastDayOfMonth = endOfMonth(this.currentDate);\n const daysInMonth = eachDayOfInterval({ start: firstDayOfMonth, end: lastDayOfMonth });\n\n const prevMonth = subMonths(this.currentDate, 1);\n const prevMonthEnd = endOfMonth(prevMonth);\n\n const firstDayOfWeek = getDay(firstDayOfMonth);\n const daysBefore = Array.from({ length: firstDayOfWeek }).map((_, i) =>\n subMonths(this.currentDate, 1).setDate(prevMonthEnd.getDate() - (firstDayOfWeek - i - 1))\n );\n\n const lastDayOfWeek = getDay(lastDayOfMonth);\n const daysAfter = Array.from({ length: 6 - lastDayOfWeek }).map((_, i) =>\n addMonths(this.currentDate, 1).setDate(i + 1)\n );\n\n return (\n <Host>\n {(this.type == 'date' || this.type == 'datetime') && (\n <Fragment>\n <div class=\"header\">\n <je-icon-button icon='keyboard_double_arrow_left' onClick={this.prevYear} />\n <je-icon-button icon='keyboard_arrow_left' onClick={this.prevMonth} />\n <span>{format(this.currentDate, 'MMMM yyyy')}</span>\n <je-icon-button icon='keyboard_arrow_right' onClick={this.nextMonth} />\n <je-icon-button icon='keyboard_double_arrow_right' onClick={this.nextYear} />\n </div>\n\n <div class=\"weekdays-grid\">\n {daysOfWeek.map(day => <div>{day}</div>)}\n </div>\n\n <div class=\"days-grid\">\n {daysBefore.map(day => (\n <je-button expand={true} disabled={true} color='secondary' fill='clear' class='day'>\n {format(day, 'd')}\n </je-button>\n ))}\n\n {daysInMonth.map(day => {\n const selected = this.value && isSameDay(day, this.value);\n const today = isToday(day);\n const isDisabled = (this.isDateDisabled && this.isDateDisabled(day)) || (this.min && day < new Date(this.min)) || (this.max && day > new Date(this.max));\n return (\n <je-button\n expand={true}\n disabled={isDisabled}\n color={selected || today ? 'primary' : isDisabled ? 'secondary' : undefined}\n fill={selected ? 'solid' : 'clear'}\n class='day'\n onClick={() => this.setDay(day)}\n >\n {format(day, 'd')}\n </je-button>\n );\n })}\n\n {daysAfter.map(day => (\n <je-button expand={true} disabled={true} color='secondary' fill='clear' class='day'>\n {format(day, 'd')}\n </je-button>\n ))}\n </div>\n </Fragment>\n )}\n {(this.type == 'time' || this.type == 'datetime') && (\n <div class='timepicker'>\n <span>Time</span>\n <je-popover arrow={true} onPresent={this.scrollTimeIntoView}>\n <je-pill slot='trigger'>\n {this.value ? (\n this.includeSeconds ? format(this.value, 'hh:mm:ss a') : format(this.value, 'hh:mm a')\n ) : '-'}\n </je-pill>\n <div class='timepicker-content'>\n <div class='timepicker-column'>\n {Array.from({ length: 24 }).map((_, hour) => (\n <je-button\n size='sm'\n color={this.currentDate.getHours() === hour ? 'primary' : undefined}\n fill={this.currentDate.getHours() === hour ? 'solid' : 'clear'}\n onClick={() => this.setHour(hour)}\n >\n {format(new Date().setHours(hour), 'hh a')}\n </je-button>\n ))}\n </div>\n <div class='timepicker-column'>\n {Array.from({ length: 60 }).map((_, minute) => (\n <je-button\n size='sm'\n color={this.currentDate.getMinutes() === minute ? 'primary' : undefined}\n fill={this.currentDate.getMinutes() === minute ? 'solid' : 'clear'}\n onClick={() => this.setMinute(minute)}\n >\n {format(new Date().setMinutes(minute), 'mm')}\n </je-button>\n ))}\n </div>\n {this.includeSeconds && (\n <div class='timepicker-column'>\n {Array.from({ length: 60 }).map((_, second) => (\n <je-button\n size='sm'\n color={this.currentDate.getSeconds() === second ? 'primary' : undefined}\n fill={this.currentDate.getSeconds() === second ? 'solid' : 'clear'}\n onClick={() => this.setSecond(second)}\n >\n {format(new Date().setSeconds(second), 'ss')}\n </je-button>\n ))}\n </div>\n )}\n </div>\n </je-popover>\n </div>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["jeButtonCss","JeButton","constructor","hostRef","this","disabled","expand","pending","fill","size","componentDidLoad","type","formEl","form","document","getElementById","el","closest","formButtonEl","createElement","style","display","append","handleClick","_a","click","onPendingChange","buttonEl","setProperty","clientWidth","render","classes","color","h","Host","key","part","ref","tabindex","class","name","jeIconButtonCss","JeIconButton","exportparts","icon","slot","jeLoadingCss","spinners","lines","dur","fn","index","total","transform","animationDelay","y1","y2","buildLine","spinner","duration","data","viewBox","JeLoading","svgs","i","push"],"sources":["src/components/je-button/je-button.scss?tag=je-button&encapsulation=shadow","src/components/je-button/je-button.tsx","src/components/je-icon-button/je-icon-button.scss?tag=je-icon-button&encapsulation=shadow","src/components/je-icon-button/je-icon-button.tsx","src/components/je-loading/je-loading.scss?tag=je-loading&encapsulation=shadow","src/components/je-loading/je-loading.tsx"],"sourcesContent":["@use '../../styles/styles' as *;\n\n/**\n * @prop --height: Fixed height\n * @prop --font-size: Font size\n * @prop --padding-inline: Inner inline padding\n * @prop --color: Text color\n * @prop --background: Default background color\n * @prop --hover-background: Hovered background color\n * @prop --active-background: Pressed background color\n */\n\n:host {\n display: contents;\n\n --height: 2.5rem;\n --padding-inline: #{spacing-get(md)};\n --font-size: #{font-size(md)};\n --border-color: transparent;\n}\n\n:host([size=sm]) {\n --height: 2rem;\n --padding-inline: #{spacing-get(sm)};\n --font-size: #{font-size(sm)};\n}\n\n:host([size=lg]) {\n --height: 3rem;\n --padding-inline: #{spacing-get(lg)};\n --font-size: #{font-size(lg)};\n}\n\n:host(:not([color])) button {\n --color: light-dark(#{secondary(800)}, #{secondary(200)});\n --hover-color: light-dark(#{secondary(850)}, #{secondary(150)});\n --active-color: light-dark(#{secondary(900)}, #{secondary(100)});\n --background: transparent;\n --hover-background: light-dark(#{secondary(150)}, #{secondary(850)});\n --active-background: light-dark(#{secondary(200)}, #{secondary(800)});\n\n &.solid {\n --border-color: light-dark(#{secondary(500)}, #{secondary(750)});\n }\n}\n\nbutton {\n &.outline {\n --border-color: currentcolor;\n }\n\n &.primary {\n &.solid {\n --color: #{primary(100)};\n --background: #{primary(500)};\n --hover-background: #{primary(600)};\n --active-background: #{primary(700)};\n }\n &.clear,\n &.outline {\n --color: light-dark(#{primary(500)}, #{primary(300)});\n --hover-color: light-dark(#{primary(600)}, #{primary(200)});\n --active-color: light-dark(#{primary(700)}, #{primary(100)});\n --background: transparent;\n --hover-background: light-dark(#{primary(50)}, #{primary(850)});\n --active-background: light-dark(#{primary(100)}, #{primary(800)});\n }\n }\n\n &.secondary {\n &.solid {\n --color: #{secondary(900)};\n --background: #{secondary(500)};\n --hover-background: #{secondary(400)};\n --active-background: #{secondary(300)};\n }\n &.clear,\n &.outline {\n --color: light-dark(#{secondary(700)}, #{secondary(500)});\n --hover-color: light-dark(#{secondary(800)}, #{secondary(400)});\n --active-color: light-dark(#{secondary(900)}, #{secondary(300)});\n --background: transparent;\n --hover-background: light-dark(#{secondary(100)}, #{secondary(875)});\n --active-background: light-dark(#{secondary(150)}, #{secondary(850)});\n }\n }\n\n &.warning {\n &.solid {\n --color: #{warning(900)};\n --background: #{warning(500)};\n --hover-background: #{warning(400)};\n --active-background: #{warning(300)};\n }\n &.clear,\n &.outline {\n --color: light-dark(#{warning(700)}, #{warning(500)});\n --hover-color: light-dark(#{warning(800)}, #{warning(400)});\n --active-color: light-dark(#{warning(900)}, #{warning(300)});\n --background: transparent;\n --hover-background: light-dark(#{warning(100)}, #{warning(900)});\n --active-background: light-dark(#{warning(150)}, #{warning(875)});\n }\n }\n\n &.success {\n &.solid {\n --color: #{success(900)};\n --background: #{success(500)};\n --hover-background: #{success(400)};\n --active-background: #{success(300)};\n }\n &.clear,\n &.outline {\n --color: light-dark(#{success(700)}, #{success(500)});\n --hover-color: light-dark(#{success(800)}, #{success(400)});\n --active-color: light-dark(#{success(900)}, #{success(300)});\n --background: transparent;\n --hover-background: light-dark(#{success(100)}, #{success(900)});\n --active-background: light-dark(#{success(150)}, #{success(875)});\n }\n }\n\n &.danger {\n &.solid {\n --color: #{danger(100)};\n --background: #{danger(500)};\n --hover-background: #{danger(600)};\n --active-background: #{danger(700)};\n }\n &.clear,\n &.outline {\n --color: light-dark(#{danger(500)}, #{danger(300)});\n --hover-color: light-dark(#{danger(600)}, #{danger(200)});\n --active-color: light-dark(#{danger(700)}, #{danger(100)});\n --background: transparent;\n --hover-background: light-dark(#{danger(50)}, #{danger(750)});\n --active-background: light-dark(#{danger(100)}, #{danger(700)});\n }\n }\n\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n position: relative;\n box-sizing: border-box;\n border-radius: radius-get(md);\n margin: 0;\n padding-block: 0;\n padding-inline: var(--padding-inline);\n cursor: pointer;\n flex-shrink: 0;\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n user-select: none;\n text-transform: capitalize;\n text-wrap: wrap;\n font-family: inherit;\n font-size: var(--font-size);\n font-weight: font-weight(semi-bold);\n height: var(--height);\n color: var(--color);\n background-color: var(--background, transparent);\n transition: all 125ms ease-in-out;\n outline-color: primary(300);\n outline-offset: 3px;\n border: solid 1px var(--border-color);\n\n @media (hover: hover) {\n &:hover:not(:disabled) {\n background-color: var(--hover-background, var(--background, transparent));\n color: var(--hover-color, var(--color));\n }\n }\n\n &:active:not(:disabled) {\n background-color: var(--active-background, var(--background, transparent));\n color: var(--active-color, var(--color));\n }\n\n &:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n &.pending {\n opacity: 0.8;\n cursor: progress;\n width: var(--pending-width);\n }\n\n &.expand {\n width: 100%;\n }\n}\n\n::slotted([slot=badge]) {\n top: 0;\n right: 0;\n position: absolute;\n z-index: 1;\n transform: translate(50%, -50%);\n border-radius: radius-get(circle);\n box-sizing: border-box;\n color: light-dark(secondary(100), secondary(850));\n background-color: light-dark(secondary(850), secondary(100));\n padding: spacing-get(2xs);\n font-size: var(--font-size);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n","import { Component, Prop, h, Element, Listen, Host, Watch } from '@stencil/core';\nimport { Color } from '../../utils/utils';\n\n@Component({\n tag: 'je-button',\n styleUrl: 'je-button.scss',\n shadow: {\n delegatesFocus: true\n },\n})\nexport class JeButton {\n @Element() el: HTMLJeButtonElement;\n private formButtonEl?: HTMLButtonElement;\n private buttonEl: HTMLButtonElement;\n\n /** Disables button */\n @Prop() disabled = false;\n\n /** Can set to submit or reset to participate in forms */\n @Prop() type?: 'submit' | 'reset';\n\n /**\n * Can set form id to participate in forms. Use this if you need to place\n * submit/reset button outside the form element\n */\n @Prop() form?: string;\n\n /** Expands the button to the full width of it's container */\n @Prop() expand = false;\n\n /** Shows a loading spinner and disables the button */\n @Prop() pending = false;\n\n /** Button fill */\n @Prop({ reflect: true }) fill: 'solid' | 'outline' | 'clear' = 'solid';\n\n /** Button size */\n @Prop({ reflect: true }) size: 'md' | 'lg' | 'sm' = 'md';\n\n /** Predefined colors */\n @Prop({ reflect: true }) color?: Color;\n\n componentDidLoad() {\n if (this.type) {\n let formEl = this.form ? document.getElementById(this.form) : this.el.closest('form');\n //if (formEl.tagName === 'JE-FORM') formEl = formEl.querySelector('form')\n if (formEl) {\n this.formButtonEl = document.createElement('button');\n this.formButtonEl.type = this.type;\n this.formButtonEl.style.display = 'none';\n formEl.append(this.formButtonEl);\n }\n }\n }\n\n @Listen('click')\n handleClick() {\n this.formButtonEl?.click();\n }\n\n @Watch('pending')\n onPendingChange() {\n if (this.pending) {\n this.buttonEl.style.setProperty('--pending-width', `${this.buttonEl.clientWidth}px`);\n }\n }\n\n render() {\n const classes = {\n [this.fill]: true,\n expand: this.expand,\n pending: this.pending,\n [this.color]: !!this.color\n }\n return (\n <Host>\n <button part='inner-button' ref={el => this.buttonEl = el} disabled={this.disabled || this.pending} type='button' tabindex={0} class={classes}>\n {this.pending ? <je-loading/> : <slot/>}\n <slot name='badge'/>\n </button>\n </Host>\n );\n }\n}\n","@use '../../styles/styles' as *;\n\n:host {\n display: contents;\n}\n\nje-button {\n --height: min-content;\n\n &[size=sm] {\n --padding-inline: #{spacing-get(3xs)};\n }\n\n &[size=md] {\n --padding-inline: #{spacing-get(2xs)};\n }\n\n &[size=lg] {\n --padding-inline: #{spacing-get(xs)};\n }\n}\n","import { Component, Prop, h } from '@stencil/core';\nimport { Color } from '../../utils/utils';\n\n@Component({\n tag: 'je-icon-button',\n styleUrl: 'je-icon-button.scss',\n shadow: true,\n})\nexport class JeIconButton {\n /** Disables button */\n @Prop() disabled = false;\n\n /** Can set to submit or reset to participate in forms */\n @Prop() type?: 'submit' | 'reset';\n\n /** Shows a loading spinner and disables the button */\n @Prop() pending = false;\n\n /** Button fill */\n @Prop() fill: 'solid' | 'outline' | 'clear' = 'clear';\n\n /** Button size */\n @Prop() size: 'md' | 'lg' | 'sm' = 'md';\n\n /** Predefined colors */\n @Prop() color?: Color;\n\n /** Name of icon */\n @Prop() icon?: string;\n\n render() {\n return (\n <je-button exportparts='inner-button' fill={this.fill} color={this.color} size={this.size} pending={this.pending} type={this.type} disabled={this.disabled}>\n <slot>\n {this.icon && <je-icon part='icon' fill={true} size={this.size == 'sm' ? 'xs' : this.size == 'lg' ? 'md' : 'sm'}>{this.icon}</je-icon>}\n </slot>\n <slot slot='badge' name='badge'></slot>\n </je-button>\n );\n }\n}\n",":host {\n display: inline-block;\n position: relative;\n width: 23px;\n height: 23px;\n user-select: none;\n}\n\nsvg {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n transform: translateZ(0);\n}\n\n:host(.spinner-lines) line,\n:host(.spinner-lines-small) line {\n stroke-width: 7px;\n}\n\n:host(.spinner-lines-sharp) line,\n:host(.spinner-lines-sharp-small) line {\n stroke-width: 4px;\n}\n\n:host(.spinner-lines) line,\n:host(.spinner-lines-small) line,\n:host(.spinner-lines-sharp) line,\n:host(.spinner-lines-sharp-small) line {\n stroke-linecap: round;\n stroke: currentColor;\n}\n\n:host(.spinner-lines) svg,\n:host(.spinner-lines-small) svg,\n:host(.spinner-lines-sharp) svg,\n:host(.spinner-lines-sharp-small) svg {\n animation: spinner-fade-out 1s linear infinite;\n}\n\n@keyframes spinner-fade-out {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n }\n\n}\n","import { Component, Host, h } from '@stencil/core';\n\nexport interface SpinnerConfig {\n dur: number;\n circles?: number;\n lines?: number;\n elmDuration?: boolean;\n fn: (dur: number, index: number, total: number) => SpinnerData;\n}\n\nexport interface SpinnerData {\n r?: number;\n y1?: number;\n y2?: number;\n cx?: number;\n cy?: number;\n style: { [key: string]: string | undefined };\n viewBox?: string;\n transform?: string;\n}\n\nconst spinners = {\n lines: {\n dur: 1000,\n lines: 8,\n fn: (dur: number, index: number, total: number) => {\n const transform = `rotate(${(360 / total) * index + (index < total / 2 ? 180 : -180)}deg)`;\n const animationDelay = `${(dur * index) / total - dur}ms`;\n\n return {\n y1: 14,\n y2: 26,\n style: {\n transform: transform,\n 'animation-delay': animationDelay,\n },\n };\n },\n },\n}\n\nconst buildLine = (spinner: SpinnerConfig, duration: number, index: number, total: number) => {\n const data = spinner.fn(duration, index, total);\n data.style['animation-duration'] = duration + 'ms';\n\n return (\n <svg viewBox={data.viewBox || '0 0 64 64'} style={data.style}>\n <line transform=\"translate(32,32)\" y1={data.y1} y2={data.y2} />\n </svg>\n );\n};\n\n@Component({\n tag: 'je-loading',\n styleUrl: 'je-loading.scss',\n shadow: true,\n})\nexport class JeLoading {\n render() {\n const spinner = spinners['lines'];\n const duration = spinner.dur;\n const svgs: SVGElement[] = [];\n\n for (let i = 0; i < spinner.lines; i++) {\n svgs.push(buildLine(spinner, duration, i, spinner.lines));\n }\n\n return (\n <Host class={{ [`spinner-lines`]: true }}>\n {svgs}\n </Host>\n );\n }\n}\n"],"mappings":"oDAAA,MAAMA,EAAc,06Q,MCUPC,EAAQ,MAPrB,WAAAC,CAAAC,G,UAaUC,KAAQC,SAAG,MAYXD,KAAME,OAAG,MAGTF,KAAOG,QAAG,MAGOH,KAAII,KAAkC,QAGtCJ,KAAIK,KAAuB,IA8CrD,CAzCC,gBAAAC,GACE,GAAIN,KAAKO,KAAM,CACb,IAAIC,EAASR,KAAKS,KAAOC,SAASC,eAAeX,KAAKS,MAAQT,KAAKY,GAAGC,QAAQ,QAE9E,GAAIL,EAAQ,CACVR,KAAKc,aAAeJ,SAASK,cAAc,UAC3Cf,KAAKc,aAAaP,KAAOP,KAAKO,KAC9BP,KAAKc,aAAaE,MAAMC,QAAU,OAClCT,EAAOU,OAAOlB,KAAKc,a,GAMzB,WAAAK,G,OACEC,EAAApB,KAAKc,gBAAc,MAAAM,SAAA,SAAAA,EAAAC,O,CAIrB,eAAAC,GACE,GAAItB,KAAKG,QAAS,CAChBH,KAAKuB,SAASP,MAAMQ,YAAY,kBAAmB,GAAGxB,KAAKuB,SAASE,gB,EAIxE,MAAAC,GACE,MAAMC,EAAU,CACd,CAAC3B,KAAKI,MAAO,KACbF,OAAQF,KAAKE,OACbC,QAASH,KAAKG,QACd,CAACH,KAAK4B,SAAU5B,KAAK4B,OAEvB,OACEC,EAACC,EAAI,CAAAC,IAAA,4CACHF,EAAA,UAAAE,IAAA,2CAAQC,KAAK,eAAeC,IAAKrB,GAAMZ,KAAKuB,SAAWX,EAAIX,SAAUD,KAAKC,UAAYD,KAAKG,QAASI,KAAK,SAAS2B,SAAU,EAAGC,MAAOR,GACnI3B,KAAKG,QAAU0B,EAAa,mBAAGA,EAAO,aACvCA,EAAA,QAAAE,IAAA,2CAAMK,KAAK,W,uIC9ErB,MAAMC,EAAkB,iQ,MCQXC,EAAY,MALzB,WAAAxC,CAAAC,G,UAOUC,KAAQC,SAAG,MAMXD,KAAOG,QAAG,MAGVH,KAAII,KAAkC,QAGtCJ,KAAIK,KAAuB,IAkBpC,CAVC,MAAAqB,GACE,OACEG,EAAW,aAAAE,IAAA,2CAAAQ,YAAY,eAAenC,KAAMJ,KAAKI,KAAMwB,MAAO5B,KAAK4B,MAAOvB,KAAML,KAAKK,KAAMF,QAASH,KAAKG,QAASI,KAAMP,KAAKO,KAAMN,SAAUD,KAAKC,UAChJ4B,EACG,QAAAE,IAAA,4CAAA/B,KAAKwC,MAAQX,EAAA,WAAAE,IAAA,2CAASC,KAAK,OAAO5B,KAAM,KAAMC,KAAML,KAAKK,MAAQ,KAAO,KAAOL,KAAKK,MAAQ,KAAO,KAAO,MAAOL,KAAKwC,OAEzHX,EAAM,QAAAE,IAAA,2CAAAU,KAAK,QAAQL,KAAK,U,aCpChC,MAAMM,EAAe,ouBCqBrB,MAAMC,EAAW,CACfC,MAAO,CACLC,IAAK,IACLD,MAAO,EACPE,GAAI,CAACD,EAAaE,EAAeC,KAC/B,MAAMC,EAAY,UAAW,IAAMD,EAASD,GAASA,EAAQC,EAAQ,EAAI,KAAM,WAC/E,MAAME,EAAiB,GAAIL,EAAME,EAASC,EAAQH,MAElD,MAAO,CACLM,GAAI,GACJC,GAAI,GACJpC,MAAO,CACLiC,UAAWA,EACX,kBAAmBC,GAEtB,IAKP,MAAMG,EAAY,CAACC,EAAwBC,EAAkBR,EAAeC,KAC1E,MAAMQ,EAAOF,EAAQR,GAAGS,EAAUR,EAAOC,GACzCQ,EAAKxC,MAAM,sBAAwBuC,EAAW,KAE9C,OACE1B,EAAA,OAAK4B,QAASD,EAAKC,SAAW,YAAazC,MAAOwC,EAAKxC,OACrDa,EAAA,QAAMoB,UAAU,mBAAmBE,GAAIK,EAAKL,GAAIC,GAAII,EAAKJ,KACrD,E,MASGM,EAAS,M,yBACpB,MAAAhC,GACE,MAAM4B,EAAUX,EAAS,SACzB,MAAMY,EAAWD,EAAQT,IACzB,MAAMc,EAAqB,GAE3B,IAAK,IAAIC,EAAI,EAAGA,EAAIN,EAAQV,MAAOgB,IAAK,CACtCD,EAAKE,KAAKR,EAAUC,EAASC,EAAUK,EAAGN,EAAQV,O,CAGpD,OACEf,EAACC,EAAK,CAAAC,IAAA,2CAAAI,MAAO,CAAE,CAAC,iBAAkB,OAC/BwB,E","ignoreList":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as t,c as i,f as e,h as s,a as r,g as a}from"./p-Dq5G4FMt.js";import{d as o}from"./p-iWCgRMLC.js";const h=(t,i=0)=>{let e;return(...s)=>{clearTimeout(e);e=setTimeout(t,i,...s)}};const n=(t,i)=>{const e=t._original||t;return{_original:t,emit:h(e.emit.bind(e),i)}};const l=":host{display:flex;flex-direction:column;gap:var(--je-spacing-3xs, 0.125rem)}:host(:focus) div[part=container]{border-color:light-dark(var(--je-primary, #4141e8), color-mix(in srgb, var(--je-primary, #4141e8) 40%, white 60%))}:host(:state(--user-invalid)) div[part=container]{border-color:light-dark(color-mix(in srgb, var(--je-danger, #ae1818) 80%, white 20%), color-mix(in srgb, var(--je-danger, #ae1818) 60%, white 40%))}je-note{margin-left:var(--je-spacing-xs, 0.5rem)}div[part=container]{position:relative;box-sizing:border-box;display:flex;gap:var(--je-spacing-xs, 0.5rem);border-radius:var(--je-radius-md, 0.375rem);border:solid 1px light-dark(var(--je-secondary, #99becb), color-mix(in srgb, var(--je-secondary, #99becb) 80%, white 20%));align-items:center;background-color:light-dark(color-mix(in srgb, var(--je-primary, #4141e8) 5%, white 95%), color-mix(in srgb, var(--je-primary, #4141e8) 5%, black 95%));color:light-dark(color-mix(in srgb, var(--je-secondary, #99becb) 20%, black 80%), color-mix(in srgb, var(--je-secondary, #99becb) 10%, white 90%));padding-inline:var(--je-spacing-xs, 0.5rem)}div[part=container].sm{height:2.5rem}div[part=container].md{height:3rem}div[part=container].lg{height:3.5rem}div[part=container].disabled{opacity:0.6;cursor:not-allowed}input,textarea{background-color:inherit;color:inherit;font-family:inherit;flex:1;min-width:0;outline:0;border:0;margin:0;padding:0;font-size:var(--je-font-md, 1rem);font-weight:var(--je-font-light, 400);color:light-dark(color-mix(in srgb, var(--je-secondary, #99becb) 10%, black 90%), color-mix(in srgb, var(--je-secondary, #99becb) 10%, white 90%))}input::placeholder,textarea::placeholder{font-family:inherit;color:light-dark(color-mix(in srgb, var(--je-secondary, #99becb) 50%, black 50%), color-mix(in srgb, var(--je-secondary, #99becb) 70%, black 30%));font-size:var(--je-font-md, 1rem);font-weight:var(--je-font-light, 400)}input[type=password]::-ms-reveal,input[type=password]::-ms-clear,textarea[type=password]::-ms-reveal,textarea[type=password]::-ms-clear{display:none !important}";const c=class{constructor(s){t(this,s);this.valueChange=i(this,"valueChange",3);if(s.$hostElement$["s-ei"]){this.internals=s.$hostElement$["s-ei"]}else{this.internals=s.$hostElement$.attachInternals();s.$hostElement$["s-ei"]=this.internals}this.invalid=false;this.touched=false;this.showPassword=false;this.disabled=false;this.autoCapitalize="off";this.autoComplete="off";this.autoCorrect="off";this.readonly=false;this.required=false;this.spellcheck=false;this.size="md";this.type="text";this.debounce=0;this.multiline=false;this.pending=false;this.success=false;this.getTransformer=()=>{if(this.transform==="number"){return{to:t=>parseFloat(t),from:t=>t.toString()}}else if(this.transform==="date"){return{to:t=>t?o.parseISO(t).getTime():t,from:t=>t?o.format(t,"yyyy-MM-dd"):t}}else if(this.transform==="datetime"){return{to:t=>t?o.parseISO(t).getTime():t,from:t=>t?o.format(t,"yyyy-MM-dd'T'HH:mm:ss"):t}}else{return this.transform}};this.formatInput=async t=>{const i=t.target;if(i&&this.format){i.value=await this.format(i.value,this.value,t)}};this.handleInput=t=>{const i=t.target;if(i){const t=this.getTransformer();this.value=(t===null||t===void 0?void 0:t.to)?t.to(i.value):i.value}};this.onFocus=()=>{if(this.touched)e(this.hostEl);else this.touched=true}}get error(){return this.internalErrorProp}set error(t){if(t==="true"||t===""){this.internalErrorProp=true}else if(t==="false"){this.internalErrorProp=false}else{this.internalErrorProp=t}}componentWillLoad(){if(!this.originalValue)this.originalValue=this.value;if(this.debounce)this.valueChange=n(this.valueChange,this.debounce)}componentDidLoad(){this.internals.role="textbox";if(this.value)this.internals.setFormValue(this.value)}async componentWillRender(){const{hasError:t,minLengthError:i,maxLengthError:e,requiredError:s,patternError:r,customErrors:a}=await this.getErrors();this.invalid=t;if(t){const t=s?"This field is required":i?`This field must be at least ${this.minlength} characters long`:e?`This field must be less than ${this.maxlength} characters long`:r?`Invalid pattern`:a[0];this.internals.setValidity({valueMissing:s,tooShort:i,tooLong:e,patternMismatch:r,customError:a.length>0},t);if(this.touched){this.internals.reportValidity()}}else{this.internals.setValidity({})}}componentDidRender(){var t,i,e;this.internals.ariaLabel=this.label||((t=this.hostEl.querySelector("[slot=label]"))===null||t===void 0?void 0:t.textContent);this.internals.ariaDescription=this.note||((i=this.hostEl.querySelector("[slot=note]"))===null||i===void 0?void 0:i.textContent);this.internals.ariaInvalid=this.internals.validity.valid?"true":"false";this.internals.ariaRequired=this.required?"true":"false";this.internals.ariaDisabled=this.disabled?"true":"false";this.internals.ariaReadOnly=this.readonly?"true":"false";this.internals.ariaMultiLine=this.multiline?"true":"false";this.internals.ariaPlaceholder=this.placeholder||((e=this.hostEl.querySelector("[slot=placeholder]"))===null||e===void 0?void 0:e.textContent);this.internals.ariaAutoComplete=this.autoComplete;this.internals.states.clear();this.internals.states.add(this.invalid?"--invalid":"--valid");if(this.touched)this.internals.states.add(this.invalid?"--user-invalid":"--user-valid");this.internals.states.add(this.required?"--required":"--optional");this.internals.states.add(this.disabled?"--disabled":"--enabled");this.internals.states.add(this.readonly?"--readonly":"--readwrite");this.internals.states.add(this.multiline?"--multiline":"--singleline");this.internals.states.add(this.value?"--filled":"--empty")}formResetCallback(){this.touched=false;this.value=this.originalValue}handleValueChange(){this.internals.setFormValue(this.value||null);this.valueChange.emit(this.value)}async getInputElement(){return this.inputEl}async markAsTouched(){this.touched=true}async getErrors(){var t,i,e,s;const r=this.required&&((t=this.value)!==null&&t!==void 0?t:"")==="";const a=this.minlength&&((i=this.value)!==null&&i!==void 0?i:"").length<this.minlength;const o=this.maxlength&&((e=this.value)!==null&&e!==void 0?e:"").length>this.maxlength;const h=this.pattern&&!new RegExp(this.pattern).test((s=this.value)!==null&&s!==void 0?s:"");let n=[];if(this.validators){for(const t of this.validators){const i=await t(this.value);n=[...n,...i]}}return{requiredError:r,minLengthError:a,maxLengthError:o,patternError:h,customErrors:n,hasError:r||a||o||h||n.length>0}}async isTouched(){return this.touched}handleKeyDown(t){if(this.multiline&&t.key==="Enter"&&t.shiftKey)t.stopPropagation()}handleInvalid(t){t.preventDefault()}render(){const t=this.getTransformer();return s(r,{key:"e915a37a76122280cee8da35b550d02e9c9d683e"},s("div",{key:"c18271cadd20d74433b7c24be91665dafa7a66bd",part:"container",class:{[this.size]:true,disabled:this.disabled,multiline:this.multiline}},s("slot",{key:"0caa8875e650a1a3ce8c49df57ffea4888d2f557",name:"start"}),s("slot",{key:"a1828ab2bf143cf9c1c72bc22c23a06732b63077",name:"label"},this.label&&s("je-label",{key:"c864e7fac1744d2ecb94319725b03f96497b760f",part:"label",required:this.required},this.label)),this.multiline?s("textarea",{part:"textarea",tabindex:0,ref:t=>this.inputEl=t,onInputCapture:this.formatInput,onInput:this.handleInput,onFocus:this.onFocus,autoCapitalize:this.autoCapitalize,autoComplete:this.autoComplete,autoCorrect:this.autoCorrect,autoFocus:this.autoFocus,disabled:this.disabled,maxLength:this.maxlength,minLength:this.minlength,placeholder:this.placeholder,readonly:this.readonly,required:this.required,spellcheck:this.spellcheck,wrap:this.wrap,value:(t===null||t===void 0?void 0:t.from)?t.from(this.value):this.value}):s("input",{part:"input",tabindex:0,ref:t=>this.inputEl=t,onInputCapture:this.formatInput,onInput:this.handleInput,onFocus:this.onFocus,disabled:this.disabled,autoCapitalize:this.autoCapitalize,autoComplete:this.autoComplete,autoCorrect:this.autoCorrect,autoFocus:this.autoFocus,inputMode:this.inputMode,min:this.min,max:this.max,minLength:this.minlength,maxLength:this.maxlength,pattern:this.pattern,readOnly:this.readonly,required:this.required,spellcheck:this.spellcheck,step:this.step,type:this.type=="password"&&this.showPassword?"text":this.type,value:(t===null||t===void 0?void 0:t.from)?t.from(this.value):this.value,placeholder:this.placeholder}),this.type==="password"&&s("je-icon-button",{key:"49e207840f34d5f5209c6aaf5cbd9b89031cd996",size:"sm",icon:this.showPassword?"visibility_off":"visibility",onClick:()=>this.showPassword=!this.showPassword}),s("slot",{key:"1b1120d947f0b2533bda4e9dcb0c8f62c4d65eb7",name:"end"}),this.pending&&s("je-loading",{key:"49076313553802f11de04229fc0cd49ad081add0"}),this.success&&s("je-color",{key:"e375dcc72f93967d8ac1c7658ba6ac380e0721ad",color:"success"},s("je-icon",{key:"0eca75698695c4c93e41d088724de99b06e3d3ee",fill:true,size:"sm"},"check_circle")),this.error&&typeof this.error==="string"?s("je-tooltip",null,s("je-color",{color:"danger"},s("je-icon",{fill:true,size:"sm"},"error")),s("div",{slot:"content"},this.error)):this.error?s("je-color",{color:"danger"},s("je-icon",{fill:true,size:"sm"},"error")):null),s("slot",{key:"677a608f2f5017598ef8eb4bd14f1aedfb45073b",name:"note"},this.invalid&&this.touched?s("je-note",{part:"note",invalid:true},this.internals.validationMessage):this.note?s("je-note",{part:"note"},this.note):null))}static get delegatesFocus(){return true}static get formAssociated(){return true}get hostEl(){return a(this)}static get watchers(){return{value:["handleValueChange"]}}};c.style=l;export{c as je_textfield};
|
|
2
|
-
//# sourceMappingURL=p-9d90ba0c.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["debounce","func","wait","timer","args","clearTimeout","setTimeout","debounceEvent","event","original","_original","emit","bind","jeTextfieldCss","JeTextfield","constructor","hostRef","this","invalid","touched","showPassword","disabled","autoCapitalize","autoComplete","autoCorrect","readonly","required","spellcheck","size","type","multiline","pending","success","getTransformer","transform","to","value","parseFloat","from","toString","parseISO","getTime","format","formatInput","async","ev","input","target","handleInput","transformer","onFocus","forceUpdate","hostEl","error","internalErrorProp","componentWillLoad","originalValue","valueChange","componentDidLoad","internals","role","setFormValue","componentWillRender","hasError","minLengthError","maxLengthError","requiredError","patternError","customErrors","getErrors","errorMessage","minlength","maxlength","setValidity","valueMissing","tooShort","tooLong","patternMismatch","customError","length","reportValidity","componentDidRender","ariaLabel","label","_a","querySelector","textContent","ariaDescription","note","_b","ariaInvalid","validity","valid","ariaRequired","ariaDisabled","ariaReadOnly","ariaMultiLine","ariaPlaceholder","placeholder","_c","ariaAutoComplete","states","clear","add","formResetCallback","handleValueChange","getInputElement","inputEl","markAsTouched","pattern","RegExp","test","_d","validators","validator","res","isTouched","handleKeyDown","key","shiftKey","stopPropagation","handleInvalid","preventDefault","render","h","Host","part","class","name","tabindex","ref","el","onInputCapture","onInput","autoFocus","maxLength","minLength","wrap","inputMode","min","max","readOnly","step","icon","onClick","color","fill","slot","validationMessage"],"sources":["src/utils/functions/debounce-event.ts","src/components/je-textfield/je-textfield.scss?tag=je-textfield&encapsulation=shadow","src/components/je-textfield/je-textfield.tsx"],"sourcesContent":["import { EventEmitter } from \"@stencil/core\";\n\nconst debounce = (func: (...args: any[]) => void, wait = 0) => {\n let timer: any;\n return (...args: any[]): any => {\n clearTimeout(timer);\n timer = setTimeout(func, wait, ...args);\n };\n};\n\nexport const debounceEvent = (event: EventEmitter, wait: number) => {\n const original = (event as any)._original || event;\n return {\n _original: event,\n emit: debounce(original.emit.bind(original), wait),\n } as EventEmitter;\n};\n","@use '../../styles/styles' as *;\n\n:host {\n display: flex;\n flex-direction: column;\n gap: spacing-get(3xs);\n}\n\n:host(:focus) div[part=container] {\n border-color: light-dark(primary(500), primary(200));\n}\n\n:host(:state(--user-invalid)) div[part=container] {\n border-color: light-dark(danger(400), danger(300));\n}\n\nje-note {\n margin-left: spacing-get(xs);\n}\n\ndiv[part=container] {\n position: relative;\n box-sizing: border-box;\n display: flex;\n gap: spacing-get(xs);\n border-radius: radius-get(md);\n border: solid 1px light-dark(secondary(), secondary(400));\n align-items: center;\n background-color: light-dark(primary(25), primary(975));\n color: light-dark(secondary(900), secondary(50));\n padding-inline: spacing-get(xs);\n &.sm {\n height: 2.5rem;\n }\n &.md {\n height: 3rem;\n }\n &.lg {\n height: 3.5rem;\n }\n &.disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n}\n\ninput,\ntextarea {\n background-color: inherit;\n color: inherit;\n font-family: inherit;\n flex: 1;\n min-width: 0;\n outline: 0;\n border: 0;\n margin: 0;\n padding: 0;\n font-size: font-size(md);\n font-weight: font-weight(light);\n color: light-dark(secondary(950), secondary(50));\n\n &::placeholder {\n font-family: inherit;\n color: light-dark(secondary(750), secondary(650));\n font-size: font-size(md);\n font-weight: font-weight(light);\n }\n\n &[type=password]::-ms-reveal,\n &[type=password]::-ms-clear {\n display: none !important;\n }\n}\n","import { Component, Host, Prop, h, Element, State, Event, EventEmitter, AttachInternals, forceUpdate, Method, Listen, Watch } from '@stencil/core';\nimport { format, parseISO } from 'date-fns';\nimport { debounceEvent } from '../../utils/utils';\n\nexport type InputTransformer<T = any> = {\n to?: (value: string) => T;\n from?: (value: T) => string;\n}\n\nexport type FormatterFn = (newValue: string, oldValue?: string, ev?: InputEvent) => string | Promise<string>;\n\nexport type ValidationFn = (value: string) => string[] | Promise<string[]>;\n\n@Component({\n tag: 'je-textfield',\n styleUrl: 'je-textfield.scss',\n shadow: {\n delegatesFocus: true\n },\n formAssociated: true\n})\nexport class JeTextfield {\n private inputEl!: HTMLInputElement | HTMLTextAreaElement;\n private invalid = false;\n //private containerEl!: HTMLElement;\n\n @Element() hostEl!: HTMLJeTextfieldElement;\n @AttachInternals() internals: ElementInternals;\n @State() touched = false;\n @State() showPassword = false;\n\n /**\n * The default value the control will reset to in a form.\n * If not set, will default to the inital value of the \"value\" property.\n */\n @Prop({ mutable: true }) originalValue?: string;\n\n /**\n * Text above the control\n */\n @Prop() label?: string;\n\n /**\n * Renders input as disabled and prevents changes\n */\n @Prop() disabled = false;\n\n /**\n * Passed to native input\n */\n @Prop() autoCapitalize = 'off';\n\n /**\n * Passed to native input\n */\n @Prop() autoComplete = 'off';\n\n /**\n * Passed to native input\n */\n @Prop() autoCorrect: 'off' | 'on' = 'off';\n\n /**\n * Passed to native input\n */\n @Prop() autoFocus?: boolean;\n\n /**\n * Passed to native input\n */\n @Prop() inputMode: string;\n\n /**\n * Passed to native input\n */\n @Prop() min?: any;\n\n /**\n * Passed to native input\n */\n @Prop() max?: any;\n\n /**\n * Passed to native input\n */\n @Prop() minlength?: number;\n\n /**\n * Passed to native input\n */\n @Prop() maxlength?: number;\n\n /**\n * Passed to native textarea\n */\n @Prop() wrap?: string;\n\n /**\n * Passed to native input\n */\n @Prop() pattern?: string;\n\n /**\n * Renders input as read only and prevents changes\n */\n @Prop() readonly = false;\n\n /**\n * Marks as required in form and adds asterisk to the end of the label\n */\n @Prop() required = false;\n\n /**\n * Passed to native input\n */\n @Prop() spellcheck = false;\n\n /**\n * Passed to native input\n */\n @Prop() step?: string;\n\n /**\n * Container size\n */\n @Prop() size: 'md' | 'lg' | 'sm' = 'md';\n\n /**\n * Passed to native input\n */\n @Prop({ mutable: true }) type = 'text';\n\n /**\n * Current value of the input\n */\n @Prop({ mutable: true }) value: any;\n\n /**\n * Input placeholder text\n */\n @Prop() placeholder?: string;\n\n /**\n * Optional debounce of the didInput event\n */\n @Prop() debounce = 0;\n\n /**\n * Formatters functions that are applied as the user types\n */\n @Prop() format?: FormatterFn;\n\n /**\n * Validator functions for form participation\n */\n @Prop() validators?: ValidationFn[];\n\n /**\n * Informational message directly below the control\n */\n @Prop() note?: string;\n\n /**\n * Transforms the value before it is passed to the input (from) and after the input emits a new value (to).\n *\n * There are built-in transformers for 'number', 'date', and 'datetime'.\n */\n @Prop() transform?: InputTransformer | 'number' | 'date' | 'datetime';\n\n /**\n * Whether the control is a multiline textarea\n */\n @Prop() multiline = false;\n\n /**\n * Shows a loading indicator in the end slot when true\n */\n @Prop() pending = false;\n\n private internalErrorProp?: boolean | string;\n /**\n * Shows an error icon in the end slot when true. If a string is passed in, it will render the icon as a tooltip.\n * Has no effect on form validation\n */\n @Prop() get error() {\n return this.internalErrorProp;\n }\n set error(value: any) {\n if (value === 'true' || value === '') {\n this.internalErrorProp = true;\n } else if (value === 'false') {\n this.internalErrorProp = false;\n } else {\n this.internalErrorProp = value;\n }\n }\n\n /**\n * Shows a success icon in the end slot when true. Has no effect on form validation\n */\n @Prop() success = false;\n\n /**\n * Emits as the user types\n */\n @Event({ bubbles: false }) valueChange: EventEmitter<any>;\n\n componentWillLoad() {\n if (!this.originalValue) this.originalValue = this.value;\n if (this.debounce) this.valueChange = debounceEvent(this.valueChange, this.debounce);\n }\n\n componentDidLoad() {\n this.internals.role = 'textbox';\n if (this.value) this.internals.setFormValue(this.value);\n }\n\n async componentWillRender() {\n const { hasError, minLengthError, maxLengthError, requiredError, patternError, customErrors } = await this.getErrors();\n this.invalid = hasError;\n if (hasError) {\n const errorMessage = requiredError\n ? 'This field is required'\n : minLengthError\n ? `This field must be at least ${this.minlength} characters long`\n : maxLengthError\n ? `This field must be less than ${this.maxlength} characters long`\n : patternError\n ? `Invalid pattern`\n : customErrors[0];\n this.internals.setValidity(\n {\n valueMissing: requiredError,\n tooShort: minLengthError,\n tooLong: maxLengthError,\n patternMismatch: patternError,\n customError: customErrors.length > 0,\n },\n errorMessage,\n );\n if (this.touched) {\n this.internals.reportValidity();\n }\n } else {\n this.internals.setValidity({});\n }\n }\n\n componentDidRender() {\n this.internals.ariaLabel = this.label || this.hostEl.querySelector('[slot=label]')?.textContent\n this.internals.ariaDescription = this.note || this.hostEl.querySelector('[slot=note]')?.textContent\n this.internals.ariaInvalid = this.internals.validity.valid ? 'true' : 'false'\n this.internals.ariaRequired = this.required ? 'true' : 'false'\n this.internals.ariaDisabled = this.disabled ? 'true' : 'false'\n this.internals.ariaReadOnly = this.readonly ? 'true' : 'false'\n this.internals.ariaMultiLine = this.multiline ? 'true' : 'false'\n this.internals.ariaPlaceholder = this.placeholder || this.hostEl.querySelector('[slot=placeholder]')?.textContent\n this.internals.ariaAutoComplete = this.autoComplete\n\n this.internals.states.clear()\n this.internals.states.add(this.invalid ? '--invalid' : '--valid');\n if (this.touched) this.internals.states.add(this.invalid ? '--user-invalid' : '--user-valid')\n this.internals.states.add(this.required ? '--required' : '--optional')\n this.internals.states.add(this.disabled ? '--disabled' : '--enabled')\n this.internals.states.add(this.readonly ? '--readonly' : '--readwrite')\n this.internals.states.add(this.multiline ? '--multiline' : '--singleline')\n this.internals.states.add(this.value ? '--filled' : '--empty')\n }\n\n formResetCallback() {\n this.touched = false;\n this.value = this.originalValue;\n }\n\n @Watch('value')\n handleValueChange() {\n this.internals.setFormValue(this.value || null);\n this.valueChange.emit(this.value);\n }\n\n @Method()\n async getInputElement() {\n return this.inputEl;\n }\n\n @Method()\n async markAsTouched() {\n this.touched = true;\n }\n\n @Method()\n async getErrors() {\n const requiredError = this.required && (this.value ?? '') === '';\n const minLengthError = this.minlength && (this.value ?? '').length < this.minlength;\n const maxLengthError = this.maxlength && (this.value ?? '').length > this.maxlength;\n const patternError = this.pattern && !new RegExp(this.pattern).test(this.value ?? '');\n let customErrors: string[] = [];\n if (this.validators) {\n for (const validator of this.validators) {\n const res = await validator(this.value);\n customErrors = [...customErrors, ...res];\n }\n }\n return {\n requiredError,\n minLengthError,\n maxLengthError,\n patternError,\n customErrors,\n hasError: requiredError || minLengthError || maxLengthError || patternError || customErrors.length > 0,\n };\n }\n\n @Method()\n async isTouched() {\n return this.touched;\n }\n\n @Listen('keydown')\n handleKeyDown(ev: KeyboardEvent) {\n if (this.multiline && ev.key === 'Enter' && ev.shiftKey)\n ev.stopPropagation()\n }\n\n @Listen('invalid')\n handleInvalid(ev: Event) {\n ev.preventDefault();\n }\n\n private getTransformer = () => {\n if (this.transform === 'number') {\n return {\n to: (value: string) => parseFloat(value),\n from: (value: number) => value.toString(),\n };\n } else if (this.transform === 'date') {\n return {\n to: (value: string) => (value ? parseISO(value).getTime() : value),\n from: (value: any) => (value ? format(value, 'yyyy-MM-dd') : value),\n };\n } else if (this.transform === 'datetime') {\n return {\n to: (value: string) => (value ? parseISO(value).getTime() : value),\n from: (value: any) => (value ? format(value, \"yyyy-MM-dd'T'HH:mm:ss\") : value),\n };\n } else {\n return this.transform;\n }\n };\n\n private formatInput = async (ev: InputEvent) => {\n const input = ev.target as HTMLInputElement | null;\n if (input && this.format) {\n input.value = await this.format(input.value, this.value, ev);\n }\n };\n\n private handleInput = (ev: InputEvent) => {\n const input = ev.target as HTMLInputElement | null;\n if (input) {\n const transformer = this.getTransformer();\n this.value = transformer?.to ? transformer.to(input.value) : input.value;\n }\n };\n\n private onFocus = () => {\n if (this.touched) forceUpdate(this.hostEl);\n else this.touched = true;\n }\n\n render() {\n const transformer = this.getTransformer();\n return (\n <Host>\n <div part=\"container\" class={{ [this.size]: true, disabled: this.disabled, multiline: this.multiline }}>\n <slot name=\"start\" />\n\n <slot name='label'>\n {this.label && <je-label part='label' required={this.required}>{this.label}</je-label>}\n </slot>\n\n {this.multiline ? (\n <textarea\n part=\"textarea\"\n tabindex={0}\n ref={el => (this.inputEl = el)}\n onInputCapture={this.formatInput}\n onInput={this.handleInput}\n onFocus={this.onFocus}\n autoCapitalize={this.autoCapitalize}\n autoComplete={this.autoComplete}\n autoCorrect={this.autoCorrect}\n autoFocus={this.autoFocus}\n disabled={this.disabled}\n maxLength={this.maxlength}\n minLength={this.minlength}\n placeholder={this.placeholder}\n readonly={this.readonly}\n required={this.required}\n spellcheck={this.spellcheck}\n wrap={this.wrap}\n value={transformer?.from ? transformer.from(this.value) : this.value}\n />\n ) : (\n <input\n part='input'\n tabindex={0}\n ref={el => (this.inputEl = el)}\n onInputCapture={this.formatInput}\n onInput={this.handleInput}\n onFocus={this.onFocus}\n disabled={this.disabled}\n autoCapitalize={this.autoCapitalize}\n autoComplete={this.autoComplete}\n autoCorrect={this.autoCorrect}\n autoFocus={this.autoFocus}\n inputMode={this.inputMode}\n min={this.min}\n max={this.max}\n minLength={this.minlength}\n maxLength={this.maxlength}\n pattern={this.pattern}\n readOnly={this.readonly}\n required={this.required}\n spellcheck={this.spellcheck}\n step={this.step}\n type={this.type == 'password' && this.showPassword ? 'text' : this.type}\n value={transformer?.from ? transformer.from(this.value) : this.value}\n placeholder={this.placeholder}\n />\n )}\n\n {this.type === 'password' && (\n <je-icon-button size=\"sm\" icon={this.showPassword ? 'visibility_off' : 'visibility'} onClick={() => (this.showPassword = !this.showPassword)} />\n )}\n\n <slot name=\"end\" />\n\n {this.pending && <je-loading/>}\n {this.success && <je-color color=\"success\"><je-icon fill size=\"sm\">check_circle</je-icon></je-color>}\n {this.error && typeof this.error === 'string' ? (\n <je-tooltip>\n <je-color color=\"danger\">\n <je-icon fill size=\"sm\">error</je-icon>\n </je-color>\n <div slot=\"content\">{this.error}</div>\n </je-tooltip>\n ) : this.error ? (\n <je-color color=\"danger\">\n <je-icon fill size=\"sm\">error</je-icon>\n </je-color>\n ) : null}\n </div>\n\n <slot name='note'>\n {this.invalid && this.touched ? (\n <je-note part='note' invalid>{this.internals.validationMessage}</je-note>\n ) : this.note ? (\n <je-note part='note'>{this.note}</je-note>\n ) : null}\n </slot>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r,h as e,a as o}from"./p-Dq5G4FMt.js";const a=":host{display:block;border:solid 1px var(--border-color);border-radius:var(--je-radius-sm, 0.125rem);overflow:hidden;box-sizing:border-box;position:relative;color:var(--color);background-color:var(--background);--color:inherit;--background:inherit;--hover-background:#9f9e9e0e;--active-background:#9f9e9e19;--border-color:color-mix(in srgb, var(--je-secondary, #99becb) 60%, white 40%)}:host([button]){cursor:pointer;user-select:none;-webkit-user-select:none;transition:all 125ms ease-in-out}:host([button]:hover){background-color:var(--hover-background)}:host([button]:active){background-color:var(--active-background)}:host([color=danger]){--color:var(--je-danger-100);--background:var(--je-danger-500);--hover-background:var(--je-danger-600);--active-background:var(--je-danger-700);--border-color:var(--je-danger-300)}:host([color=secondary]){--color:var(--je-secondary-100);--background:var(--je-secondary-500);--hover-background:var(--je-secondary-600);--active-background:var(--je-secondary-700);--border-color:var(--je-secondary-300)}:host([color=warning]){--color:var(--je-warning-100);--background:var(--je-warning-500);--hover-background:var(--je-warning-600);--active-background:var(--je-warning-700);--border-color:var(--je-warning-300)}:host([color=success]){--color:var(--je-success-100);--background:var(--je-success-500);--hover-background:var(--je-success-600);--active-background:var(--je-success-700);--border-color:var(--je-success-300)}::slotted([slot=media]){width:100%}::slotted([slot=header]){box-sizing:border-box;padding-inline:var(--je-spacing-xs, 0.5rem);border-bottom:solid 1px var(--border-color)}::slotted([slot=footer]){box-sizing:border-box;display:flex;padding-block:var(--je-spacing-xs, 0.5rem);gap:var(--je-spacing-2xs, 0.25rem)}.container{box-sizing:border-box;padding:var(--je-spacing-xs, 0.5rem)}";const c=class{constructor(e){r(this,e)}render(){return e(o,{key:"53437767f47a71ea032a2179b5306ce4e40fb149"},e("slot",{key:"9cd1759c44018356e3cf8d16e9300f600e8fc849",name:"media"}),e("slot",{key:"cee31af3f72abf5d9d45f5af3e22135196a0f4e6",name:"header"}),e("div",{key:"1f73a85a6ab55da6ca1d6d593234ce2c5eec03f5",class:"container"},e("slot",{key:"4de2eeb37802d7d5c526f7862b2f8c9b4895718f"}),e("slot",{key:"430d0b2fa117eea71c1bf9b19908557f540428e1",name:"footer"})))}};c.style=a;export{c as je_card};
|
|
2
|
-
//# sourceMappingURL=p-ee50e126.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["jeCardCss","JeCard","render","h","Host","key","name","class"],"sources":["src/components/je-card/je-card.scss?tag=je-card&encapsulation=shadow","src/components/je-card/je-card.tsx"],"sourcesContent":["@use '../../styles/styles' as *;\n\n:host {\n display: block;\n border: solid 1px var(--border-color);\n border-radius: radius-get(sm);\n overflow: hidden;\n box-sizing: border-box;\n position: relative;\n color: var(--color);\n background-color: var(--background);\n\n --color: inherit;\n --background: inherit;\n --hover-background: #9f9e9e0e;\n --active-background: #9f9e9e19;\n --border-color: #{secondary(300)};\n}\n\n:host([button]) {\n cursor: pointer;\n user-select: none;\n -webkit-user-select: none;\n transition: all 125ms ease-in-out;\n}\n\n:host([button]:hover) {\n background-color: var(--hover-background);\n}\n\n:host([button]:active) {\n background-color: var(--active-background);\n}\n\n:host([color=danger]) {\n --color: var(--je-danger-100);\n --background: var(--je-danger-500);\n --hover-background: var(--je-danger-600);\n --active-background: var(--je-danger-700);\n --border-color: var(--je-danger-300);\n}\n\n:host([color=secondary]) {\n --color: var(--je-secondary-100);\n --background: var(--je-secondary-500);\n --hover-background: var(--je-secondary-600);\n --active-background: var(--je-secondary-700);\n --border-color: var(--je-secondary-300);\n}\n\n:host([color=warning]) {\n --color: var(--je-warning-100);\n --background: var(--je-warning-500);\n --hover-background: var(--je-warning-600);\n --active-background: var(--je-warning-700);\n --border-color: var(--je-warning-300);\n}\n\n:host([color=success]) {\n --color: var(--je-success-100);\n --background: var(--je-success-500);\n --hover-background: var(--je-success-600);\n --active-background: var(--je-success-700);\n --border-color: var(--je-success-300);\n}\n\n::slotted([slot=\"media\"]) {\n width: 100%;\n}\n\n::slotted([slot=\"header\"]) {\n box-sizing: border-box;\n padding-inline: spacing-get(xs);\n border-bottom: solid 1px var(--border-color);\n}\n\n::slotted([slot=\"footer\"]) {\n box-sizing: border-box;\n display: flex;\n padding-block: spacing-get(xs);\n gap: spacing-get(2xs);\n}\n\n.container {\n box-sizing: border-box;\n padding: spacing-get(xs);\n}\n","import { Component, Host, Prop, h } from '@stencil/core';\nimport { Color } from '../../utils/utils';\n\n@Component({\n tag: 'je-card',\n styleUrl: 'je-card.scss',\n shadow: true,\n})\nexport class JeCard {\n @Prop({ reflect: true }) color?: Color;\n @Prop({ reflect: true }) button?: boolean;\n\n render() {\n return (\n <Host>\n <slot name='media' />\n <slot name='header' />\n <div class='container'>\n <slot />\n <slot name='footer' />\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"6CAAA,MAAMA,EAAY,+yD,MCQLC,EAAM,M,yBAIjB,MAAAC,GACE,OACEC,EAACC,EAAI,CAAAC,IAAA,4CACHF,EAAM,QAAAE,IAAA,2CAAAC,KAAK,UACXH,EAAM,QAAAE,IAAA,2CAAAC,KAAK,WACXH,EAAK,OAAAE,IAAA,2CAAAE,MAAM,aACTJ,EAAQ,QAAAE,IAAA,6CACRF,EAAA,QAAAE,IAAA,2CAAMC,KAAK,Y","ignoreList":[]}
|