aeico-components 0.1.5 → 0.1.6
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/LICENSE +21 -0
- package/README.md +0 -0
- package/dist/chunks/action-button.cjs +296 -0
- package/dist/chunks/action-button.cjs.map +1 -0
- package/dist/chunks/action-button.js +297 -0
- package/dist/chunks/action-button.js.map +1 -0
- package/dist/chunks/alert.cjs +4 -4
- package/dist/chunks/alert.cjs.map +1 -1
- package/dist/chunks/alert.js +5 -5
- package/dist/chunks/alert.js.map +1 -1
- package/dist/chunks/badge.cjs +1 -1
- package/dist/chunks/badge.cjs.map +1 -1
- package/dist/chunks/badge.js +2 -2
- package/dist/chunks/badge.js.map +1 -1
- package/dist/chunks/breadcrumb-item.cjs +2 -2
- package/dist/chunks/breadcrumb-item.cjs.map +1 -1
- package/dist/chunks/breadcrumb-item.js +3 -3
- package/dist/chunks/breadcrumb-item.js.map +1 -1
- package/dist/chunks/button-group.cjs +1 -1
- package/dist/chunks/button-group.cjs.map +1 -1
- package/dist/chunks/button-group.js +2 -2
- package/dist/chunks/button-group.js.map +1 -1
- package/dist/chunks/button.cjs +1 -1
- package/dist/chunks/button.cjs.map +1 -1
- package/dist/chunks/button.js +2 -2
- package/dist/chunks/button.js.map +1 -1
- package/dist/chunks/card.cjs +1 -1
- package/dist/chunks/card.cjs.map +1 -1
- package/dist/chunks/card.js +2 -2
- package/dist/chunks/card.js.map +1 -1
- package/dist/chunks/checkbox.cjs +18 -5
- package/dist/chunks/checkbox.cjs.map +1 -1
- package/dist/chunks/checkbox.js +18 -5
- package/dist/chunks/checkbox.js.map +1 -1
- package/dist/chunks/copy-button.cjs +168 -0
- package/dist/chunks/copy-button.cjs.map +1 -0
- package/dist/chunks/copy-button.js +169 -0
- package/dist/chunks/copy-button.js.map +1 -0
- package/dist/chunks/detail.cjs +7 -4
- package/dist/chunks/detail.cjs.map +1 -1
- package/dist/chunks/detail.js +8 -5
- package/dist/chunks/detail.js.map +1 -1
- package/dist/chunks/dialog.cjs +1 -1
- package/dist/chunks/dialog.cjs.map +1 -1
- package/dist/chunks/dialog.js +2 -2
- package/dist/chunks/dialog.js.map +1 -1
- package/dist/chunks/divider.cjs +1 -1
- package/dist/chunks/divider.cjs.map +1 -1
- package/dist/chunks/divider.js +2 -2
- package/dist/chunks/divider.js.map +1 -1
- package/dist/chunks/drawer.cjs +180 -0
- package/dist/chunks/drawer.cjs.map +1 -0
- package/dist/chunks/drawer.js +181 -0
- package/dist/chunks/drawer.js.map +1 -0
- package/dist/chunks/dropdown-button.cjs +2 -2
- package/dist/chunks/dropdown-button.cjs.map +1 -1
- package/dist/chunks/dropdown-button.js +3 -3
- package/dist/chunks/dropdown-button.js.map +1 -1
- package/dist/chunks/icon.cjs +31 -1
- package/dist/chunks/icon.cjs.map +1 -1
- package/dist/chunks/icon.js +32 -2
- package/dist/chunks/icon.js.map +1 -1
- package/dist/chunks/menu.cjs +396 -0
- package/dist/chunks/menu.cjs.map +1 -0
- package/dist/chunks/menu.js +397 -0
- package/dist/chunks/menu.js.map +1 -0
- package/dist/chunks/navbar.cjs +1 -1
- package/dist/chunks/navbar.cjs.map +1 -1
- package/dist/chunks/navbar.js +2 -2
- package/dist/chunks/navbar.js.map +1 -1
- package/dist/chunks/pagination.cjs +475 -0
- package/dist/chunks/pagination.cjs.map +1 -0
- package/dist/chunks/pagination.js +476 -0
- package/dist/chunks/pagination.js.map +1 -0
- package/dist/chunks/progress-bar.cjs +101 -0
- package/dist/chunks/progress-bar.cjs.map +1 -0
- package/dist/chunks/progress-bar.js +102 -0
- package/dist/chunks/progress-bar.js.map +1 -0
- package/dist/chunks/radio.cjs +11 -7
- package/dist/chunks/radio.cjs.map +1 -1
- package/dist/chunks/radio.js +11 -7
- package/dist/chunks/radio.js.map +1 -1
- package/dist/chunks/select.cjs +97 -66
- package/dist/chunks/select.cjs.map +1 -1
- package/dist/chunks/select.js +97 -66
- package/dist/chunks/select.js.map +1 -1
- package/dist/chunks/slider.cjs +9 -46
- package/dist/chunks/slider.cjs.map +1 -1
- package/dist/chunks/slider.js +9 -46
- package/dist/chunks/slider.js.map +1 -1
- package/dist/chunks/spinner.cjs +102 -0
- package/dist/chunks/spinner.cjs.map +1 -0
- package/dist/chunks/spinner.js +103 -0
- package/dist/chunks/spinner.js.map +1 -0
- package/dist/chunks/switch.cjs +110 -16
- package/dist/chunks/switch.cjs.map +1 -1
- package/dist/chunks/switch.js +111 -17
- package/dist/chunks/switch.js.map +1 -1
- package/dist/chunks/tab-panel.cjs +3 -3
- package/dist/chunks/tab-panel.cjs.map +1 -1
- package/dist/chunks/tab-panel.js +4 -4
- package/dist/chunks/tab-panel.js.map +1 -1
- package/dist/chunks/tag.cjs +1 -1
- package/dist/chunks/tag.cjs.map +1 -1
- package/dist/chunks/tag.js +2 -2
- package/dist/chunks/tag.js.map +1 -1
- package/dist/chunks/text-input.cjs +11 -16
- package/dist/chunks/text-input.cjs.map +1 -1
- package/dist/chunks/text-input.js +11 -16
- package/dist/chunks/text-input.js.map +1 -1
- package/dist/chunks/textarea.cjs +137 -0
- package/dist/chunks/textarea.cjs.map +1 -0
- package/dist/chunks/textarea.js +138 -0
- package/dist/chunks/textarea.js.map +1 -0
- package/dist/chunks/tooltip.cjs +293 -0
- package/dist/chunks/tooltip.cjs.map +1 -0
- package/dist/chunks/tooltip.js +294 -0
- package/dist/chunks/tooltip.js.map +1 -0
- package/dist/chunks/tree.cjs +468 -0
- package/dist/chunks/tree.cjs.map +1 -0
- package/dist/chunks/tree.js +469 -0
- package/dist/chunks/tree.js.map +1 -0
- package/dist/chunks/variables.cjs +2 -2
- package/dist/chunks/variables.js +2 -2
- package/dist/copy-button.cjs +6 -0
- package/dist/copy-button.cjs.map +1 -0
- package/dist/copy-button.js +6 -0
- package/dist/copy-button.js.map +1 -0
- package/dist/drawer.cjs +6 -0
- package/dist/drawer.cjs.map +1 -0
- package/dist/drawer.js +6 -0
- package/dist/drawer.js.map +1 -0
- package/dist/index.cjs +175 -88
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +186 -99
- package/dist/index.js.map +1 -1
- package/dist/menu.cjs +6 -0
- package/dist/menu.cjs.map +1 -0
- package/dist/menu.js +6 -0
- package/dist/menu.js.map +1 -0
- package/dist/pagination.cjs +6 -0
- package/dist/pagination.cjs.map +1 -0
- package/dist/pagination.js +6 -0
- package/dist/pagination.js.map +1 -0
- package/dist/progress-bar.cjs +6 -0
- package/dist/progress-bar.cjs.map +1 -0
- package/dist/progress-bar.js +6 -0
- package/dist/progress-bar.js.map +1 -0
- package/dist/select.cjs +1 -1
- package/dist/select.cjs.map +1 -1
- package/dist/select.js +2 -2
- package/dist/select.js.map +1 -1
- package/dist/spinner.cjs +6 -0
- package/dist/spinner.cjs.map +1 -0
- package/dist/spinner.js +6 -0
- package/dist/spinner.js.map +1 -0
- package/dist/textarea.cjs +5 -0
- package/dist/textarea.cjs.map +1 -0
- package/dist/textarea.js +5 -0
- package/dist/textarea.js.map +1 -0
- package/dist/tooltip.cjs +6 -0
- package/dist/tooltip.cjs.map +1 -0
- package/dist/tooltip.js +6 -0
- package/dist/tooltip.js.map +1 -0
- package/dist/tree.cjs +6 -0
- package/dist/tree.cjs.map +1 -0
- package/dist/tree.js +6 -0
- package/dist/tree.js.map +1 -0
- package/dist/types/aeico-field.d.ts +52 -0
- package/dist/types/alert/alert.d.ts +1 -0
- package/dist/types/copy-button/copy-button.d.ts +32 -0
- package/dist/types/copy-button/defines.d.ts +1 -0
- package/dist/types/copy-button/index.d.ts +3 -0
- package/dist/types/detail/defines.d.ts +1 -0
- package/dist/types/detail/detail.d.ts +3 -1
- package/dist/types/detail/index.d.ts +1 -1
- package/dist/types/detail-group/detail-group.d.ts +39 -0
- package/dist/types/detail-group/index.d.ts +2 -0
- package/dist/types/drawer/defines.d.ts +1 -0
- package/dist/types/drawer/drawer.d.ts +31 -0
- package/dist/types/drawer/index.d.ts +3 -0
- package/dist/types/icon/built-in-icons.d.ts +1 -0
- package/dist/types/icon/icon.d.ts +1 -0
- package/dist/types/icon/registry.d.ts +8 -0
- package/dist/types/index.d.ts +17 -0
- package/dist/types/menu/defines.d.ts +15 -0
- package/dist/types/menu/index.d.ts +5 -0
- package/dist/types/menu/menu-item.d.ts +63 -0
- package/dist/types/menu/menu.d.ts +34 -0
- package/dist/types/number-input/index.d.ts +2 -0
- package/dist/types/number-input/number-input.d.ts +35 -0
- package/dist/types/pagination/defines.d.ts +2 -0
- package/dist/types/pagination/index.d.ts +3 -0
- package/dist/types/pagination/pagination.d.ts +77 -0
- package/dist/types/select/select.d.ts +2 -2
- package/dist/types/spinner/defines.d.ts +3 -0
- package/dist/types/spinner/index.d.ts +3 -0
- package/dist/types/spinner/spinner.d.ts +35 -0
- package/dist/types/switch/defines.d.ts +1 -0
- package/dist/types/switch/switch.d.ts +8 -4
- package/dist/types/text-input/text-input.d.ts +0 -4
- package/dist/types/textarea/index.d.ts +1 -0
- package/dist/types/textarea/textarea.d.ts +26 -0
- package/dist/types/tooltip/defines.d.ts +2 -0
- package/dist/types/tooltip/index.d.ts +4 -0
- package/dist/types/tooltip/tooltip.d.ts +48 -0
- package/dist/types/tree/defines.d.ts +23 -0
- package/dist/types/tree/index.d.ts +5 -0
- package/dist/types/tree/tree-item.d.ts +54 -0
- package/dist/types/tree/tree.d.ts +64 -0
- package/package.json +5 -5
- package/src/aeico-field.ts +142 -7
- package/src/alert/alert.ts +3 -2
- package/src/checkbox/checkbox.ts +17 -2
- package/src/copy-button/copy-button.ts +146 -0
- package/src/copy-button/defines.ts +5 -0
- package/src/copy-button/index.ts +3 -0
- package/src/detail/defines.ts +1 -0
- package/src/detail/detail.ts +5 -1
- package/src/detail/index.ts +1 -1
- package/src/detail-group/detail-group.ts +104 -0
- package/src/detail-group/index.ts +2 -0
- package/src/drawer/defines.ts +1 -0
- package/src/drawer/drawer.ts +157 -0
- package/src/drawer/index.ts +3 -0
- package/src/icon/built-in-icons.ts +21 -0
- package/src/icon/icon.ts +1 -0
- package/src/icon/registry.ts +22 -0
- package/src/index.ts +30 -0
- package/src/menu/defines.ts +17 -0
- package/src/menu/index.ts +5 -0
- package/src/menu/menu-item.ts +315 -0
- package/src/menu/menu.ts +81 -0
- package/src/number-input/index.ts +2 -0
- package/src/number-input/number-input.ts +137 -0
- package/src/pagination/defines.ts +2 -0
- package/src/pagination/index.ts +3 -0
- package/src/pagination/pagination.ts +310 -0
- package/src/radio-group/radio-group.ts +11 -4
- package/src/select/select.ts +111 -70
- package/src/slider/slider.ts +9 -2
- package/src/spinner/defines.ts +12 -0
- package/src/spinner/index.ts +3 -0
- package/src/spinner/spinner.ts +81 -0
- package/src/styles/components/action-button.css +37 -0
- package/src/styles/components/checkbox.css +4 -26
- package/src/styles/components/copy-button.css +119 -0
- package/src/styles/components/detail-group.css +10 -0
- package/src/styles/components/detail.css +10 -1
- package/src/styles/components/drawer.css +161 -0
- package/src/styles/components/field-label.css +120 -0
- package/src/styles/components/menu-item.css +168 -0
- package/src/styles/components/menu.css +17 -0
- package/src/styles/components/number-input.css +167 -0
- package/src/styles/components/pagination.css +205 -0
- package/src/styles/components/radio-group.css +0 -23
- package/src/styles/components/select.css +12 -39
- package/src/styles/components/slider.css +0 -42
- package/src/styles/components/spinner.css +80 -0
- package/src/styles/components/switch.css +68 -19
- package/src/styles/components/tab-panel.css +1 -1
- package/src/styles/components/tabs.css +1 -0
- package/src/styles/components/text-input.css +7 -45
- package/src/styles/components/textarea.css +75 -0
- package/src/styles/components/tooltip.css +103 -0
- package/src/styles/components/tree-item.css +152 -0
- package/src/styles/components/tree.css +10 -0
- package/src/styles/layout.css +457 -25
- package/src/switch/defines.ts +1 -0
- package/src/switch/switch.ts +61 -12
- package/src/text-input/text-input.ts +10 -15
- package/src/textarea/index.ts +1 -0
- package/src/textarea/textarea.ts +107 -0
- package/src/tooltip/defines.ts +11 -0
- package/src/tooltip/index.ts +4 -0
- package/src/tooltip/tooltip.ts +183 -0
- package/src/tree/defines.ts +26 -0
- package/src/tree/index.ts +5 -0
- package/src/tree/tree-item.ts +258 -0
- package/src/tree/tree.ts +237 -0
- package/dist/chunks/aeico-field.cjs +0 -179
- package/dist/chunks/aeico-field.cjs.map +0 -1
- package/dist/chunks/aeico-field.js +0 -180
- package/dist/chunks/aeico-field.js.map +0 -1
package/dist/chunks/card.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card.cjs","sources":["../../src/card/card.ts"],"sourcesContent":["import type { InferProps } from 'aeico';\nimport styleVariables from '../styles/variables.css?inline';\nimport colorCSS from '../styles/color.css?inline';\nimport cardStyle from '../styles/components/card.css?inline';\nimport AeicoComponent from '../aeico-component';\nimport { html } from 'aeico';\nimport type { CardVariant, CardColor } from './defines';\nimport { prop } from 'aeico';\n\nclass Card extends AeicoComponent {\n static tagName = 'card';\n\n protected static styles = [styleVariables, colorCSS, cardStyle];\n\n @prop({ type: String })\n accessor color: CardColor = 'default';\n\n @prop({ type: String })\n accessor variant: CardVariant = 'filled';\n\n protected render() {\n return html(({ div, header, footer, slot }) => {\n div({ className: 'card', part: 'card' }, () => {\n header({ className: 'header', part: 'header' }, () => {\n slot({ name: 'header', '@slotchange': (e: Event) => this._onHeaderSlotChange(e) });\n });\n div({ className: 'body', part: 'body' }, () => {\n slot();\n });\n footer({ className: 'footer', part: 'footer' }, () => {\n slot({ name: 'footer', '@slotchange': (e: Event) => this._onFooterSlotChange(e) });\n });\n });\n });\n }\n\n private _onHeaderSlotChange(e: Event) {\n const slot = e.target as HTMLSlotElement;\n this.toggleAttribute('has-header', slot.assignedNodes({ flatten: true }).length > 0);\n }\n\n private _onFooterSlotChange(e: Event) {\n const slot = e.target as HTMLSlotElement;\n this.toggleAttribute('has-footer', slot.assignedNodes({ flatten: true }).length > 0);\n }\n}\n\nCard.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-card': Card;\n }\n}\n\nexport default Card;\nexport type CardProps = InferProps<typeof Card>;\n"],"names":["AeicoComponent","prop","html","styleVariables","colorCSS"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAA,cAAA,YAAA,IAAA,OAAA,QAAA;AASA,MAAM,cAAa,KAAAA,+BAKjB,aAAA,CAACC,MAAAA,KAAK,EAAE,MAAM,OAAA,CAAQ,CAAA,GAGtB,eAAA,CAACA,WAAK,EAAE,MAAM,OAAA,CAAQ,IARL,IAAe;AAAA,EAAlC,cAAA;AAAA,UAAA,GAAA,SAAA;AAME,iBAAA,MAAS,QAAmB,kBAA5B,OAAA,GAAA,MAA4B,SAAA,CAAA,GAA5B,kBAAA,OAAA,IAAA,IAAA;AAGA,iBAAA,MAAS,UAAuB,kBAAhC,OAAA,IAAA,MAAgC,QAAA,CAAA,GAAhC,kBAAA,OAAA,IAAA,IAAA;AAAA,EAAA;AAAA,EAEU,SAAS;AACjB,WAAOC,MAAAA,KAAK,CAAC,EAAE,KAAK,QAAQ,QAAQ,WAAW;AAC7C,UAAI,EAAE,WAAW,QAAQ,MAAM,OAAA,GAAU,MAAM;AAC7C,eAAO,EAAE,WAAW,UAAU,MAAM,SAAA,GAAY,MAAM;AACpD,eAAK,EAAE,MAAM,UAAU,eAAe,CAAC,MAAa,KAAK,oBAAoB,CAAC,GAAG;AAAA,QACnF,CAAC;AACD,YAAI,EAAE,WAAW,QAAQ,MAAM,OAAA,GAAU,MAAM;AAC7C,eAAA;AAAA,QACF,CAAC;AACD,eAAO,EAAE,WAAW,UAAU,MAAM,SAAA,GAAY,MAAM;AACpD,eAAK,EAAE,MAAM,UAAU,eAAe,CAAC,MAAa,KAAK,oBAAoB,CAAC,GAAG;AAAA,QACnF,CAAC;AAAA,MACH,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAAA,EAEQ,oBAAoB,GAAU;AACpC,UAAM,OAAO,EAAE;AACf,SAAK,gBAAgB,cAAc,KAAK,cAAc,EAAE,SAAS,KAAA,CAAM,EAAE,SAAS,CAAC;AAAA,EACrF;AAAA,EAEQ,oBAAoB,GAAU;AACpC,UAAM,OAAO,EAAE;AACf,SAAK,gBAAgB,cAAc,KAAK,cAAc,EAAE,SAAS,KAAA,CAAM,EAAE,SAAS,CAAC;AAAA,EACrF;AACF;AApCA,QAAA,iBAAA,EAAA;AAMW,SAAA,oBAAA,QAAA;AAGA,WAAA,oBAAA,QAAA;AAHT,kBAAA,OAAA,GAAS,SADT,YALI,MAMK,MAAA;AAGT,kBAAA,OAAA,GAAS,WADT,cARI,MASK,QAAA;AATX,oBAAA,OAAM,IAAA;AACJ,cADI,MACG,WAAU,MAAA;AAEjB,cAHI,MAGa,UAAS,CAACC,UAAAA,
|
|
1
|
+
{"version":3,"file":"card.cjs","sources":["../../src/card/card.ts"],"sourcesContent":["import type { InferProps } from 'aeico';\nimport styleVariables from '../styles/variables.css?inline';\nimport colorCSS from '../styles/color.css?inline';\nimport cardStyle from '../styles/components/card.css?inline';\nimport AeicoComponent from '../aeico-component';\nimport { html } from 'aeico';\nimport type { CardVariant, CardColor } from './defines';\nimport { prop } from 'aeico';\n\nclass Card extends AeicoComponent {\n static tagName = 'card';\n\n protected static styles = [styleVariables, colorCSS, cardStyle];\n\n @prop({ type: String })\n accessor color: CardColor = 'default';\n\n @prop({ type: String })\n accessor variant: CardVariant = 'filled';\n\n protected render() {\n return html(({ div, header, footer, slot }) => {\n div({ className: 'card', part: 'card' }, () => {\n header({ className: 'header', part: 'header' }, () => {\n slot({ name: 'header', '@slotchange': (e: Event) => this._onHeaderSlotChange(e) });\n });\n div({ className: 'body', part: 'body' }, () => {\n slot();\n });\n footer({ className: 'footer', part: 'footer' }, () => {\n slot({ name: 'footer', '@slotchange': (e: Event) => this._onFooterSlotChange(e) });\n });\n });\n });\n }\n\n private _onHeaderSlotChange(e: Event) {\n const slot = e.target as HTMLSlotElement;\n this.toggleAttribute('has-header', slot.assignedNodes({ flatten: true }).length > 0);\n }\n\n private _onFooterSlotChange(e: Event) {\n const slot = e.target as HTMLSlotElement;\n this.toggleAttribute('has-footer', slot.assignedNodes({ flatten: true }).length > 0);\n }\n}\n\nCard.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-card': Card;\n }\n}\n\nexport default Card;\nexport type CardProps = InferProps<typeof Card>;\n"],"names":["AeicoComponent","prop","html","styleVariables","colorCSS"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAA,cAAA,YAAA,IAAA,OAAA,QAAA;AASA,MAAM,cAAa,KAAAA,+BAKjB,aAAA,CAACC,MAAAA,KAAK,EAAE,MAAM,OAAA,CAAQ,CAAA,GAGtB,eAAA,CAACA,WAAK,EAAE,MAAM,OAAA,CAAQ,IARL,IAAe;AAAA,EAAlC,cAAA;AAAA,UAAA,GAAA,SAAA;AAME,iBAAA,MAAS,QAAmB,kBAA5B,OAAA,GAAA,MAA4B,SAAA,CAAA,GAA5B,kBAAA,OAAA,IAAA,IAAA;AAGA,iBAAA,MAAS,UAAuB,kBAAhC,OAAA,IAAA,MAAgC,QAAA,CAAA,GAAhC,kBAAA,OAAA,IAAA,IAAA;AAAA,EAAA;AAAA,EAEU,SAAS;AACjB,WAAOC,MAAAA,KAAK,CAAC,EAAE,KAAK,QAAQ,QAAQ,WAAW;AAC7C,UAAI,EAAE,WAAW,QAAQ,MAAM,OAAA,GAAU,MAAM;AAC7C,eAAO,EAAE,WAAW,UAAU,MAAM,SAAA,GAAY,MAAM;AACpD,eAAK,EAAE,MAAM,UAAU,eAAe,CAAC,MAAa,KAAK,oBAAoB,CAAC,GAAG;AAAA,QACnF,CAAC;AACD,YAAI,EAAE,WAAW,QAAQ,MAAM,OAAA,GAAU,MAAM;AAC7C,eAAA;AAAA,QACF,CAAC;AACD,eAAO,EAAE,WAAW,UAAU,MAAM,SAAA,GAAY,MAAM;AACpD,eAAK,EAAE,MAAM,UAAU,eAAe,CAAC,MAAa,KAAK,oBAAoB,CAAC,GAAG;AAAA,QACnF,CAAC;AAAA,MACH,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAAA,EAEQ,oBAAoB,GAAU;AACpC,UAAM,OAAO,EAAE;AACf,SAAK,gBAAgB,cAAc,KAAK,cAAc,EAAE,SAAS,KAAA,CAAM,EAAE,SAAS,CAAC;AAAA,EACrF;AAAA,EAEQ,oBAAoB,GAAU;AACpC,UAAM,OAAO,EAAE;AACf,SAAK,gBAAgB,cAAc,KAAK,cAAc,EAAE,SAAS,KAAA,CAAM,EAAE,SAAS,CAAC;AAAA,EACrF;AACF;AApCA,QAAA,iBAAA,EAAA;AAMW,SAAA,oBAAA,QAAA;AAGA,WAAA,oBAAA,QAAA;AAHT,kBAAA,OAAA,GAAS,SADT,YALI,MAMK,MAAA;AAGT,kBAAA,OAAA,GAAS,WADT,cARI,MASK,QAAA;AATX,oBAAA,OAAM,IAAA;AACJ,cADI,MACG,WAAU,MAAA;AAEjB,cAHI,MAGa,UAAS,CAACC,UAAAA,WAAgBC,MAAAA,UAAU,SAAS,CAAA;AAmChE,KAAK,SAAA;;"}
|
package/dist/chunks/card.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { v as variables } from "./variables.js";
|
|
2
2
|
import { c as colorCSS } from "./color.js";
|
|
3
3
|
import { A as AeicoComponent } from "./aeico-component.js";
|
|
4
4
|
import { prop, html } from "aeico";
|
|
@@ -86,7 +86,7 @@ __decorateElement(_init, 4, "color", _color_dec, Card, _color);
|
|
|
86
86
|
__decorateElement(_init, 4, "variant", _variant_dec, Card, _variant);
|
|
87
87
|
__decoratorMetadata(_init, Card);
|
|
88
88
|
__publicField(Card, "tagName", "card");
|
|
89
|
-
__publicField(Card, "styles", [
|
|
89
|
+
__publicField(Card, "styles", [variables, colorCSS, cardStyle]);
|
|
90
90
|
Card.register();
|
|
91
91
|
export {
|
|
92
92
|
Card as C
|
package/dist/chunks/card.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card.js","sources":["../../src/card/card.ts"],"sourcesContent":["import type { InferProps } from 'aeico';\nimport styleVariables from '../styles/variables.css?inline';\nimport colorCSS from '../styles/color.css?inline';\nimport cardStyle from '../styles/components/card.css?inline';\nimport AeicoComponent from '../aeico-component';\nimport { html } from 'aeico';\nimport type { CardVariant, CardColor } from './defines';\nimport { prop } from 'aeico';\n\nclass Card extends AeicoComponent {\n static tagName = 'card';\n\n protected static styles = [styleVariables, colorCSS, cardStyle];\n\n @prop({ type: String })\n accessor color: CardColor = 'default';\n\n @prop({ type: String })\n accessor variant: CardVariant = 'filled';\n\n protected render() {\n return html(({ div, header, footer, slot }) => {\n div({ className: 'card', part: 'card' }, () => {\n header({ className: 'header', part: 'header' }, () => {\n slot({ name: 'header', '@slotchange': (e: Event) => this._onHeaderSlotChange(e) });\n });\n div({ className: 'body', part: 'body' }, () => {\n slot();\n });\n footer({ className: 'footer', part: 'footer' }, () => {\n slot({ name: 'footer', '@slotchange': (e: Event) => this._onFooterSlotChange(e) });\n });\n });\n });\n }\n\n private _onHeaderSlotChange(e: Event) {\n const slot = e.target as HTMLSlotElement;\n this.toggleAttribute('has-header', slot.assignedNodes({ flatten: true }).length > 0);\n }\n\n private _onFooterSlotChange(e: Event) {\n const slot = e.target as HTMLSlotElement;\n this.toggleAttribute('has-footer', slot.assignedNodes({ flatten: true }).length > 0);\n }\n}\n\nCard.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-card': Card;\n }\n}\n\nexport default Card;\nexport type CardProps = InferProps<typeof Card>;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAA,cAAA,YAAA,IAAA,OAAA,QAAA;AASA,MAAM,cAAa,KAAA,gBAKjB,aAAA,CAAC,KAAK,EAAE,MAAM,OAAA,CAAQ,CAAA,GAGtB,eAAA,CAAC,KAAK,EAAE,MAAM,OAAA,CAAQ,IARL,IAAe;AAAA,EAAlC,cAAA;AAAA,UAAA,GAAA,SAAA;AAME,iBAAA,MAAS,QAAmB,kBAA5B,OAAA,GAAA,MAA4B,SAAA,CAAA,GAA5B,kBAAA,OAAA,IAAA,IAAA;AAGA,iBAAA,MAAS,UAAuB,kBAAhC,OAAA,IAAA,MAAgC,QAAA,CAAA,GAAhC,kBAAA,OAAA,IAAA,IAAA;AAAA,EAAA;AAAA,EAEU,SAAS;AACjB,WAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,QAAQ,WAAW;AAC7C,UAAI,EAAE,WAAW,QAAQ,MAAM,OAAA,GAAU,MAAM;AAC7C,eAAO,EAAE,WAAW,UAAU,MAAM,SAAA,GAAY,MAAM;AACpD,eAAK,EAAE,MAAM,UAAU,eAAe,CAAC,MAAa,KAAK,oBAAoB,CAAC,GAAG;AAAA,QACnF,CAAC;AACD,YAAI,EAAE,WAAW,QAAQ,MAAM,OAAA,GAAU,MAAM;AAC7C,eAAA;AAAA,QACF,CAAC;AACD,eAAO,EAAE,WAAW,UAAU,MAAM,SAAA,GAAY,MAAM;AACpD,eAAK,EAAE,MAAM,UAAU,eAAe,CAAC,MAAa,KAAK,oBAAoB,CAAC,GAAG;AAAA,QACnF,CAAC;AAAA,MACH,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAAA,EAEQ,oBAAoB,GAAU;AACpC,UAAM,OAAO,EAAE;AACf,SAAK,gBAAgB,cAAc,KAAK,cAAc,EAAE,SAAS,KAAA,CAAM,EAAE,SAAS,CAAC;AAAA,EACrF;AAAA,EAEQ,oBAAoB,GAAU;AACpC,UAAM,OAAO,EAAE;AACf,SAAK,gBAAgB,cAAc,KAAK,cAAc,EAAE,SAAS,KAAA,CAAM,EAAE,SAAS,CAAC;AAAA,EACrF;AACF;AApCA,QAAA,iBAAA,EAAA;AAMW,SAAA,oBAAA,QAAA;AAGA,WAAA,oBAAA,QAAA;AAHT,kBAAA,OAAA,GAAS,SADT,YALI,MAMK,MAAA;AAGT,kBAAA,OAAA,GAAS,WADT,cARI,MASK,QAAA;AATX,oBAAA,OAAM,IAAA;AACJ,cADI,MACG,WAAU,MAAA;AAEjB,cAHI,MAGa,UAAS,
|
|
1
|
+
{"version":3,"file":"card.js","sources":["../../src/card/card.ts"],"sourcesContent":["import type { InferProps } from 'aeico';\nimport styleVariables from '../styles/variables.css?inline';\nimport colorCSS from '../styles/color.css?inline';\nimport cardStyle from '../styles/components/card.css?inline';\nimport AeicoComponent from '../aeico-component';\nimport { html } from 'aeico';\nimport type { CardVariant, CardColor } from './defines';\nimport { prop } from 'aeico';\n\nclass Card extends AeicoComponent {\n static tagName = 'card';\n\n protected static styles = [styleVariables, colorCSS, cardStyle];\n\n @prop({ type: String })\n accessor color: CardColor = 'default';\n\n @prop({ type: String })\n accessor variant: CardVariant = 'filled';\n\n protected render() {\n return html(({ div, header, footer, slot }) => {\n div({ className: 'card', part: 'card' }, () => {\n header({ className: 'header', part: 'header' }, () => {\n slot({ name: 'header', '@slotchange': (e: Event) => this._onHeaderSlotChange(e) });\n });\n div({ className: 'body', part: 'body' }, () => {\n slot();\n });\n footer({ className: 'footer', part: 'footer' }, () => {\n slot({ name: 'footer', '@slotchange': (e: Event) => this._onFooterSlotChange(e) });\n });\n });\n });\n }\n\n private _onHeaderSlotChange(e: Event) {\n const slot = e.target as HTMLSlotElement;\n this.toggleAttribute('has-header', slot.assignedNodes({ flatten: true }).length > 0);\n }\n\n private _onFooterSlotChange(e: Event) {\n const slot = e.target as HTMLSlotElement;\n this.toggleAttribute('has-footer', slot.assignedNodes({ flatten: true }).length > 0);\n }\n}\n\nCard.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-card': Card;\n }\n}\n\nexport default Card;\nexport type CardProps = InferProps<typeof Card>;\n"],"names":["styleVariables"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAA,cAAA,YAAA,IAAA,OAAA,QAAA;AASA,MAAM,cAAa,KAAA,gBAKjB,aAAA,CAAC,KAAK,EAAE,MAAM,OAAA,CAAQ,CAAA,GAGtB,eAAA,CAAC,KAAK,EAAE,MAAM,OAAA,CAAQ,IARL,IAAe;AAAA,EAAlC,cAAA;AAAA,UAAA,GAAA,SAAA;AAME,iBAAA,MAAS,QAAmB,kBAA5B,OAAA,GAAA,MAA4B,SAAA,CAAA,GAA5B,kBAAA,OAAA,IAAA,IAAA;AAGA,iBAAA,MAAS,UAAuB,kBAAhC,OAAA,IAAA,MAAgC,QAAA,CAAA,GAAhC,kBAAA,OAAA,IAAA,IAAA;AAAA,EAAA;AAAA,EAEU,SAAS;AACjB,WAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,QAAQ,WAAW;AAC7C,UAAI,EAAE,WAAW,QAAQ,MAAM,OAAA,GAAU,MAAM;AAC7C,eAAO,EAAE,WAAW,UAAU,MAAM,SAAA,GAAY,MAAM;AACpD,eAAK,EAAE,MAAM,UAAU,eAAe,CAAC,MAAa,KAAK,oBAAoB,CAAC,GAAG;AAAA,QACnF,CAAC;AACD,YAAI,EAAE,WAAW,QAAQ,MAAM,OAAA,GAAU,MAAM;AAC7C,eAAA;AAAA,QACF,CAAC;AACD,eAAO,EAAE,WAAW,UAAU,MAAM,SAAA,GAAY,MAAM;AACpD,eAAK,EAAE,MAAM,UAAU,eAAe,CAAC,MAAa,KAAK,oBAAoB,CAAC,GAAG;AAAA,QACnF,CAAC;AAAA,MACH,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAAA,EAEQ,oBAAoB,GAAU;AACpC,UAAM,OAAO,EAAE;AACf,SAAK,gBAAgB,cAAc,KAAK,cAAc,EAAE,SAAS,KAAA,CAAM,EAAE,SAAS,CAAC;AAAA,EACrF;AAAA,EAEQ,oBAAoB,GAAU;AACpC,UAAM,OAAO,EAAE;AACf,SAAK,gBAAgB,cAAc,KAAK,cAAc,EAAE,SAAS,KAAA,CAAM,EAAE,SAAS,CAAC;AAAA,EACrF;AACF;AApCA,QAAA,iBAAA,EAAA;AAMW,SAAA,oBAAA,QAAA;AAGA,WAAA,oBAAA,QAAA;AAHT,kBAAA,OAAA,GAAS,SADT,YALI,MAMK,MAAA;AAGT,kBAAA,OAAA,GAAS,WADT,cARI,MASK,QAAA;AATX,oBAAA,OAAM,IAAA;AACJ,cADI,MACG,WAAU,MAAA;AAEjB,cAHI,MAGa,UAAS,CAACA,WAAgB,UAAU,SAAS,CAAA;AAmChE,KAAK,SAAA;"}
|
package/dist/chunks/checkbox.cjs
CHANGED
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
3
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
4
4
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
5
|
-
const
|
|
5
|
+
const actionButton = require("./action-button.cjs");
|
|
6
6
|
const aeico = require("aeico");
|
|
7
7
|
const variables = require("./variables.cjs");
|
|
8
8
|
const size = require("./size.cjs");
|
|
9
9
|
const color = require("./color.cjs");
|
|
10
|
-
const styles = ":host {\n display: block;\n flex: 1;\n min-width: 0;\n font-size: var(--size-base);\n\n /* Layout */\n --checkbox-field-gap: 4px;\n\n /* Checkbox */\n --checkbox-size: 1.167em;\n --checkbox-border-width: 1px;\n --checkbox-border-radius: 2px;\n --checkbox-border-color: var(--border-subtle);\n --checkbox-bg: var(--surface-base);\n --checkbox-accent-color: var(--color-solid);\n\n /* Default color when no [color] attribute — overridden by color.css :host([color=...]) */\n --color-solid: var(--color-primary);\n}\n\n.checkbox-container {\n display: flex;\n align-items: center;\n gap: var(--checkbox-field-gap);\n width: 100%;\n}\n\n.checkbox-wrapper {\n position: relative;\n display: inline-flex;\n align-items: center;\n}\n\n.field-input {\n width: var(--checkbox-size);\n height: var(--checkbox-size);\n cursor: pointer;\n border: var(--checkbox-border-width) solid var(--checkbox-border-color);\n border-radius: var(--checkbox-border-radius);\n background: var(--checkbox-bg);\n accent-color: var(--checkbox-accent-color);\n margin: 0;\n flex-shrink: 0;\n}\n\n.field-input:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/*
|
|
11
|
-
class Checkbox extends
|
|
10
|
+
const styles = ":host {\n display: block;\n flex: 1;\n min-width: 0;\n font-size: var(--size-base);\n\n /* Layout */\n --checkbox-field-gap: 4px;\n\n /* Checkbox */\n --checkbox-size: 1.167em;\n --checkbox-border-width: 1px;\n --checkbox-border-radius: 2px;\n --checkbox-border-color: var(--border-subtle);\n --checkbox-bg: var(--surface-base);\n --checkbox-accent-color: var(--color-solid);\n\n /* Default color when no [color] attribute — overridden by color.css :host([color=...]) */\n --color-solid: var(--color-primary);\n}\n\n.checkbox-container {\n display: flex;\n align-items: center;\n gap: var(--checkbox-field-gap);\n width: 100%;\n}\n\n.checkbox-wrapper {\n position: relative;\n display: inline-flex;\n align-items: center;\n}\n\n.field-input {\n width: var(--checkbox-size);\n height: var(--checkbox-size);\n cursor: pointer;\n border: var(--checkbox-border-width) solid var(--checkbox-border-color);\n border-radius: var(--checkbox-border-radius);\n background: var(--checkbox-bg);\n accent-color: var(--checkbox-accent-color);\n margin: 0;\n flex-shrink: 0;\n}\n\n.field-input:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* Error state */\n:host([error]) .field-input {\n outline: 2px solid var(--field-error-color, var(--red));\n outline-offset: 1px;\n}\n";
|
|
11
|
+
class Checkbox extends actionButton.AeicoField {
|
|
12
12
|
constructor() {
|
|
13
13
|
super(...arguments);
|
|
14
14
|
__publicField(this, "fieldElement", null);
|
|
@@ -46,18 +46,24 @@ class Checkbox extends aeicoField.AeicoField {
|
|
|
46
46
|
}
|
|
47
47
|
render() {
|
|
48
48
|
return aeico.html(({ div, input }) => {
|
|
49
|
-
|
|
49
|
+
const id = this.getFieldId();
|
|
50
|
+
this.renderLabel(id);
|
|
51
|
+
div({ className: "checkbox-container field-body", variant: this.variant }, () => {
|
|
50
52
|
div({ className: "checkbox-wrapper" }, () => {
|
|
51
53
|
this.fieldElement = input({
|
|
54
|
+
id,
|
|
52
55
|
type: "checkbox",
|
|
53
56
|
className: "field-input",
|
|
54
57
|
checked: Boolean(this.checked),
|
|
55
58
|
disabled: Boolean(this.disabled),
|
|
59
|
+
required: Boolean(this.required),
|
|
56
60
|
"@change": this.boundOnChange
|
|
57
61
|
});
|
|
58
62
|
});
|
|
59
63
|
this.renderActionButtons();
|
|
60
64
|
});
|
|
65
|
+
this.renderHelperText();
|
|
66
|
+
this.renderError();
|
|
61
67
|
});
|
|
62
68
|
}
|
|
63
69
|
}
|
|
@@ -67,7 +73,14 @@ __publicField(Checkbox, "props", {
|
|
|
67
73
|
defaultChecked: { type: Boolean },
|
|
68
74
|
variant: { type: String }
|
|
69
75
|
});
|
|
70
|
-
__publicField(Checkbox, "styles", [
|
|
76
|
+
__publicField(Checkbox, "styles", [
|
|
77
|
+
variables.variables,
|
|
78
|
+
size.sizeCSS,
|
|
79
|
+
color.colorCSS,
|
|
80
|
+
actionButton.fieldLabelCSS,
|
|
81
|
+
actionButton.actionButtonCSS,
|
|
82
|
+
styles
|
|
83
|
+
]);
|
|
71
84
|
Checkbox.register();
|
|
72
85
|
exports.Checkbox = Checkbox;
|
|
73
86
|
//# sourceMappingURL=checkbox.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox.cjs","sources":["../../src/checkbox/checkbox.ts"],"sourcesContent":["import AeicoField, { type FieldAction } from '../aeico-field';\nimport type { InferProps, Props } from 'aeico';\nimport { html } from 'aeico';\nimport styleVariables from '../styles/variables.css?inline';\nimport sizeCSS from '../styles/size.css?inline';\nimport colorCSS from '../styles/color.css?inline';\nimport styles from '../styles/components/checkbox.css?inline';\nimport { CheckboxVariant } from './defines';\n\nclass Checkbox extends AeicoField<boolean> {\n protected fieldElement: HTMLInputElement | null = null;\n\n static tagName = 'checkbox';\n\n static props: Props = {\n checked: { type: Boolean },\n defaultChecked: { type: Boolean },\n variant: { type: String },\n };\n\n declare checked?: boolean;\n declare defaultChecked?: boolean;\n declare variant?: CheckboxVariant;\n\n protected static styles = [styleVariables
|
|
1
|
+
{"version":3,"file":"checkbox.cjs","sources":["../../src/checkbox/checkbox.ts"],"sourcesContent":["import AeicoField, { type FieldAction } from '../aeico-field';\nimport type { InferProps, Props } from 'aeico';\nimport { html } from 'aeico';\nimport styleVariables from '../styles/variables.css?inline';\nimport sizeCSS from '../styles/size.css?inline';\nimport colorCSS from '../styles/color.css?inline';\nimport fieldLabelCSS from '../styles/components/field-label.css?inline';\nimport actionButtonCSS from '../styles/components/action-button.css?inline';\nimport styles from '../styles/components/checkbox.css?inline';\nimport { CheckboxVariant } from './defines';\n\nclass Checkbox extends AeicoField<boolean> {\n protected fieldElement: HTMLInputElement | null = null;\n\n static tagName = 'checkbox';\n\n static props: Props = {\n checked: { type: Boolean },\n defaultChecked: { type: Boolean },\n variant: { type: String },\n };\n\n declare checked?: boolean;\n declare defaultChecked?: boolean;\n declare variant?: CheckboxVariant;\n\n protected static styles = [\n styleVariables,\n sizeCSS,\n colorCSS,\n fieldLabelCSS,\n actionButtonCSS,\n styles,\n ];\n\n protected getValue(): boolean {\n return this.fieldElement?.checked ?? false;\n }\n\n protected writeValue(checked: boolean): void {\n if (this.fieldElement) {\n this.fieldElement.checked = Boolean(checked);\n }\n }\n\n protected getEventPayload(checked: boolean, oldChecked: boolean, action: FieldAction) {\n return { checked, oldChecked, action };\n }\n\n protected setValue(checked: boolean, options?: { silent?: boolean; action?: FieldAction }): void {\n const oldChecked = this.getValue();\n this.checked = checked;\n this.writeValue(checked);\n if (options?.silent === false) {\n this.emit('change', {\n detail: this.getEventPayload(checked, oldChecked, options.action || 'change'),\n });\n }\n }\n\n public reset(checked?: boolean, options?: { silent?: boolean }): void {\n this.setValue(checked !== undefined ? checked : (this.defaultChecked ?? false), {\n ...options,\n action: 'reset',\n });\n }\n\n public clear(options?: { silent?: boolean }): void {\n this.setValue(false, { ...options, action: 'clear' });\n }\n\n render() {\n return html(({ div, input }) => {\n const id = this.getFieldId();\n this.renderLabel(id);\n div({ className: 'checkbox-container field-body', variant: this.variant }, () => {\n div({ className: 'checkbox-wrapper' }, () => {\n this.fieldElement = input({\n id,\n type: 'checkbox',\n className: 'field-input',\n checked: Boolean(this.checked),\n disabled: Boolean(this.disabled),\n required: Boolean(this.required),\n '@change': this.boundOnChange,\n });\n });\n this.renderActionButtons();\n });\n this.renderHelperText();\n this.renderError();\n });\n }\n}\n\nCheckbox.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-checkbox': Checkbox;\n }\n}\n\nexport default Checkbox;\nexport type CheckboxProps = InferProps<typeof Checkbox>;\n"],"names":["AeicoField","html","styleVariables","sizeCSS","colorCSS","fieldLabelCSS","actionButtonCSS"],"mappings":";;;;;;;;;;AAWA,MAAM,iBAAiBA,aAAAA,WAAoB;AAAA,EAA3C;AAAA;AACY,wCAAwC;AAAA;AAAA,EAuBxC,WAAoB;;AAC5B,aAAO,UAAK,iBAAL,mBAAmB,YAAW;AAAA,EACvC;AAAA,EAEU,WAAW,SAAwB;AAC3C,QAAI,KAAK,cAAc;AACrB,WAAK,aAAa,UAAU,QAAQ,OAAO;AAAA,IAC7C;AAAA,EACF;AAAA,EAEU,gBAAgB,SAAkB,YAAqB,QAAqB;AACpF,WAAO,EAAE,SAAS,YAAY,OAAA;AAAA,EAChC;AAAA,EAEU,SAAS,SAAkB,SAA4D;AAC/F,UAAM,aAAa,KAAK,SAAA;AACxB,SAAK,UAAU;AACf,SAAK,WAAW,OAAO;AACvB,SAAI,mCAAS,YAAW,OAAO;AAC7B,WAAK,KAAK,UAAU;AAAA,QAClB,QAAQ,KAAK,gBAAgB,SAAS,YAAY,QAAQ,UAAU,QAAQ;AAAA,MAAA,CAC7E;AAAA,IACH;AAAA,EACF;AAAA,EAEO,MAAM,SAAmB,SAAsC;AACpE,SAAK,SAAS,YAAY,SAAY,UAAW,KAAK,kBAAkB,OAAQ;AAAA,MAC9E,GAAG;AAAA,MACH,QAAQ;AAAA,IAAA,CACT;AAAA,EACH;AAAA,EAEO,MAAM,SAAsC;AACjD,SAAK,SAAS,OAAO,EAAE,GAAG,SAAS,QAAQ,SAAS;AAAA,EACtD;AAAA,EAEA,SAAS;AACP,WAAOC,WAAK,CAAC,EAAE,KAAK,YAAY;AAC9B,YAAM,KAAK,KAAK,WAAA;AAChB,WAAK,YAAY,EAAE;AACnB,UAAI,EAAE,WAAW,iCAAiC,SAAS,KAAK,QAAA,GAAW,MAAM;AAC/E,YAAI,EAAE,WAAW,mBAAA,GAAsB,MAAM;AAC3C,eAAK,eAAe,MAAM;AAAA,YACxB;AAAA,YACA,MAAM;AAAA,YACN,WAAW;AAAA,YACX,SAAS,QAAQ,KAAK,OAAO;AAAA,YAC7B,UAAU,QAAQ,KAAK,QAAQ;AAAA,YAC/B,UAAU,QAAQ,KAAK,QAAQ;AAAA,YAC/B,WAAW,KAAK;AAAA,UAAA,CACjB;AAAA,QACH,CAAC;AACD,aAAK,oBAAA;AAAA,MACP,CAAC;AACD,WAAK,iBAAA;AACL,WAAK,YAAA;AAAA,IACP,CAAC;AAAA,EACH;AACF;AA/EE,cAHI,UAGG,WAAU;AAEjB,cALI,UAKG,SAAe;AAAA,EACpB,SAAS,EAAE,MAAM,QAAA;AAAA,EACjB,gBAAgB,EAAE,MAAM,QAAA;AAAA,EACxB,SAAS,EAAE,MAAM,OAAA;AAAO;AAO1B,cAfI,UAea,UAAS;AAAA,EACxBC,UAAAA;AAAAA,EACAC,KAAAA;AAAAA,EACAC,MAAAA;AAAAA,EACAC,aAAAA;AAAAA,EACAC,aAAAA;AAAAA,EACA;AAAA;AA+DJ,SAAS,SAAA;;"}
|
package/dist/chunks/checkbox.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
2
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
3
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4
|
-
import { A as AeicoField } from "./
|
|
4
|
+
import { A as AeicoField, f as fieldLabelCSS, a as actionButtonCSS } from "./action-button.js";
|
|
5
5
|
import { html } from "aeico";
|
|
6
|
-
import {
|
|
6
|
+
import { v as variables } from "./variables.js";
|
|
7
7
|
import { s as sizeCSS } from "./size.js";
|
|
8
8
|
import { c as colorCSS } from "./color.js";
|
|
9
|
-
const styles = ":host {\n display: block;\n flex: 1;\n min-width: 0;\n font-size: var(--size-base);\n\n /* Layout */\n --checkbox-field-gap: 4px;\n\n /* Checkbox */\n --checkbox-size: 1.167em;\n --checkbox-border-width: 1px;\n --checkbox-border-radius: 2px;\n --checkbox-border-color: var(--border-subtle);\n --checkbox-bg: var(--surface-base);\n --checkbox-accent-color: var(--color-solid);\n\n /* Default color when no [color] attribute — overridden by color.css :host([color=...]) */\n --color-solid: var(--color-primary);\n}\n\n.checkbox-container {\n display: flex;\n align-items: center;\n gap: var(--checkbox-field-gap);\n width: 100%;\n}\n\n.checkbox-wrapper {\n position: relative;\n display: inline-flex;\n align-items: center;\n}\n\n.field-input {\n width: var(--checkbox-size);\n height: var(--checkbox-size);\n cursor: pointer;\n border: var(--checkbox-border-width) solid var(--checkbox-border-color);\n border-radius: var(--checkbox-border-radius);\n background: var(--checkbox-bg);\n accent-color: var(--checkbox-accent-color);\n margin: 0;\n flex-shrink: 0;\n}\n\n.field-input:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/*
|
|
9
|
+
const styles = ":host {\n display: block;\n flex: 1;\n min-width: 0;\n font-size: var(--size-base);\n\n /* Layout */\n --checkbox-field-gap: 4px;\n\n /* Checkbox */\n --checkbox-size: 1.167em;\n --checkbox-border-width: 1px;\n --checkbox-border-radius: 2px;\n --checkbox-border-color: var(--border-subtle);\n --checkbox-bg: var(--surface-base);\n --checkbox-accent-color: var(--color-solid);\n\n /* Default color when no [color] attribute — overridden by color.css :host([color=...]) */\n --color-solid: var(--color-primary);\n}\n\n.checkbox-container {\n display: flex;\n align-items: center;\n gap: var(--checkbox-field-gap);\n width: 100%;\n}\n\n.checkbox-wrapper {\n position: relative;\n display: inline-flex;\n align-items: center;\n}\n\n.field-input {\n width: var(--checkbox-size);\n height: var(--checkbox-size);\n cursor: pointer;\n border: var(--checkbox-border-width) solid var(--checkbox-border-color);\n border-radius: var(--checkbox-border-radius);\n background: var(--checkbox-bg);\n accent-color: var(--checkbox-accent-color);\n margin: 0;\n flex-shrink: 0;\n}\n\n.field-input:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* Error state */\n:host([error]) .field-input {\n outline: 2px solid var(--field-error-color, var(--red));\n outline-offset: 1px;\n}\n";
|
|
10
10
|
class Checkbox extends AeicoField {
|
|
11
11
|
constructor() {
|
|
12
12
|
super(...arguments);
|
|
@@ -45,18 +45,24 @@ class Checkbox extends AeicoField {
|
|
|
45
45
|
}
|
|
46
46
|
render() {
|
|
47
47
|
return html(({ div, input }) => {
|
|
48
|
-
|
|
48
|
+
const id = this.getFieldId();
|
|
49
|
+
this.renderLabel(id);
|
|
50
|
+
div({ className: "checkbox-container field-body", variant: this.variant }, () => {
|
|
49
51
|
div({ className: "checkbox-wrapper" }, () => {
|
|
50
52
|
this.fieldElement = input({
|
|
53
|
+
id,
|
|
51
54
|
type: "checkbox",
|
|
52
55
|
className: "field-input",
|
|
53
56
|
checked: Boolean(this.checked),
|
|
54
57
|
disabled: Boolean(this.disabled),
|
|
58
|
+
required: Boolean(this.required),
|
|
55
59
|
"@change": this.boundOnChange
|
|
56
60
|
});
|
|
57
61
|
});
|
|
58
62
|
this.renderActionButtons();
|
|
59
63
|
});
|
|
64
|
+
this.renderHelperText();
|
|
65
|
+
this.renderError();
|
|
60
66
|
});
|
|
61
67
|
}
|
|
62
68
|
}
|
|
@@ -66,7 +72,14 @@ __publicField(Checkbox, "props", {
|
|
|
66
72
|
defaultChecked: { type: Boolean },
|
|
67
73
|
variant: { type: String }
|
|
68
74
|
});
|
|
69
|
-
__publicField(Checkbox, "styles", [
|
|
75
|
+
__publicField(Checkbox, "styles", [
|
|
76
|
+
variables,
|
|
77
|
+
sizeCSS,
|
|
78
|
+
colorCSS,
|
|
79
|
+
fieldLabelCSS,
|
|
80
|
+
actionButtonCSS,
|
|
81
|
+
styles
|
|
82
|
+
]);
|
|
70
83
|
Checkbox.register();
|
|
71
84
|
export {
|
|
72
85
|
Checkbox as C
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox.js","sources":["../../src/checkbox/checkbox.ts"],"sourcesContent":["import AeicoField, { type FieldAction } from '../aeico-field';\nimport type { InferProps, Props } from 'aeico';\nimport { html } from 'aeico';\nimport styleVariables from '../styles/variables.css?inline';\nimport sizeCSS from '../styles/size.css?inline';\nimport colorCSS from '../styles/color.css?inline';\nimport styles from '../styles/components/checkbox.css?inline';\nimport { CheckboxVariant } from './defines';\n\nclass Checkbox extends AeicoField<boolean> {\n protected fieldElement: HTMLInputElement | null = null;\n\n static tagName = 'checkbox';\n\n static props: Props = {\n checked: { type: Boolean },\n defaultChecked: { type: Boolean },\n variant: { type: String },\n };\n\n declare checked?: boolean;\n declare defaultChecked?: boolean;\n declare variant?: CheckboxVariant;\n\n protected static styles = [styleVariables
|
|
1
|
+
{"version":3,"file":"checkbox.js","sources":["../../src/checkbox/checkbox.ts"],"sourcesContent":["import AeicoField, { type FieldAction } from '../aeico-field';\nimport type { InferProps, Props } from 'aeico';\nimport { html } from 'aeico';\nimport styleVariables from '../styles/variables.css?inline';\nimport sizeCSS from '../styles/size.css?inline';\nimport colorCSS from '../styles/color.css?inline';\nimport fieldLabelCSS from '../styles/components/field-label.css?inline';\nimport actionButtonCSS from '../styles/components/action-button.css?inline';\nimport styles from '../styles/components/checkbox.css?inline';\nimport { CheckboxVariant } from './defines';\n\nclass Checkbox extends AeicoField<boolean> {\n protected fieldElement: HTMLInputElement | null = null;\n\n static tagName = 'checkbox';\n\n static props: Props = {\n checked: { type: Boolean },\n defaultChecked: { type: Boolean },\n variant: { type: String },\n };\n\n declare checked?: boolean;\n declare defaultChecked?: boolean;\n declare variant?: CheckboxVariant;\n\n protected static styles = [\n styleVariables,\n sizeCSS,\n colorCSS,\n fieldLabelCSS,\n actionButtonCSS,\n styles,\n ];\n\n protected getValue(): boolean {\n return this.fieldElement?.checked ?? false;\n }\n\n protected writeValue(checked: boolean): void {\n if (this.fieldElement) {\n this.fieldElement.checked = Boolean(checked);\n }\n }\n\n protected getEventPayload(checked: boolean, oldChecked: boolean, action: FieldAction) {\n return { checked, oldChecked, action };\n }\n\n protected setValue(checked: boolean, options?: { silent?: boolean; action?: FieldAction }): void {\n const oldChecked = this.getValue();\n this.checked = checked;\n this.writeValue(checked);\n if (options?.silent === false) {\n this.emit('change', {\n detail: this.getEventPayload(checked, oldChecked, options.action || 'change'),\n });\n }\n }\n\n public reset(checked?: boolean, options?: { silent?: boolean }): void {\n this.setValue(checked !== undefined ? checked : (this.defaultChecked ?? false), {\n ...options,\n action: 'reset',\n });\n }\n\n public clear(options?: { silent?: boolean }): void {\n this.setValue(false, { ...options, action: 'clear' });\n }\n\n render() {\n return html(({ div, input }) => {\n const id = this.getFieldId();\n this.renderLabel(id);\n div({ className: 'checkbox-container field-body', variant: this.variant }, () => {\n div({ className: 'checkbox-wrapper' }, () => {\n this.fieldElement = input({\n id,\n type: 'checkbox',\n className: 'field-input',\n checked: Boolean(this.checked),\n disabled: Boolean(this.disabled),\n required: Boolean(this.required),\n '@change': this.boundOnChange,\n });\n });\n this.renderActionButtons();\n });\n this.renderHelperText();\n this.renderError();\n });\n }\n}\n\nCheckbox.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-checkbox': Checkbox;\n }\n}\n\nexport default Checkbox;\nexport type CheckboxProps = InferProps<typeof Checkbox>;\n"],"names":["styleVariables"],"mappings":";;;;;;;;;AAWA,MAAM,iBAAiB,WAAoB;AAAA,EAA3C;AAAA;AACY,wCAAwC;AAAA;AAAA,EAuBxC,WAAoB;;AAC5B,aAAO,UAAK,iBAAL,mBAAmB,YAAW;AAAA,EACvC;AAAA,EAEU,WAAW,SAAwB;AAC3C,QAAI,KAAK,cAAc;AACrB,WAAK,aAAa,UAAU,QAAQ,OAAO;AAAA,IAC7C;AAAA,EACF;AAAA,EAEU,gBAAgB,SAAkB,YAAqB,QAAqB;AACpF,WAAO,EAAE,SAAS,YAAY,OAAA;AAAA,EAChC;AAAA,EAEU,SAAS,SAAkB,SAA4D;AAC/F,UAAM,aAAa,KAAK,SAAA;AACxB,SAAK,UAAU;AACf,SAAK,WAAW,OAAO;AACvB,SAAI,mCAAS,YAAW,OAAO;AAC7B,WAAK,KAAK,UAAU;AAAA,QAClB,QAAQ,KAAK,gBAAgB,SAAS,YAAY,QAAQ,UAAU,QAAQ;AAAA,MAAA,CAC7E;AAAA,IACH;AAAA,EACF;AAAA,EAEO,MAAM,SAAmB,SAAsC;AACpE,SAAK,SAAS,YAAY,SAAY,UAAW,KAAK,kBAAkB,OAAQ;AAAA,MAC9E,GAAG;AAAA,MACH,QAAQ;AAAA,IAAA,CACT;AAAA,EACH;AAAA,EAEO,MAAM,SAAsC;AACjD,SAAK,SAAS,OAAO,EAAE,GAAG,SAAS,QAAQ,SAAS;AAAA,EACtD;AAAA,EAEA,SAAS;AACP,WAAO,KAAK,CAAC,EAAE,KAAK,YAAY;AAC9B,YAAM,KAAK,KAAK,WAAA;AAChB,WAAK,YAAY,EAAE;AACnB,UAAI,EAAE,WAAW,iCAAiC,SAAS,KAAK,QAAA,GAAW,MAAM;AAC/E,YAAI,EAAE,WAAW,mBAAA,GAAsB,MAAM;AAC3C,eAAK,eAAe,MAAM;AAAA,YACxB;AAAA,YACA,MAAM;AAAA,YACN,WAAW;AAAA,YACX,SAAS,QAAQ,KAAK,OAAO;AAAA,YAC7B,UAAU,QAAQ,KAAK,QAAQ;AAAA,YAC/B,UAAU,QAAQ,KAAK,QAAQ;AAAA,YAC/B,WAAW,KAAK;AAAA,UAAA,CACjB;AAAA,QACH,CAAC;AACD,aAAK,oBAAA;AAAA,MACP,CAAC;AACD,WAAK,iBAAA;AACL,WAAK,YAAA;AAAA,IACP,CAAC;AAAA,EACH;AACF;AA/EE,cAHI,UAGG,WAAU;AAEjB,cALI,UAKG,SAAe;AAAA,EACpB,SAAS,EAAE,MAAM,QAAA;AAAA,EACjB,gBAAgB,EAAE,MAAM,QAAA;AAAA,EACxB,SAAS,EAAE,MAAM,OAAA;AAAO;AAO1B,cAfI,UAea,UAAS;AAAA,EACxBA;AAAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AA+DJ,SAAS,SAAA;"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const variables = require("./variables.cjs");
|
|
3
|
+
const size = require("./size.cjs");
|
|
4
|
+
const color = require("./color.cjs");
|
|
5
|
+
const aeicoComponent = require("./aeico-component.cjs");
|
|
6
|
+
const aeico = require("aeico");
|
|
7
|
+
const copyButtonStyle = ':host {\n display: inline-block;\n --btn-solid-bg: var(--color-solid);\n --btn-solid-bg-hover: var(--color-solid-hover);\n --btn-solid-bg-active: var(--color-solid-active);\n --btn-solid-color: var(--color-on-solid);\n --btn-solid-color-hover: var(--color-on-solid-hover);\n --btn-border: var(--color-border);\n --btn-border-hover: var(--color-border-hover);\n --btn-accent: var(--color-accent);\n --btn-accent-hover: var(--color-accent-hover);\n --btn-subtle-bg: var(--color-subtle);\n --btn-subtle-bg-hover: var(--color-subtle-hover);\n}\n\nbutton {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n font-family: inherit;\n font-weight: 400;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n user-select: none;\n cursor: pointer;\n transition: all 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);\n outline: none;\n position: relative;\n padding: 0.429em 0.571em;\n font-size: 1em;\n line-height: 1.5;\n border-radius: 4px;\n height: 2.286em;\n width: 2.286em;\n min-width: unset;\n\n background: var(--btn-solid-bg);\n border: 1px solid var(--btn-solid-bg);\n color: var(--btn-solid-color);\n}\n\nbutton:focus { outline: none; }\nbutton:active { transform: translateY(1px); }\n\nbutton:hover:not(:disabled) {\n background: var(--btn-solid-bg-hover);\n border-color: var(--btn-border-hover);\n color: var(--btn-solid-color-hover, var(--btn-solid-color));\n}\n\nbutton:active:not(:disabled) { background: var(--btn-solid-bg-active); }\n\nbutton:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* Hide the fallback-text slot */\nslot { display: none; }\n\n/* Icon visibility */\n.icon-copy,\n.icon-check {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: opacity 0.15s ease, transform 0.15s ease;\n}\n\n.icon-copy { opacity: 1; transform: scale(1); }\n.icon-check { opacity: 0; transform: scale(0.6); }\n\n:host([copied]) .icon-copy { opacity: 0; transform: scale(0.6); }\n:host([copied]) .icon-check { opacity: 1; transform: scale(1); }\n\n/* Variants */\n:host([variant="outlined"]) button {\n background: transparent;\n border-color: var(--btn-border);\n color: var(--btn-accent);\n}\n:host([variant="outlined"]) button:hover:not(:disabled) {\n background: var(--btn-subtle-bg);\n border-color: var(--btn-border-hover);\n color: var(--btn-accent-hover);\n}\n\n:host([variant="faint"]) button {\n background: var(--btn-subtle-bg);\n border-color: transparent;\n color: var(--btn-accent);\n}\n:host([variant="faint"]) button:hover:not(:disabled) {\n background: var(--btn-subtle-bg-hover);\n color: var(--btn-accent-hover);\n}\n\n:host([variant="subtle"]) button {\n background: transparent;\n border-color: transparent;\n color: var(--btn-accent);\n}\n:host([variant="subtle"]) button:hover:not(:disabled) {\n background: var(--btn-subtle-bg);\n color: var(--btn-accent-hover);\n}\n\n:host([variant="text"]) button {\n background: transparent;\n border-color: transparent;\n color: var(--btn-accent);\n}\n:host([variant="text"]) button:hover:not(:disabled) {\n color: var(--btn-accent-hover);\n}\n';
|
|
8
|
+
var __create = Object.create;
|
|
9
|
+
var __defProp = Object.defineProperty;
|
|
10
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
11
|
+
var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
|
|
12
|
+
var __typeError = (msg) => {
|
|
13
|
+
throw TypeError(msg);
|
|
14
|
+
};
|
|
15
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
16
|
+
var __decoratorStart = (base) => [, , , __create((base == null ? void 0 : base[__knownSymbol("metadata")]) ?? null)];
|
|
17
|
+
var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
|
|
18
|
+
var __expectFn = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn;
|
|
19
|
+
var __decoratorContext = (kind, name, done, metadata, fns) => ({ kind: __decoratorStrings[kind], name, metadata, addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null)) });
|
|
20
|
+
var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]);
|
|
21
|
+
var __runInitializers = (array, flags, self, value) => {
|
|
22
|
+
for (var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++) flags & 1 ? fns[i].call(self) : value = fns[i].call(self, value);
|
|
23
|
+
return value;
|
|
24
|
+
};
|
|
25
|
+
var __decorateElement = (array, flags, name, decorators, target, extra) => {
|
|
26
|
+
var fn, it, done, ctx, access, k = flags & 7, s = false, p = false;
|
|
27
|
+
var j = array.length + 1, key = __decoratorStrings[k + 5];
|
|
28
|
+
var initializers = array[j - 1] = [], extraInitializers = array[j] || (array[j] = []);
|
|
29
|
+
var desc = (target = target.prototype, __getOwnPropDesc({ get [name]() {
|
|
30
|
+
return __privateGet(this, extra);
|
|
31
|
+
}, set [name](x) {
|
|
32
|
+
return __privateSet(this, extra, x);
|
|
33
|
+
} }, name));
|
|
34
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
35
|
+
ctx = __decoratorContext(k, name, done = {}, array[3], extraInitializers);
|
|
36
|
+
{
|
|
37
|
+
ctx.static = s, ctx.private = p, access = ctx.access = { has: (x) => name in x };
|
|
38
|
+
access.get = (x) => x[name];
|
|
39
|
+
access.set = (x, y) => x[name] = y;
|
|
40
|
+
}
|
|
41
|
+
it = (0, decorators[i])({ get: desc.get, set: desc.set }, ctx), done._ = 1;
|
|
42
|
+
if (it === void 0) __expectFn(it) && (desc[key] = it);
|
|
43
|
+
else if (typeof it !== "object" || it === null) __typeError("Object expected");
|
|
44
|
+
else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn);
|
|
45
|
+
}
|
|
46
|
+
return desc && __defProp(target, name, desc), target;
|
|
47
|
+
};
|
|
48
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
49
|
+
var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
|
|
50
|
+
var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), member.get(obj));
|
|
51
|
+
var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
52
|
+
var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), member.set(obj, value), value);
|
|
53
|
+
var _tooltipPlacement_dec, _tooltipCopied_dec, _tooltip_dec, _duration_dec, _disabled_dec, _size_dec, _variant_dec, _color_dec, _text_dec, _a, _init, _text, _color, _variant, _size, _disabled, _duration, _tooltip, _tooltipCopied, _tooltipPlacement;
|
|
54
|
+
class CopyButton extends (_a = aeicoComponent.AeicoComponent, _text_dec = [aeico.prop({ type: String })], _color_dec = [aeico.prop({ type: String })], _variant_dec = [aeico.prop({ type: String })], _size_dec = [aeico.prop({ type: String })], _disabled_dec = [aeico.prop({ type: Boolean })], _duration_dec = [aeico.prop({ type: Number })], _tooltip_dec = [aeico.prop({ type: String })], _tooltipCopied_dec = [aeico.prop({ type: String })], _tooltipPlacement_dec = [aeico.prop({ type: String })], _a) {
|
|
55
|
+
constructor() {
|
|
56
|
+
super(...arguments);
|
|
57
|
+
__privateAdd(this, _text, __runInitializers(_init, 8, this)), __runInitializers(_init, 11, this);
|
|
58
|
+
__privateAdd(this, _color, __runInitializers(_init, 12, this)), __runInitializers(_init, 15, this);
|
|
59
|
+
__privateAdd(this, _variant, __runInitializers(_init, 16, this)), __runInitializers(_init, 19, this);
|
|
60
|
+
__privateAdd(this, _size, __runInitializers(_init, 20, this)), __runInitializers(_init, 23, this);
|
|
61
|
+
__privateAdd(this, _disabled, __runInitializers(_init, 24, this)), __runInitializers(_init, 27, this);
|
|
62
|
+
__privateAdd(this, _duration, __runInitializers(_init, 28, this)), __runInitializers(_init, 31, this);
|
|
63
|
+
__privateAdd(this, _tooltip, __runInitializers(_init, 32, this, "Copy")), __runInitializers(_init, 35, this);
|
|
64
|
+
__privateAdd(this, _tooltipCopied, __runInitializers(_init, 36, this, "Copied!")), __runInitializers(_init, 39, this);
|
|
65
|
+
__privateAdd(this, _tooltipPlacement, __runInitializers(_init, 40, this, "top")), __runInitializers(_init, 43, this);
|
|
66
|
+
__publicField(this, "_slotElement", null);
|
|
67
|
+
__publicField(this, "_tooltipEl", null);
|
|
68
|
+
__publicField(this, "_resetTimer", null);
|
|
69
|
+
__publicField(this, "_handleClick", () => {
|
|
70
|
+
if (this.disabled) return;
|
|
71
|
+
const textToCopy = this._getTextToCopy();
|
|
72
|
+
void navigator.clipboard.writeText(textToCopy).then(() => {
|
|
73
|
+
this.setAttribute("copied", "");
|
|
74
|
+
if (this._tooltipEl) {
|
|
75
|
+
this._tooltipEl.content = this.tooltipCopied;
|
|
76
|
+
this._tooltipEl.open = true;
|
|
77
|
+
}
|
|
78
|
+
if (this._resetTimer !== null) {
|
|
79
|
+
clearTimeout(this._resetTimer);
|
|
80
|
+
}
|
|
81
|
+
const duration = this.duration ?? 2e3;
|
|
82
|
+
this._resetTimer = setTimeout(() => {
|
|
83
|
+
this.removeAttribute("copied");
|
|
84
|
+
if (this._tooltipEl) {
|
|
85
|
+
this._tooltipEl.content = this.tooltip;
|
|
86
|
+
this._tooltipEl.open = false;
|
|
87
|
+
}
|
|
88
|
+
this._resetTimer = null;
|
|
89
|
+
}, duration);
|
|
90
|
+
this.dispatchEvent(
|
|
91
|
+
new CustomEvent("copy", {
|
|
92
|
+
bubbles: true,
|
|
93
|
+
composed: true,
|
|
94
|
+
detail: { text: textToCopy }
|
|
95
|
+
})
|
|
96
|
+
);
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
_getTextToCopy() {
|
|
101
|
+
var _a2;
|
|
102
|
+
if (this.text != null) return this.text;
|
|
103
|
+
const nodes = ((_a2 = this._slotElement) == null ? void 0 : _a2.assignedNodes({ flatten: true })) ?? [];
|
|
104
|
+
return nodes.filter((n) => n.nodeType === Node.TEXT_NODE).map((n) => n.textContent ?? "").join("").trim();
|
|
105
|
+
}
|
|
106
|
+
onUnmounted() {
|
|
107
|
+
if (this._resetTimer !== null) {
|
|
108
|
+
clearTimeout(this._resetTimer);
|
|
109
|
+
this._resetTimer = null;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
render() {
|
|
113
|
+
return aeico.html(({ aeTooltip, button, span, slot, aeIcon }) => {
|
|
114
|
+
this._tooltipEl = aeTooltip(
|
|
115
|
+
{
|
|
116
|
+
content: this.tooltip,
|
|
117
|
+
placement: this.tooltipPlacement,
|
|
118
|
+
disabled: this.disabled
|
|
119
|
+
},
|
|
120
|
+
() => {
|
|
121
|
+
button(
|
|
122
|
+
{
|
|
123
|
+
type: "button",
|
|
124
|
+
disabled: this.disabled,
|
|
125
|
+
part: "button",
|
|
126
|
+
"aria-label": this.tooltip,
|
|
127
|
+
"aria-disabled": this.disabled,
|
|
128
|
+
"@click": this._handleClick
|
|
129
|
+
},
|
|
130
|
+
() => {
|
|
131
|
+
span({ className: "icon-copy" }, () => {
|
|
132
|
+
aeIcon({ name: "copy" });
|
|
133
|
+
});
|
|
134
|
+
span({ className: "icon-check" }, () => {
|
|
135
|
+
aeIcon({ name: "check" });
|
|
136
|
+
});
|
|
137
|
+
this._slotElement = slot();
|
|
138
|
+
}
|
|
139
|
+
);
|
|
140
|
+
}
|
|
141
|
+
);
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
_init = __decoratorStart(_a);
|
|
146
|
+
_text = /* @__PURE__ */ new WeakMap();
|
|
147
|
+
_color = /* @__PURE__ */ new WeakMap();
|
|
148
|
+
_variant = /* @__PURE__ */ new WeakMap();
|
|
149
|
+
_size = /* @__PURE__ */ new WeakMap();
|
|
150
|
+
_disabled = /* @__PURE__ */ new WeakMap();
|
|
151
|
+
_duration = /* @__PURE__ */ new WeakMap();
|
|
152
|
+
_tooltip = /* @__PURE__ */ new WeakMap();
|
|
153
|
+
_tooltipCopied = /* @__PURE__ */ new WeakMap();
|
|
154
|
+
_tooltipPlacement = /* @__PURE__ */ new WeakMap();
|
|
155
|
+
__decorateElement(_init, 4, "text", _text_dec, CopyButton, _text);
|
|
156
|
+
__decorateElement(_init, 4, "color", _color_dec, CopyButton, _color);
|
|
157
|
+
__decorateElement(_init, 4, "variant", _variant_dec, CopyButton, _variant);
|
|
158
|
+
__decorateElement(_init, 4, "size", _size_dec, CopyButton, _size);
|
|
159
|
+
__decorateElement(_init, 4, "disabled", _disabled_dec, CopyButton, _disabled);
|
|
160
|
+
__decorateElement(_init, 4, "duration", _duration_dec, CopyButton, _duration);
|
|
161
|
+
__decorateElement(_init, 4, "tooltip", _tooltip_dec, CopyButton, _tooltip);
|
|
162
|
+
__decorateElement(_init, 4, "tooltipCopied", _tooltipCopied_dec, CopyButton, _tooltipCopied);
|
|
163
|
+
__decorateElement(_init, 4, "tooltipPlacement", _tooltipPlacement_dec, CopyButton, _tooltipPlacement);
|
|
164
|
+
__decoratorMetadata(_init, CopyButton);
|
|
165
|
+
__publicField(CopyButton, "styles", [variables.variables, size.sizeCSS, color.colorCSS, copyButtonStyle]);
|
|
166
|
+
CopyButton.register();
|
|
167
|
+
exports.CopyButton = CopyButton;
|
|
168
|
+
//# sourceMappingURL=copy-button.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copy-button.cjs","sources":["../../src/copy-button/copy-button.ts"],"sourcesContent":["import type { InferProps } from 'aeico';\nimport styleVariables from '../styles/variables.css?inline';\nimport sizeCSS from '../styles/size.css?inline';\nimport colorCSS from '../styles/color.css?inline';\nimport copyButtonStyle from '../styles/components/copy-button.css?inline';\nimport AeicoComponent from '../aeico-component';\nimport { html } from 'aeico';\nimport { prop } from 'aeico';\n// Ensure ae-icon and ae-tooltip are registered\nimport '../icon/icon';\nimport '../tooltip/tooltip';\nimport type Tooltip from '../tooltip/tooltip';\nimport type { TooltipPlacement } from '../tooltip/defines';\nimport type { CopyButtonColor, CopyButtonSize, CopyButtonVariant } from './defines';\n\nclass CopyButton extends AeicoComponent {\n protected static styles = [styleVariables, sizeCSS, colorCSS, copyButtonStyle];\n\n @prop({ type: String })\n accessor text: string | undefined;\n\n @prop({ type: String })\n accessor color: CopyButtonColor | undefined;\n\n @prop({ type: String })\n accessor variant: CopyButtonVariant | undefined;\n\n @prop({ type: String })\n accessor size: CopyButtonSize | undefined;\n\n @prop({ type: Boolean })\n accessor disabled: boolean | undefined;\n\n @prop({ type: Number })\n accessor duration: number | undefined;\n\n @prop({ type: String })\n accessor tooltip: string = 'Copy';\n\n @prop({ type: String })\n accessor tooltipCopied: string = 'Copied!';\n\n @prop({ type: String })\n accessor tooltipPlacement: TooltipPlacement = 'top';\n\n private _slotElement: HTMLSlotElement | null = null;\n private _tooltipEl: Tooltip | null = null;\n private _resetTimer: ReturnType<typeof setTimeout> | null = null;\n\n private _getTextToCopy(): string {\n if (this.text != null) return this.text;\n const nodes = this._slotElement?.assignedNodes({ flatten: true }) ?? [];\n return nodes\n .filter((n) => n.nodeType === Node.TEXT_NODE)\n .map((n) => n.textContent ?? '')\n .join('')\n .trim();\n }\n\n private _handleClick = () => {\n if (this.disabled) return;\n\n const textToCopy = this._getTextToCopy();\n\n void navigator.clipboard.writeText(textToCopy).then(() => {\n this.setAttribute('copied', '');\n\n if (this._tooltipEl) {\n this._tooltipEl.content = this.tooltipCopied;\n this._tooltipEl.open = true;\n }\n\n if (this._resetTimer !== null) {\n clearTimeout(this._resetTimer);\n }\n const duration = this.duration ?? 2000;\n this._resetTimer = setTimeout(() => {\n this.removeAttribute('copied');\n if (this._tooltipEl) {\n this._tooltipEl.content = this.tooltip;\n this._tooltipEl.open = false;\n }\n this._resetTimer = null;\n }, duration);\n\n this.dispatchEvent(\n new CustomEvent('copy', {\n bubbles: true,\n composed: true,\n detail: { text: textToCopy },\n }),\n );\n });\n };\n\n protected onUnmounted() {\n if (this._resetTimer !== null) {\n clearTimeout(this._resetTimer);\n this._resetTimer = null;\n }\n }\n\n protected render() {\n return html(({ aeTooltip, button, span, slot, aeIcon }) => {\n this._tooltipEl = aeTooltip(\n {\n content: this.tooltip,\n placement: this.tooltipPlacement,\n disabled: this.disabled,\n },\n () => {\n button(\n {\n type: 'button',\n disabled: this.disabled,\n part: 'button',\n 'aria-label': this.tooltip,\n 'aria-disabled': this.disabled,\n '@click': this._handleClick,\n },\n () => {\n span({ className: 'icon-copy' }, () => {\n aeIcon({ name: 'copy' });\n });\n span({ className: 'icon-check' }, () => {\n aeIcon({ name: 'check' });\n });\n this._slotElement = slot();\n },\n );\n },\n );\n });\n }\n}\n\nCopyButton.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-copy-button': CopyButton;\n }\n}\n\nexport default CopyButton;\nexport type CopyButtonProps = InferProps<typeof CopyButton>;\n"],"names":["AeicoComponent","prop","_a","html","styleVariables","sizeCSS","colorCSS"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAA,uBAAA,oBAAA,cAAA,eAAA,eAAA,WAAA,cAAA,YAAA,WAAA,IAAA,OAAA,OAAA,QAAA,UAAA,OAAA,WAAA,WAAA,UAAA,gBAAA;AAeA,MAAM,oBAAmB,KAAAA,eAAAA,gBAGvB,YAAA,CAACC,MAAAA,KAAK,EAAE,MAAM,OAAA,CAAQ,CAAA,GAGtB,aAAA,CAACA,MAAAA,KAAK,EAAE,MAAM,OAAA,CAAQ,CAAA,GAGtB,eAAA,CAACA,MAAAA,KAAK,EAAE,MAAM,OAAA,CAAQ,CAAA,GAGtB,YAAA,CAACA,MAAAA,KAAK,EAAE,MAAM,OAAA,CAAQ,IAGtB,gBAAA,CAACA,MAAAA,KAAK,EAAE,MAAM,QAAA,CAAS,CAAA,GAGvB,gBAAA,CAACA,MAAAA,KAAK,EAAE,MAAM,OAAA,CAAQ,CAAA,GAGtB,eAAA,CAACA,MAAAA,KAAK,EAAE,MAAM,OAAA,CAAQ,CAAA,GAGtB,qBAAA,CAACA,MAAAA,KAAK,EAAE,MAAM,QAAQ,CAAA,GAGtB,wBAAA,CAACA,MAAAA,KAAK,EAAE,MAAM,OAAA,CAAQ,IA3BC,IAAe;AAAA,EAAxC,cAAA;AAAA,UAAA,GAAA,SAAA;AAIE,iBAAA,MAAS,OAAT,kBAAA,OAAA,GAAA,IAAA,CAAA,GAAA,kBAAA,OAAA,IAAA,IAAA;AAGA,iBAAA,MAAS,QAAT,kBAAA,OAAA,IAAA,IAAA,CAAA,GAAA,kBAAA,OAAA,IAAA,IAAA;AAGA,iBAAA,MAAS,UAAT,kBAAA,OAAA,IAAA,IAAA,CAAA,GAAA,kBAAA,OAAA,IAAA,IAAA;AAGA,iBAAA,MAAS,OAAT,kBAAA,OAAA,IAAA,IAAA,CAAA,GAAA,kBAAA,OAAA,IAAA,IAAA;AAGA,iBAAA,MAAS,WAAT,kBAAA,OAAA,IAAA,IAAA,CAAA,GAAA,kBAAA,OAAA,IAAA,IAAA;AAGA,iBAAA,MAAS,WAAT,kBAAA,OAAA,IAAA,IAAA,CAAA,GAAA,kBAAA,OAAA,IAAA,IAAA;AAGA,iBAAA,MAAS,UAAkB,kBAA3B,OAAA,IAAA,MAA2B,MAAA,CAAA,GAA3B,kBAAA,OAAA,IAAA,IAAA;AAGA,iBAAA,MAAS,gBAAwB,kBAAjC,OAAA,IAAA,MAAiC,SAAA,CAAA,GAAjC,kBAAA,OAAA,IAAA,IAAA;AAGA,iBAAA,MAAS,mBAAqC,kBAA9C,OAAA,IAAA,MAA8C,KAAA,CAAA,GAA9C,kBAAA,OAAA,IAAA,IAAA;AAEA,kBAAA,MAAQ,gBAAuC,IAAA;AAC/C,kBAAA,MAAQ,cAA6B,IAAA;AACrC,kBAAA,MAAQ,eAAoD,IAAA;AAY5D,kBAAA,MAAQ,gBAAe,MAAM;AAC3B,UAAI,KAAK,SAAU;AAEnB,YAAM,aAAa,KAAK,eAAA;AAExB,WAAK,UAAU,UAAU,UAAU,UAAU,EAAE,KAAK,MAAM;AACxD,aAAK,aAAa,UAAU,EAAE;AAE9B,YAAI,KAAK,YAAY;AACnB,eAAK,WAAW,UAAU,KAAK;AAC/B,eAAK,WAAW,OAAO;AAAA,QACzB;AAEA,YAAI,KAAK,gBAAgB,MAAM;AAC7B,uBAAa,KAAK,WAAW;AAAA,QAC/B;AACA,cAAM,WAAW,KAAK,YAAY;AAClC,aAAK,cAAc,WAAW,MAAM;AAClC,eAAK,gBAAgB,QAAQ;AAC7B,cAAI,KAAK,YAAY;AACnB,iBAAK,WAAW,UAAU,KAAK;AAC/B,iBAAK,WAAW,OAAO;AAAA,UACzB;AACA,eAAK,cAAc;AAAA,QACrB,GAAG,QAAQ;AAEX,aAAK;AAAA,UACH,IAAI,YAAY,QAAQ;AAAA,YACtB,SAAS;AAAA,YACT,UAAU;AAAA,YACV,QAAQ,EAAE,MAAM,WAAA;AAAA,UAAW,CAC5B;AAAA,QAAA;AAAA,MAEL,CAAC;AAAA,IACH,CAAA;AAAA,EAAA;AAAA,EA5CQ,iBAAyB;;AAC/B,QAAI,KAAK,QAAQ,KAAM,QAAO,KAAK;AACnC,UAAM,UAAQC,MAAA,KAAK,iBAAL,gBAAAA,IAAmB,cAAc,EAAE,SAAS,KAAA,OAAW,CAAA;AACrE,WAAO,MACJ,OAAO,CAAC,MAAM,EAAE,aAAa,KAAK,SAAS,EAC3C,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,EAC9B,KAAK,EAAE,EACP,KAAA;AAAA,EACL;AAAA,EAsCU,cAAc;AACtB,QAAI,KAAK,gBAAgB,MAAM;AAC7B,mBAAa,KAAK,WAAW;AAC7B,WAAK,cAAc;AAAA,IACrB;AAAA,EACF;AAAA,EAEU,SAAS;AACjB,WAAOC,MAAAA,KAAK,CAAC,EAAE,WAAW,QAAQ,MAAM,MAAM,aAAa;AACzD,WAAK,aAAa;AAAA,QAChB;AAAA,UACE,SAAS,KAAK;AAAA,UACd,WAAW,KAAK;AAAA,UAChB,UAAU,KAAK;AAAA,QAAA;AAAA,QAEjB,MAAM;AACJ;AAAA,YACE;AAAA,cACE,MAAM;AAAA,cACN,UAAU,KAAK;AAAA,cACf,MAAM;AAAA,cACN,cAAc,KAAK;AAAA,cACnB,iBAAiB,KAAK;AAAA,cACtB,UAAU,KAAK;AAAA,YAAA;AAAA,YAEjB,MAAM;AACJ,mBAAK,EAAE,WAAW,YAAA,GAAe,MAAM;AACrC,uBAAO,EAAE,MAAM,QAAQ;AAAA,cACzB,CAAC;AACD,mBAAK,EAAE,WAAW,aAAA,GAAgB,MAAM;AACtC,uBAAO,EAAE,MAAM,SAAS;AAAA,cAC1B,CAAC;AACD,mBAAK,eAAe,KAAA;AAAA,YACtB;AAAA,UAAA;AAAA,QAEJ;AAAA,MAAA;AAAA,IAEJ,CAAC;AAAA,EACH;AACF;AAvHA,QAAA,iBAAA,EAAA;AAIW,QAAA,oBAAA,QAAA;AAGA,SAAA,oBAAA,QAAA;AAGA,WAAA,oBAAA,QAAA;AAGA,QAAA,oBAAA,QAAA;AAGA,YAAA,oBAAA,QAAA;AAGA,YAAA,oBAAA,QAAA;AAGA,WAAA,oBAAA,QAAA;AAGA,iBAAA,oBAAA,QAAA;AAGA,oBAAA,oBAAA,QAAA;AAxBT,kBAAA,OAAA,GAAS,QADT,WAHI,YAIK,KAAA;AAGT,kBAAA,OAAA,GAAS,SADT,YANI,YAOK,MAAA;AAGT,kBAAA,OAAA,GAAS,WADT,cATI,YAUK,QAAA;AAGT,kBAAA,OAAA,GAAS,QADT,WAZI,YAaK,KAAA;AAGT,kBAAA,OAAA,GAAS,YADT,eAfI,YAgBK,SAAA;AAGT,kBAAA,OAAA,GAAS,YADT,eAlBI,YAmBK,SAAA;AAGT,kBAAA,OAAA,GAAS,WADT,cArBI,YAsBK,QAAA;AAGT,kBAAA,OAAA,GAAS,iBADT,oBAxBI,YAyBK,cAAA;AAGT,kBAAA,OAAA,GAAS,oBADT,uBA3BI,YA4BK,iBAAA;AA5BX,oBAAA,OAAM,UAAA;AACJ,cADI,YACa,UAAS,CAACC,UAAAA,WAAgBC,KAAAA,SAASC,MAAAA,UAAU,eAAe,CAAA;AAwH/E,WAAW,SAAA;;"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { v as variables } from "./variables.js";
|
|
2
|
+
import { s as sizeCSS } from "./size.js";
|
|
3
|
+
import { c as colorCSS } from "./color.js";
|
|
4
|
+
import { A as AeicoComponent } from "./aeico-component.js";
|
|
5
|
+
import { prop, html } from "aeico";
|
|
6
|
+
const copyButtonStyle = ':host {\n display: inline-block;\n --btn-solid-bg: var(--color-solid);\n --btn-solid-bg-hover: var(--color-solid-hover);\n --btn-solid-bg-active: var(--color-solid-active);\n --btn-solid-color: var(--color-on-solid);\n --btn-solid-color-hover: var(--color-on-solid-hover);\n --btn-border: var(--color-border);\n --btn-border-hover: var(--color-border-hover);\n --btn-accent: var(--color-accent);\n --btn-accent-hover: var(--color-accent-hover);\n --btn-subtle-bg: var(--color-subtle);\n --btn-subtle-bg-hover: var(--color-subtle-hover);\n}\n\nbutton {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n font-family: inherit;\n font-weight: 400;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n user-select: none;\n cursor: pointer;\n transition: all 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);\n outline: none;\n position: relative;\n padding: 0.429em 0.571em;\n font-size: 1em;\n line-height: 1.5;\n border-radius: 4px;\n height: 2.286em;\n width: 2.286em;\n min-width: unset;\n\n background: var(--btn-solid-bg);\n border: 1px solid var(--btn-solid-bg);\n color: var(--btn-solid-color);\n}\n\nbutton:focus { outline: none; }\nbutton:active { transform: translateY(1px); }\n\nbutton:hover:not(:disabled) {\n background: var(--btn-solid-bg-hover);\n border-color: var(--btn-border-hover);\n color: var(--btn-solid-color-hover, var(--btn-solid-color));\n}\n\nbutton:active:not(:disabled) { background: var(--btn-solid-bg-active); }\n\nbutton:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* Hide the fallback-text slot */\nslot { display: none; }\n\n/* Icon visibility */\n.icon-copy,\n.icon-check {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: opacity 0.15s ease, transform 0.15s ease;\n}\n\n.icon-copy { opacity: 1; transform: scale(1); }\n.icon-check { opacity: 0; transform: scale(0.6); }\n\n:host([copied]) .icon-copy { opacity: 0; transform: scale(0.6); }\n:host([copied]) .icon-check { opacity: 1; transform: scale(1); }\n\n/* Variants */\n:host([variant="outlined"]) button {\n background: transparent;\n border-color: var(--btn-border);\n color: var(--btn-accent);\n}\n:host([variant="outlined"]) button:hover:not(:disabled) {\n background: var(--btn-subtle-bg);\n border-color: var(--btn-border-hover);\n color: var(--btn-accent-hover);\n}\n\n:host([variant="faint"]) button {\n background: var(--btn-subtle-bg);\n border-color: transparent;\n color: var(--btn-accent);\n}\n:host([variant="faint"]) button:hover:not(:disabled) {\n background: var(--btn-subtle-bg-hover);\n color: var(--btn-accent-hover);\n}\n\n:host([variant="subtle"]) button {\n background: transparent;\n border-color: transparent;\n color: var(--btn-accent);\n}\n:host([variant="subtle"]) button:hover:not(:disabled) {\n background: var(--btn-subtle-bg);\n color: var(--btn-accent-hover);\n}\n\n:host([variant="text"]) button {\n background: transparent;\n border-color: transparent;\n color: var(--btn-accent);\n}\n:host([variant="text"]) button:hover:not(:disabled) {\n color: var(--btn-accent-hover);\n}\n';
|
|
7
|
+
var __create = Object.create;
|
|
8
|
+
var __defProp = Object.defineProperty;
|
|
9
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
10
|
+
var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
|
|
11
|
+
var __typeError = (msg) => {
|
|
12
|
+
throw TypeError(msg);
|
|
13
|
+
};
|
|
14
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
15
|
+
var __decoratorStart = (base) => [, , , __create((base == null ? void 0 : base[__knownSymbol("metadata")]) ?? null)];
|
|
16
|
+
var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
|
|
17
|
+
var __expectFn = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn;
|
|
18
|
+
var __decoratorContext = (kind, name, done, metadata, fns) => ({ kind: __decoratorStrings[kind], name, metadata, addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null)) });
|
|
19
|
+
var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]);
|
|
20
|
+
var __runInitializers = (array, flags, self, value) => {
|
|
21
|
+
for (var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++) flags & 1 ? fns[i].call(self) : value = fns[i].call(self, value);
|
|
22
|
+
return value;
|
|
23
|
+
};
|
|
24
|
+
var __decorateElement = (array, flags, name, decorators, target, extra) => {
|
|
25
|
+
var fn, it, done, ctx, access, k = flags & 7, s = false, p = false;
|
|
26
|
+
var j = array.length + 1, key = __decoratorStrings[k + 5];
|
|
27
|
+
var initializers = array[j - 1] = [], extraInitializers = array[j] || (array[j] = []);
|
|
28
|
+
var desc = (target = target.prototype, __getOwnPropDesc({ get [name]() {
|
|
29
|
+
return __privateGet(this, extra);
|
|
30
|
+
}, set [name](x) {
|
|
31
|
+
return __privateSet(this, extra, x);
|
|
32
|
+
} }, name));
|
|
33
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
34
|
+
ctx = __decoratorContext(k, name, done = {}, array[3], extraInitializers);
|
|
35
|
+
{
|
|
36
|
+
ctx.static = s, ctx.private = p, access = ctx.access = { has: (x) => name in x };
|
|
37
|
+
access.get = (x) => x[name];
|
|
38
|
+
access.set = (x, y) => x[name] = y;
|
|
39
|
+
}
|
|
40
|
+
it = (0, decorators[i])({ get: desc.get, set: desc.set }, ctx), done._ = 1;
|
|
41
|
+
if (it === void 0) __expectFn(it) && (desc[key] = it);
|
|
42
|
+
else if (typeof it !== "object" || it === null) __typeError("Object expected");
|
|
43
|
+
else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn);
|
|
44
|
+
}
|
|
45
|
+
return desc && __defProp(target, name, desc), target;
|
|
46
|
+
};
|
|
47
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
48
|
+
var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
|
|
49
|
+
var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), member.get(obj));
|
|
50
|
+
var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
51
|
+
var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), member.set(obj, value), value);
|
|
52
|
+
var _tooltipPlacement_dec, _tooltipCopied_dec, _tooltip_dec, _duration_dec, _disabled_dec, _size_dec, _variant_dec, _color_dec, _text_dec, _a, _init, _text, _color, _variant, _size, _disabled, _duration, _tooltip, _tooltipCopied, _tooltipPlacement;
|
|
53
|
+
class CopyButton extends (_a = AeicoComponent, _text_dec = [prop({ type: String })], _color_dec = [prop({ type: String })], _variant_dec = [prop({ type: String })], _size_dec = [prop({ type: String })], _disabled_dec = [prop({ type: Boolean })], _duration_dec = [prop({ type: Number })], _tooltip_dec = [prop({ type: String })], _tooltipCopied_dec = [prop({ type: String })], _tooltipPlacement_dec = [prop({ type: String })], _a) {
|
|
54
|
+
constructor() {
|
|
55
|
+
super(...arguments);
|
|
56
|
+
__privateAdd(this, _text, __runInitializers(_init, 8, this)), __runInitializers(_init, 11, this);
|
|
57
|
+
__privateAdd(this, _color, __runInitializers(_init, 12, this)), __runInitializers(_init, 15, this);
|
|
58
|
+
__privateAdd(this, _variant, __runInitializers(_init, 16, this)), __runInitializers(_init, 19, this);
|
|
59
|
+
__privateAdd(this, _size, __runInitializers(_init, 20, this)), __runInitializers(_init, 23, this);
|
|
60
|
+
__privateAdd(this, _disabled, __runInitializers(_init, 24, this)), __runInitializers(_init, 27, this);
|
|
61
|
+
__privateAdd(this, _duration, __runInitializers(_init, 28, this)), __runInitializers(_init, 31, this);
|
|
62
|
+
__privateAdd(this, _tooltip, __runInitializers(_init, 32, this, "Copy")), __runInitializers(_init, 35, this);
|
|
63
|
+
__privateAdd(this, _tooltipCopied, __runInitializers(_init, 36, this, "Copied!")), __runInitializers(_init, 39, this);
|
|
64
|
+
__privateAdd(this, _tooltipPlacement, __runInitializers(_init, 40, this, "top")), __runInitializers(_init, 43, this);
|
|
65
|
+
__publicField(this, "_slotElement", null);
|
|
66
|
+
__publicField(this, "_tooltipEl", null);
|
|
67
|
+
__publicField(this, "_resetTimer", null);
|
|
68
|
+
__publicField(this, "_handleClick", () => {
|
|
69
|
+
if (this.disabled) return;
|
|
70
|
+
const textToCopy = this._getTextToCopy();
|
|
71
|
+
void navigator.clipboard.writeText(textToCopy).then(() => {
|
|
72
|
+
this.setAttribute("copied", "");
|
|
73
|
+
if (this._tooltipEl) {
|
|
74
|
+
this._tooltipEl.content = this.tooltipCopied;
|
|
75
|
+
this._tooltipEl.open = true;
|
|
76
|
+
}
|
|
77
|
+
if (this._resetTimer !== null) {
|
|
78
|
+
clearTimeout(this._resetTimer);
|
|
79
|
+
}
|
|
80
|
+
const duration = this.duration ?? 2e3;
|
|
81
|
+
this._resetTimer = setTimeout(() => {
|
|
82
|
+
this.removeAttribute("copied");
|
|
83
|
+
if (this._tooltipEl) {
|
|
84
|
+
this._tooltipEl.content = this.tooltip;
|
|
85
|
+
this._tooltipEl.open = false;
|
|
86
|
+
}
|
|
87
|
+
this._resetTimer = null;
|
|
88
|
+
}, duration);
|
|
89
|
+
this.dispatchEvent(
|
|
90
|
+
new CustomEvent("copy", {
|
|
91
|
+
bubbles: true,
|
|
92
|
+
composed: true,
|
|
93
|
+
detail: { text: textToCopy }
|
|
94
|
+
})
|
|
95
|
+
);
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
_getTextToCopy() {
|
|
100
|
+
var _a2;
|
|
101
|
+
if (this.text != null) return this.text;
|
|
102
|
+
const nodes = ((_a2 = this._slotElement) == null ? void 0 : _a2.assignedNodes({ flatten: true })) ?? [];
|
|
103
|
+
return nodes.filter((n) => n.nodeType === Node.TEXT_NODE).map((n) => n.textContent ?? "").join("").trim();
|
|
104
|
+
}
|
|
105
|
+
onUnmounted() {
|
|
106
|
+
if (this._resetTimer !== null) {
|
|
107
|
+
clearTimeout(this._resetTimer);
|
|
108
|
+
this._resetTimer = null;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
render() {
|
|
112
|
+
return html(({ aeTooltip, button, span, slot, aeIcon }) => {
|
|
113
|
+
this._tooltipEl = aeTooltip(
|
|
114
|
+
{
|
|
115
|
+
content: this.tooltip,
|
|
116
|
+
placement: this.tooltipPlacement,
|
|
117
|
+
disabled: this.disabled
|
|
118
|
+
},
|
|
119
|
+
() => {
|
|
120
|
+
button(
|
|
121
|
+
{
|
|
122
|
+
type: "button",
|
|
123
|
+
disabled: this.disabled,
|
|
124
|
+
part: "button",
|
|
125
|
+
"aria-label": this.tooltip,
|
|
126
|
+
"aria-disabled": this.disabled,
|
|
127
|
+
"@click": this._handleClick
|
|
128
|
+
},
|
|
129
|
+
() => {
|
|
130
|
+
span({ className: "icon-copy" }, () => {
|
|
131
|
+
aeIcon({ name: "copy" });
|
|
132
|
+
});
|
|
133
|
+
span({ className: "icon-check" }, () => {
|
|
134
|
+
aeIcon({ name: "check" });
|
|
135
|
+
});
|
|
136
|
+
this._slotElement = slot();
|
|
137
|
+
}
|
|
138
|
+
);
|
|
139
|
+
}
|
|
140
|
+
);
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
_init = __decoratorStart(_a);
|
|
145
|
+
_text = /* @__PURE__ */ new WeakMap();
|
|
146
|
+
_color = /* @__PURE__ */ new WeakMap();
|
|
147
|
+
_variant = /* @__PURE__ */ new WeakMap();
|
|
148
|
+
_size = /* @__PURE__ */ new WeakMap();
|
|
149
|
+
_disabled = /* @__PURE__ */ new WeakMap();
|
|
150
|
+
_duration = /* @__PURE__ */ new WeakMap();
|
|
151
|
+
_tooltip = /* @__PURE__ */ new WeakMap();
|
|
152
|
+
_tooltipCopied = /* @__PURE__ */ new WeakMap();
|
|
153
|
+
_tooltipPlacement = /* @__PURE__ */ new WeakMap();
|
|
154
|
+
__decorateElement(_init, 4, "text", _text_dec, CopyButton, _text);
|
|
155
|
+
__decorateElement(_init, 4, "color", _color_dec, CopyButton, _color);
|
|
156
|
+
__decorateElement(_init, 4, "variant", _variant_dec, CopyButton, _variant);
|
|
157
|
+
__decorateElement(_init, 4, "size", _size_dec, CopyButton, _size);
|
|
158
|
+
__decorateElement(_init, 4, "disabled", _disabled_dec, CopyButton, _disabled);
|
|
159
|
+
__decorateElement(_init, 4, "duration", _duration_dec, CopyButton, _duration);
|
|
160
|
+
__decorateElement(_init, 4, "tooltip", _tooltip_dec, CopyButton, _tooltip);
|
|
161
|
+
__decorateElement(_init, 4, "tooltipCopied", _tooltipCopied_dec, CopyButton, _tooltipCopied);
|
|
162
|
+
__decorateElement(_init, 4, "tooltipPlacement", _tooltipPlacement_dec, CopyButton, _tooltipPlacement);
|
|
163
|
+
__decoratorMetadata(_init, CopyButton);
|
|
164
|
+
__publicField(CopyButton, "styles", [variables, sizeCSS, colorCSS, copyButtonStyle]);
|
|
165
|
+
CopyButton.register();
|
|
166
|
+
export {
|
|
167
|
+
CopyButton as C
|
|
168
|
+
};
|
|
169
|
+
//# sourceMappingURL=copy-button.js.map
|