@pictogrammers/components 0.3.1
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/@types/css.d.ts +4 -0
- package/@types/html.d.ts +4 -0
- package/README.md +49 -0
- package/dist/main.js +3819 -0
- package/dist/pgAnnoy.js +116 -0
- package/dist/pgAvatar.js +136 -0
- package/dist/pgButton.js +116 -0
- package/dist/pgButtonGroup.js +116 -0
- package/dist/pgButtonLink.js +116 -0
- package/dist/pgButtonToggle.js +146 -0
- package/dist/pgCard.js +116 -0
- package/dist/pgCardUser.js +196 -0
- package/dist/pgColor.js +136 -0
- package/dist/pgDatabase.js +236 -0
- package/dist/pgDropdown.js +686 -0
- package/dist/pgGrid.js +126 -0
- package/dist/pgHeader.js +116 -0
- package/dist/pgIcon.js +116 -0
- package/dist/pgInputCheck.js +116 -0
- package/dist/pgInputCheckList.js +126 -0
- package/dist/pgInputFileLocal.js +116 -0
- package/dist/pgInputHexRgb.js +126 -0
- package/dist/pgInputRange.js +116 -0
- package/dist/pgInputSelect.js +116 -0
- package/dist/pgInputText.js +116 -0
- package/dist/pgInputTextIcon.js +176 -0
- package/dist/pgInputUserSelect.js +116 -0
- package/dist/pgListTag.js +136 -0
- package/dist/pgMarkdown.js +346 -0
- package/dist/pgMenuIcon.js +206 -0
- package/dist/pgModalAlert.js +126 -0
- package/dist/pgModification.js +396 -0
- package/dist/pgNav.js +116 -0
- package/dist/pgOverlay.js +96 -0
- package/dist/pgPicker.js +116 -0
- package/dist/pgPreview.js +116 -0
- package/dist/pgScroll.js +266 -0
- package/dist/pgSearch.js +146 -0
- package/dist/pgTab.js +116 -0
- package/dist/pgTabs.js +136 -0
- package/dist/pgToast.js +136 -0
- package/dist/pgToasts.js +136 -0
- package/dist/pgTooltip.js +126 -0
- package/index.html +302 -0
- package/package.json +25 -0
- package/pg/annoy/README.md +18 -0
- package/pg/annoy/__examples__/basic/basic.html +8 -0
- package/pg/annoy/__examples__/basic/basic.ts +11 -0
- package/pg/annoy/annoy.css +238 -0
- package/pg/annoy/annoy.html +59 -0
- package/pg/annoy/annoy.ts +48 -0
- package/pg/annoy/index.ts +3 -0
- package/pg/avatar/README.md +23 -0
- package/pg/avatar/__examples__/basic/basic.html +6 -0
- package/pg/avatar/__examples__/basic/basic.ts +41 -0
- package/pg/avatar/__examples__/basic/constants.ts +1 -0
- package/pg/avatar/avatar.css +45 -0
- package/pg/avatar/avatar.html +8 -0
- package/pg/avatar/avatar.spec.ts +51 -0
- package/pg/avatar/avatar.ts +37 -0
- package/pg/avatar/index.ts +3 -0
- package/pg/button/README.md +51 -0
- package/pg/button/__examples__/basic/basic.html +11 -0
- package/pg/button/__examples__/basic/basic.ts +11 -0
- package/pg/button/__examples__/states/states.html +8 -0
- package/pg/button/__examples__/states/states.ts +20 -0
- package/pg/button/button.css +91 -0
- package/pg/button/button.html +3 -0
- package/pg/button/button.ts +45 -0
- package/pg/button/index.ts +3 -0
- package/pg/buttonGroup/README.md +28 -0
- package/pg/buttonGroup/__examples__/basic/basic.html +12 -0
- package/pg/buttonGroup/__examples__/basic/basic.ts +11 -0
- package/pg/buttonGroup/buttonGroup.css +4 -0
- package/pg/buttonGroup/buttonGroup.html +1 -0
- package/pg/buttonGroup/buttonGroup.spec.ts +30 -0
- package/pg/buttonGroup/buttonGroup.ts +50 -0
- package/pg/buttonGroup/index.ts +3 -0
- package/pg/buttonLink/README.md +51 -0
- package/pg/buttonLink/__examples__/basic/basic.html +17 -0
- package/pg/buttonLink/__examples__/basic/basic.ts +11 -0
- package/pg/buttonLink/buttonLink.css +91 -0
- package/pg/buttonLink/buttonLink.html +3 -0
- package/pg/buttonLink/buttonLink.ts +46 -0
- package/pg/buttonLink/index.ts +3 -0
- package/pg/buttonToggle/README.md +54 -0
- package/pg/buttonToggle/__examples__/basic/basic.html +10 -0
- package/pg/buttonToggle/__examples__/basic/basic.ts +23 -0
- package/pg/buttonToggle/buttonToggle.css +8 -0
- package/pg/buttonToggle/buttonToggle.html +4 -0
- package/pg/buttonToggle/buttonToggle.ts +44 -0
- package/pg/buttonToggle/index.ts +3 -0
- package/pg/card/README.md +21 -0
- package/pg/card/__examples__/basic/basic.html +5 -0
- package/pg/card/__examples__/basic/basic.ts +11 -0
- package/pg/card/card.css +11 -0
- package/pg/card/card.html +3 -0
- package/pg/card/card.spec.ts +30 -0
- package/pg/card/card.ts +13 -0
- package/pg/card/index.ts +3 -0
- package/pg/cardUser/README.md +22 -0
- package/pg/cardUser/__examples__/basic/basic.html +3 -0
- package/pg/cardUser/__examples__/basic/basic.ts +30 -0
- package/pg/cardUser/__examples__/basic/constants.ts +1 -0
- package/pg/cardUser/cardUser.css +67 -0
- package/pg/cardUser/cardUser.html +23 -0
- package/pg/cardUser/cardUser.spec.ts +46 -0
- package/pg/cardUser/cardUser.ts +53 -0
- package/pg/cardUser/index.ts +3 -0
- package/pg/color/README.md +13 -0
- package/pg/color/__examples__/basic/basic.html +4 -0
- package/pg/color/__examples__/basic/basic.ts +20 -0
- package/pg/color/color.css +21 -0
- package/pg/color/color.html +1 -0
- package/pg/color/color.ts +97 -0
- package/pg/color/constants.ts +357 -0
- package/pg/color/index.ts +3 -0
- package/pg/color/utils.ts +27 -0
- package/pg/database/README.md +28 -0
- package/pg/database/__examples__/basic/basic.html +9 -0
- package/pg/database/__examples__/basic/basic.ts +37 -0
- package/pg/database/database.css +0 -0
- package/pg/database/database.html +0 -0
- package/pg/database/database.ts +42 -0
- package/pg/database/index.ts +3 -0
- package/pg/dropdown/README.md +13 -0
- package/pg/dropdown/__examples__/basic/basic.html +14 -0
- package/pg/dropdown/__examples__/basic/basic.ts +11 -0
- package/pg/dropdown/dropdown.css +46 -0
- package/pg/dropdown/dropdown.html +5 -0
- package/pg/dropdown/dropdown.ts +60 -0
- package/pg/dropdown/index.ts +3 -0
- package/pg/grid/README.md +97 -0
- package/pg/grid/__examples__/basic/basic.html +29 -0
- package/pg/grid/__examples__/basic/basic.ts +139 -0
- package/pg/grid/grid.css +68 -0
- package/pg/grid/grid.html +6 -0
- package/pg/grid/grid.spec.ts +66 -0
- package/pg/grid/grid.ts +417 -0
- package/pg/grid/index.ts +3 -0
- package/pg/header/README.md +23 -0
- package/pg/header/__examples__/basic/basic.html +8 -0
- package/pg/header/__examples__/basic/basic.ts +11 -0
- package/pg/header/header.css +42 -0
- package/pg/header/header.html +15 -0
- package/pg/header/header.ts +28 -0
- package/pg/header/index.ts +3 -0
- package/pg/icon/README.md +26 -0
- package/pg/icon/__examples__/basic/basic.html +16 -0
- package/pg/icon/__examples__/basic/basic.ts +34 -0
- package/pg/icon/__examples__/basic/constants.ts +2 -0
- package/pg/icon/icon.css +9 -0
- package/pg/icon/icon.html +3 -0
- package/pg/icon/icon.spec.ts +46 -0
- package/pg/icon/icon.ts +23 -0
- package/pg/icon/index.ts +3 -0
- package/pg/inputCheck/README.md +32 -0
- package/pg/inputCheck/__examples__/basic/basic.html +8 -0
- package/pg/inputCheck/__examples__/basic/basic.ts +23 -0
- package/pg/inputCheck/index.ts +3 -0
- package/pg/inputCheck/inputCheck.css +45 -0
- package/pg/inputCheck/inputCheck.html +6 -0
- package/pg/inputCheck/inputCheck.ts +42 -0
- package/pg/inputCheckList/README.md +35 -0
- package/pg/inputCheckList/__examples__/basic/basic.html +4 -0
- package/pg/inputCheckList/__examples__/basic/basic.ts +31 -0
- package/pg/inputCheckList/index.ts +3 -0
- package/pg/inputCheckList/inputCheckList.css +70 -0
- package/pg/inputCheckList/inputCheckList.html +1 -0
- package/pg/inputCheckList/inputCheckList.ts +103 -0
- package/pg/inputCheckList/templates/option.html +8 -0
- package/pg/inputFileLocal/README.md +30 -0
- package/pg/inputFileLocal/__examples__/basic/basic.html +4 -0
- package/pg/inputFileLocal/__examples__/basic/basic.ts +23 -0
- package/pg/inputFileLocal/index.ts +3 -0
- package/pg/inputFileLocal/inputFileLocal.css +80 -0
- package/pg/inputFileLocal/inputFileLocal.html +5 -0
- package/pg/inputFileLocal/inputFileLocal.ts +82 -0
- package/pg/inputHexRgb/README.md +15 -0
- package/pg/inputHexRgb/__examples__/basic/basic.html +4 -0
- package/pg/inputHexRgb/__examples__/basic/basic.ts +23 -0
- package/pg/inputHexRgb/index.ts +3 -0
- package/pg/inputHexRgb/inputHexRgb.css +96 -0
- package/pg/inputHexRgb/inputHexRgb.html +9 -0
- package/pg/inputHexRgb/inputHexRgb.ts +79 -0
- package/pg/inputHexRgb/utils.ts +27 -0
- package/pg/inputRange/README.md +18 -0
- package/pg/inputRange/__examples__/basic/basic.html +9 -0
- package/pg/inputRange/__examples__/basic/basic.ts +30 -0
- package/pg/inputRange/index.ts +3 -0
- package/pg/inputRange/inputRange.css +0 -0
- package/pg/inputRange/inputRange.html +1 -0
- package/pg/inputRange/inputRange.ts +53 -0
- package/pg/inputSelect/README.md +25 -0
- package/pg/inputSelect/__examples__/basic/basic.html +6 -0
- package/pg/inputSelect/__examples__/basic/basic.ts +30 -0
- package/pg/inputSelect/index.ts +3 -0
- package/pg/inputSelect/inputSelect.css +36 -0
- package/pg/inputSelect/inputSelect.html +4 -0
- package/pg/inputSelect/inputSelect.ts +57 -0
- package/pg/inputText/README.md +27 -0
- package/pg/inputText/__examples__/basic/basic.html +9 -0
- package/pg/inputText/__examples__/basic/basic.ts +30 -0
- package/pg/inputText/index.ts +3 -0
- package/pg/inputText/inputText.css +20 -0
- package/pg/inputText/inputText.html +1 -0
- package/pg/inputText/inputText.spec.ts +59 -0
- package/pg/inputText/inputText.ts +59 -0
- package/pg/inputTextIcon/README.md +26 -0
- package/pg/inputTextIcon/index.ts +3 -0
- package/pg/inputTextIcon/inputTextIcon.css +24 -0
- package/pg/inputTextIcon/inputTextIcon.html +4 -0
- package/pg/inputTextIcon/inputTextIcon.spec.ts +44 -0
- package/pg/inputTextIcon/inputTextIcon.ts +26 -0
- package/pg/inputUserSelect/README.md +31 -0
- package/pg/inputUserSelect/__examples__/basic/basic.html +4 -0
- package/pg/inputUserSelect/__examples__/basic/basic.ts +25 -0
- package/pg/inputUserSelect/__examples__/basic/constants.ts +33 -0
- package/pg/inputUserSelect/index.ts +3 -0
- package/pg/inputUserSelect/inputUserSelect.css +174 -0
- package/pg/inputUserSelect/inputUserSelect.html +18 -0
- package/pg/inputUserSelect/inputUserSelect.ts +266 -0
- package/pg/listTag/README.md +26 -0
- package/pg/listTag/__examples__/basic/basic.html +16 -0
- package/pg/listTag/__examples__/basic/basic.ts +53 -0
- package/pg/listTag/__examples__/basic/constants.ts +22 -0
- package/pg/listTag/index.ts +3 -0
- package/pg/listTag/listTag.css +9 -0
- package/pg/listTag/listTag.html +1 -0
- package/pg/listTag/listTag.ts +48 -0
- package/pg/listTag/partials/tag.html +3 -0
- package/pg/markdown/README.md +13 -0
- package/pg/markdown/__examples__/basic/basic.html +3 -0
- package/pg/markdown/__examples__/basic/basic.ts +51 -0
- package/pg/markdown/__examples__/basic/constants.ts +129 -0
- package/pg/markdown/index.ts +5 -0
- package/pg/markdown/markdown.css +760 -0
- package/pg/markdown/markdown.html +1 -0
- package/pg/markdown/markdown.md +123 -0
- package/pg/markdown/markdown.spec.ts +87 -0
- package/pg/markdown/markdown.ts +381 -0
- package/pg/markdown/markdownReplace.ts +7 -0
- package/pg/menuIcon/README.md +13 -0
- package/pg/menuIcon/__examples__/basic/basic.html +3 -0
- package/pg/menuIcon/__examples__/basic/basic.ts +15 -0
- package/pg/menuIcon/index.ts +3 -0
- package/pg/menuIcon/menuIcon.css +168 -0
- package/pg/menuIcon/menuIcon.html +64 -0
- package/pg/menuIcon/menuIcon.ts +271 -0
- package/pg/modalAlert/README.md +17 -0
- package/pg/modalAlert/__examples__/basic/basic.html +4 -0
- package/pg/modalAlert/__examples__/basic/basic.ts +27 -0
- package/pg/modalAlert/index.ts +3 -0
- package/pg/modalAlert/modalAlert.css +43 -0
- package/pg/modalAlert/modalAlert.html +22 -0
- package/pg/modalAlert/modalAlert.ts +45 -0
- package/pg/modification/README.md +34 -0
- package/pg/modification/__examples__/basic/basic.html +8 -0
- package/pg/modification/__examples__/basic/basic.ts +63 -0
- package/pg/modification/__examples__/basic/constants.ts +416 -0
- package/pg/modification/index.ts +3 -0
- package/pg/modification/modification.css +311 -0
- package/pg/modification/modification.html +1 -0
- package/pg/modification/modification.spec.ts +33 -0
- package/pg/modification/modification.ts +201 -0
- package/pg/modification/type/date.html +1 -0
- package/pg/modification/type/iconAliasCreated.html +13 -0
- package/pg/modification/type/iconAliasDeleted.html +13 -0
- package/pg/modification/type/iconAuthorModified.html +13 -0
- package/pg/modification/type/iconCreated.html +13 -0
- package/pg/modification/type/iconDeleted.html +13 -0
- package/pg/modification/type/iconDeprecated.html +13 -0
- package/pg/modification/type/iconDescriptionModified.html +10 -0
- package/pg/modification/type/iconModified.html +14 -0
- package/pg/modification/type/iconRenamed.html +13 -0
- package/pg/modification/type/iconTagCreated.html +13 -0
- package/pg/modification/type/iconTagDeleted.html +13 -0
- package/pg/modification/type/news.html +5 -0
- package/pg/nav/README.md +16 -0
- package/pg/nav/__examples__/basic/basic.html +5 -0
- package/pg/nav/__examples__/basic/basic.ts +11 -0
- package/pg/nav/index.ts +3 -0
- package/pg/nav/nav.css +14 -0
- package/pg/nav/nav.html +16 -0
- package/pg/nav/nav.ts +21 -0
- package/pg/overlay/README.md +37 -0
- package/pg/overlay/__examples__/basic/basic.css +3 -0
- package/pg/overlay/__examples__/basic/basic.html +3 -0
- package/pg/overlay/__examples__/basic/basic.ts +13 -0
- package/pg/overlay/index.ts +3 -0
- package/pg/overlay/overlay.ts +26 -0
- package/pg/picker/README.md +13 -0
- package/pg/picker/index.ts +3 -0
- package/pg/picker/picker.css +56 -0
- package/pg/picker/picker.html +8 -0
- package/pg/picker/picker.ts +66 -0
- package/pg/preview/README.md +19 -0
- package/pg/preview/__examples__/basic/basic.html +11 -0
- package/pg/preview/__examples__/basic/basic.ts +22 -0
- package/pg/preview/index.ts +3 -0
- package/pg/preview/preview.css +34 -0
- package/pg/preview/preview.html +5 -0
- package/pg/preview/preview.ts +38 -0
- package/pg/scroll/README.md +42 -0
- package/pg/scroll/__examples__/basic/basic.css +4 -0
- package/pg/scroll/__examples__/basic/basic.html +11 -0
- package/pg/scroll/__examples__/basic/basic.ts +88 -0
- package/pg/scroll/index.ts +3 -0
- package/pg/scroll/scroll.css +7 -0
- package/pg/scroll/scroll.html +3 -0
- package/pg/scroll/scroll.ts +158 -0
- package/pg/search/README.md +59 -0
- package/pg/search/__examples__/basic/basic.html +3 -0
- package/pg/search/__examples__/basic/basic.ts +29 -0
- package/pg/search/__examples__/basic/constants.ts +3 -0
- package/pg/search/index.ts +3 -0
- package/pg/search/search.css +188 -0
- package/pg/search/search.html +18 -0
- package/pg/search/search.ts +252 -0
- package/pg/search/utils.ts +12 -0
- package/pg/shared/README.md +28 -0
- package/pg/shared/copy.ts +25 -0
- package/pg/shared/database.ts +35 -0
- package/pg/shared/databaseService.ts +230 -0
- package/pg/shared/debounce.ts +12 -0
- package/pg/shared/enums/modificationType.ts +19 -0
- package/pg/shared/filter.ts +14 -0
- package/pg/shared/http.ts +83 -0
- package/pg/shared/iconFilter.spec.ts +61 -0
- package/pg/shared/iconFilter.ts +71 -0
- package/pg/shared/list.ts +34 -0
- package/pg/shared/models/alias.ts +40 -0
- package/pg/shared/models/font.ts +31 -0
- package/pg/shared/models/fontIcon.ts +25 -0
- package/pg/shared/models/fontVersion.ts +22 -0
- package/pg/shared/models/icon.ts +97 -0
- package/pg/shared/models/modification.ts +45 -0
- package/pg/shared/models/style.ts +12 -0
- package/pg/shared/models/tag.ts +37 -0
- package/pg/shared/models/user.ts +35 -0
- package/pg/shared/models/version.ts +20 -0
- package/pg/shared/removeDiacritics.ts +94 -0
- package/pg/shared/toast.ts +47 -0
- package/pg/shared/uuid.ts +6 -0
- package/pg/tab/README.md +18 -0
- package/pg/tab/index.ts +3 -0
- package/pg/tab/tab.css +13 -0
- package/pg/tab/tab.html +3 -0
- package/pg/tab/tab.ts +51 -0
- package/pg/tabs/README.md +31 -0
- package/pg/tabs/__examples__/basic/basic.html +13 -0
- package/pg/tabs/__examples__/basic/basic.ts +11 -0
- package/pg/tabs/index.ts +3 -0
- package/pg/tabs/partials/tab.html +3 -0
- package/pg/tabs/tabs.css +69 -0
- package/pg/tabs/tabs.html +4 -0
- package/pg/tabs/tabs.ts +102 -0
- package/pg/toast/README.md +13 -0
- package/pg/toast/index.ts +3 -0
- package/pg/toast/toast.css +112 -0
- package/pg/toast/toast.html +13 -0
- package/pg/toast/toast.ts +39 -0
- package/pg/toasts/README.md +37 -0
- package/pg/toasts/__examples__/basic/basic.html +11 -0
- package/pg/toasts/__examples__/basic/basic.ts +86 -0
- package/pg/toasts/index.ts +3 -0
- package/pg/toasts/toasts.css +8 -0
- package/pg/toasts/toasts.html +1 -0
- package/pg/toasts/toasts.ts +51 -0
- package/pg/tooltip/README.md +51 -0
- package/pg/tooltip/__examples__/basic/basic.css +38 -0
- package/pg/tooltip/__examples__/basic/basic.html +21 -0
- package/pg/tooltip/__examples__/basic/basic.ts +55 -0
- package/pg/tooltip/addTooltip.ts +31 -0
- package/pg/tooltip/index.ts +20 -0
- package/pg/tooltip/position.ts +15 -0
- package/pg/tooltip/tooltip.css +36 -0
- package/pg/tooltip/tooltip.html +4 -0
- package/pg/tooltip/tooltip.ts +170 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Component, Part, Prop } from '@pictogrammers/element';
|
|
2
|
+
import PgInputText from '../../inputText';
|
|
3
|
+
|
|
4
|
+
import template from './basic.html';
|
|
5
|
+
|
|
6
|
+
@Component({
|
|
7
|
+
selector: 'x-pg-input-text-basic',
|
|
8
|
+
template
|
|
9
|
+
})
|
|
10
|
+
export default class XPgInputTextBasic extends HTMLElement {
|
|
11
|
+
|
|
12
|
+
@Part() $input: PgInputText;
|
|
13
|
+
@Part() $value1: HTMLSpanElement;
|
|
14
|
+
@Part() $value2: HTMLSpanElement;
|
|
15
|
+
|
|
16
|
+
connectedCallback() {
|
|
17
|
+
this.$input.addEventListener('change', this.handleChange.bind(this));
|
|
18
|
+
this.$input.addEventListener('input', this.handleInput.bind(this));
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
handleChange(e: CustomEvent) {
|
|
22
|
+
const { value } = e.detail;
|
|
23
|
+
this.$value1.innerText = value;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
handleInput(e: CustomEvent) {
|
|
27
|
+
const { value } = e.detail;
|
|
28
|
+
this.$value2.innerText = value;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
:host {
|
|
2
|
+
display: block;
|
|
3
|
+
font-family: var(--pg-font-family);
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
[part="input"] {
|
|
7
|
+
border: 1px solid var(--pg-input-text-border-color, #453C4F);
|
|
8
|
+
border-radius: 0.125rem;
|
|
9
|
+
padding: calc(0.5rem - 1px) 0.75rem;
|
|
10
|
+
font-size: 1rem;
|
|
11
|
+
outline: none;
|
|
12
|
+
width: calc(100% - 1.5rem - 2px);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
[part="input"]:active {
|
|
16
|
+
box-shadow: 0 0 0 3px var(--pg-input-text-active-glow, rgb(79, 143, 249, 0.6));
|
|
17
|
+
}
|
|
18
|
+
[part="input"]:focus {
|
|
19
|
+
box-shadow: 0 0 0 3px var(--pg-input-text-focus-glow, rgb(79, 143, 249, 0.5));
|
|
20
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<input part="input" type="text" />
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { selectComponent, getAttributes } from '@pictogrammers/element';
|
|
2
|
+
|
|
3
|
+
import './inputText';
|
|
4
|
+
import PgInputText from './inputText';
|
|
5
|
+
|
|
6
|
+
const PG_INPUT_TEXT = 'pg-input-text';
|
|
7
|
+
|
|
8
|
+
describe('pg-input-text', () => {
|
|
9
|
+
|
|
10
|
+
beforeEach(() => {
|
|
11
|
+
var c = document.createElement(PG_INPUT_TEXT);
|
|
12
|
+
document.body.appendChild(c);
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
afterEach(() => {
|
|
16
|
+
while (document.body.firstChild) {
|
|
17
|
+
document.body.removeChild(document.body.firstChild);
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
it('should be registered', () => {
|
|
22
|
+
expect(customElements.get(PG_INPUT_TEXT)).toBeDefined();
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
it('should only expose known props', () => {
|
|
26
|
+
const props = getAttributes(PG_INPUT_TEXT);
|
|
27
|
+
expect(props.length).toBe(3);
|
|
28
|
+
expect(props).toContain('name');
|
|
29
|
+
expect(props).toContain('value');
|
|
30
|
+
expect(props).toContain('placeholder');
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
it('should default value to empty', () => {
|
|
34
|
+
const component = selectComponent<PgInputText>(PG_INPUT_TEXT);
|
|
35
|
+
const { $input } = component;
|
|
36
|
+
expect($input.value).toEqual('');
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
it('should set value to "Hello World!"', () => {
|
|
40
|
+
const component = selectComponent<PgInputText>(PG_INPUT_TEXT);
|
|
41
|
+
component.value = 'Hello World!';
|
|
42
|
+
const { $input } = component;
|
|
43
|
+
expect($input.value).toEqual('Hello World!');
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
it('should default placeholder to empty', () => {
|
|
47
|
+
const component = selectComponent<PgInputText>(PG_INPUT_TEXT);
|
|
48
|
+
const { $input } = component;
|
|
49
|
+
expect($input.placeholder).toEqual('');
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
it('should set placeholder to "Hello World!"', () => {
|
|
53
|
+
const component = selectComponent<PgInputText>(PG_INPUT_TEXT);
|
|
54
|
+
component.placeholder = 'Hello World!';
|
|
55
|
+
const { $input } = component;
|
|
56
|
+
expect($input.placeholder).toEqual('Hello World!');
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
});
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { Component, Prop, Part } from '@pictogrammers/element';
|
|
2
|
+
|
|
3
|
+
import template from './inputText.html';
|
|
4
|
+
import style from './inputText.css';
|
|
5
|
+
|
|
6
|
+
@Component({
|
|
7
|
+
selector: 'pg-input-text',
|
|
8
|
+
style,
|
|
9
|
+
template
|
|
10
|
+
})
|
|
11
|
+
export default class PgInputText extends HTMLElement {
|
|
12
|
+
@Prop() name: string = '';
|
|
13
|
+
@Prop() value: string = '';
|
|
14
|
+
@Prop() placeholder: string = '';
|
|
15
|
+
|
|
16
|
+
@Part() $input: HTMLInputElement;
|
|
17
|
+
|
|
18
|
+
connectedCallback() {
|
|
19
|
+
this.$input.addEventListener('input', this.handleInput.bind(this));
|
|
20
|
+
this.$input.addEventListener('change', this.handleChange.bind(this));
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
skipValue = false;
|
|
24
|
+
|
|
25
|
+
render(changes) {
|
|
26
|
+
if (changes.value && !this.skipValue) {
|
|
27
|
+
this.$input.value = this.value;
|
|
28
|
+
}
|
|
29
|
+
if (changes.placeholder) {
|
|
30
|
+
this.$input.placeholder = this.placeholder;
|
|
31
|
+
}
|
|
32
|
+
this.skipValue = false;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
handleInput(e) {
|
|
36
|
+
e.stopPropagation();
|
|
37
|
+
this.skipValue = true;
|
|
38
|
+
this.value = e.target.value;
|
|
39
|
+
this.dispatchEvent(
|
|
40
|
+
new CustomEvent('input', {
|
|
41
|
+
detail: {
|
|
42
|
+
value: e.target.value,
|
|
43
|
+
name: e.name
|
|
44
|
+
}
|
|
45
|
+
})
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
handleChange(e) {
|
|
50
|
+
this.dispatchEvent(
|
|
51
|
+
new CustomEvent('change', {
|
|
52
|
+
detail: {
|
|
53
|
+
value: e.target.value,
|
|
54
|
+
name: e.name
|
|
55
|
+
}
|
|
56
|
+
})
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# `<pg-input-text>`
|
|
2
|
+
|
|
3
|
+
The `pg-input-text` component creates an input that accepts text input.
|
|
4
|
+
|
|
5
|
+
```typescript
|
|
6
|
+
import '@pictogrammers/components/pgInputText';
|
|
7
|
+
import { PgInputRange } from '@pictogrammers/components/pgInputText';
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
```html
|
|
11
|
+
<pg-input-text value="50"></pg-input-text>
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Attributes
|
|
15
|
+
|
|
16
|
+
| Attributes | Tested | Description |
|
|
17
|
+
| ---------- | -------- | ----------- |
|
|
18
|
+
| name | | Unique name in `pg-form` |
|
|
19
|
+
| value | | Field value |
|
|
20
|
+
|
|
21
|
+
## Events
|
|
22
|
+
|
|
23
|
+
| Events | Tested | Description |
|
|
24
|
+
| ---------- | -------- | ----------- |
|
|
25
|
+
| change | | `{ detail: { value }` |
|
|
26
|
+
| input | | `{ detail: { value }` |
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
:host {
|
|
2
|
+
display: block;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
[part="grid"] {
|
|
6
|
+
display: grid;
|
|
7
|
+
grid-template-columns: auto 1.5rem;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
[part="icon"] {
|
|
11
|
+
grid-row: 1;
|
|
12
|
+
grid-column: 2;
|
|
13
|
+
pointer-events: none;
|
|
14
|
+
transform: translate(calc(-0.35rem + 1px), calc(0.25rem + 1px));
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
[part="input"] {
|
|
18
|
+
grid-row: 1;
|
|
19
|
+
grid-column: 1 / span 2;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
[part="input"]:focus + [part="icon"] {
|
|
23
|
+
--pg-icon-color: #4f8ff9;
|
|
24
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { selectComponent, getAttributes } from '@pictogrammers/element';
|
|
2
|
+
|
|
3
|
+
import './inputTextIcon';
|
|
4
|
+
import PgInputTextIcon from './inputTextIcon';
|
|
5
|
+
|
|
6
|
+
const PG_INPUT_TEXT_ICON = 'pg-input-text-icon';
|
|
7
|
+
|
|
8
|
+
describe('pg-input-text-icon', () => {
|
|
9
|
+
|
|
10
|
+
beforeEach(() => {
|
|
11
|
+
var c = document.createElement(PG_INPUT_TEXT_ICON);
|
|
12
|
+
document.body.appendChild(c);
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
afterEach(() => {
|
|
16
|
+
while (document.body.firstChild) {
|
|
17
|
+
document.body.removeChild(document.body.firstChild);
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
it('should be registered', () => {
|
|
22
|
+
expect(customElements.get(PG_INPUT_TEXT_ICON)).toBeDefined();
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
it('should only expose known props', () => {
|
|
26
|
+
const props = getAttributes(PG_INPUT_TEXT_ICON);
|
|
27
|
+
expect(props).toContain('path');
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
it('should default path to square icon', () => {
|
|
31
|
+
const component = selectComponent<PgInputTextIcon>(PG_INPUT_TEXT_ICON);
|
|
32
|
+
const { $icon } = component;
|
|
33
|
+
expect($icon.path).toEqual('M3,3V21H21V3');
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
it('should set path to circle', () => {
|
|
37
|
+
const circle = 'M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z';
|
|
38
|
+
const component = selectComponent<PgInputTextIcon>(PG_INPUT_TEXT_ICON);
|
|
39
|
+
component.path = circle;
|
|
40
|
+
const { $icon } = component;
|
|
41
|
+
expect($icon.path).toEqual(circle);
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
});
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Component, Prop, Part } from '@pictogrammers/element';
|
|
2
|
+
|
|
3
|
+
import template from './inputTextIcon.html';
|
|
4
|
+
import style from './inputTextIcon.css';
|
|
5
|
+
|
|
6
|
+
import '../inputText/inputText';
|
|
7
|
+
import PgInputText from '../inputText/inputText';
|
|
8
|
+
import '../icon/icon';
|
|
9
|
+
import PgIcon from '../icon/icon';
|
|
10
|
+
|
|
11
|
+
@Component({
|
|
12
|
+
selector: 'pg-input-text-icon',
|
|
13
|
+
style,
|
|
14
|
+
template
|
|
15
|
+
})
|
|
16
|
+
export default class PgInputTextIcon extends PgInputText {
|
|
17
|
+
@Prop() path: string = 'M3,3V21H21V3';
|
|
18
|
+
|
|
19
|
+
@Part() $icon: PgIcon;
|
|
20
|
+
|
|
21
|
+
render(changes) {
|
|
22
|
+
if (changes.path) {
|
|
23
|
+
this.$icon.path = this.path;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# `<pg-input-user-select>`
|
|
2
|
+
|
|
3
|
+
The `pg-input-user-select` component creates an select drop down.
|
|
4
|
+
|
|
5
|
+
```typescript
|
|
6
|
+
import '@pictogrammers/components/pgInputUserSelect';
|
|
7
|
+
import { PgInputUserSelect } '@mdi/components/pgInputUserSelect';
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
```html
|
|
11
|
+
<pg-input-user-select></pg-input-user-select>
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Attributes
|
|
15
|
+
|
|
16
|
+
| Attributes | Tested | Description |
|
|
17
|
+
| ---------- | -------- | ----------- |
|
|
18
|
+
| options | | `[User, ...]` |
|
|
19
|
+
| value | | `world` |
|
|
20
|
+
|
|
21
|
+
## Events
|
|
22
|
+
|
|
23
|
+
| Event | Tested | Detail |
|
|
24
|
+
| --------- | -------- | ----------- |
|
|
25
|
+
| change | | `User` |
|
|
26
|
+
|
|
27
|
+
## Models
|
|
28
|
+
|
|
29
|
+
```yaml
|
|
30
|
+
$ref: '#/api/model/user'
|
|
31
|
+
```
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Component, Part, Prop } from '@pictogrammers/element';
|
|
2
|
+
import PgInputUserSelect from '../../inputUserSelect';
|
|
3
|
+
import { users } from './constants';
|
|
4
|
+
|
|
5
|
+
import template from './basic.html';
|
|
6
|
+
|
|
7
|
+
@Component({
|
|
8
|
+
selector: 'x-pg-input-user-select-basic',
|
|
9
|
+
template
|
|
10
|
+
})
|
|
11
|
+
export default class XPgInputUserSelectBasic extends HTMLElement {
|
|
12
|
+
|
|
13
|
+
@Part() $input: PgInputUserSelect;
|
|
14
|
+
@Part() $value: HTMLSpanElement;
|
|
15
|
+
|
|
16
|
+
connectedCallback() {
|
|
17
|
+
this.$input.options = users;
|
|
18
|
+
this.$input.addEventListener('change', this.handleChange.bind(this));
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
handleChange(e: CustomEvent) {
|
|
22
|
+
const { name, value } = e.detail;
|
|
23
|
+
this.$value.innerText = `${name} - ${value}`;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { User } from "../../../shared/models/user";
|
|
2
|
+
|
|
3
|
+
const AVATAR = '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';
|
|
4
|
+
|
|
5
|
+
export const users: User[] = [
|
|
6
|
+
{
|
|
7
|
+
"id": "14ea5584-07e3-11e4-bf19-842b2b6cfe1b",
|
|
8
|
+
"base64": AVATAR,
|
|
9
|
+
"name": "First Last 1",
|
|
10
|
+
"twitter": "templarian",
|
|
11
|
+
"github": "Templarian",
|
|
12
|
+
"website": "http://templarian.com",
|
|
13
|
+
"iconCount": 1000
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"id": "24ea5584-07e3-11e4-bf19-842b2b6cfe1b",
|
|
17
|
+
"base64": AVATAR,
|
|
18
|
+
"name": "First Last 2",
|
|
19
|
+
"twitter": "templarian",
|
|
20
|
+
"github": "Templarian",
|
|
21
|
+
"website": "http://templarian.com",
|
|
22
|
+
"iconCount": 0
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"id": "34ea5584-07e3-11e4-bf19-842b2b6cfe1b",
|
|
26
|
+
"base64": AVATAR,
|
|
27
|
+
"name": "First Last 3",
|
|
28
|
+
"twitter": "templarian",
|
|
29
|
+
"github": "Templarian",
|
|
30
|
+
"website": "http://templarian.com",
|
|
31
|
+
"iconCount": 9999
|
|
32
|
+
}
|
|
33
|
+
].map(u => new User().from(u as any));
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
:host {
|
|
2
|
+
display: block;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
[part="wrapper"] {
|
|
6
|
+
display: grid;
|
|
7
|
+
grid-template-rows: auto 0;
|
|
8
|
+
grid-template-columns: 100%;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
[part="select"] {
|
|
12
|
+
display: grid;
|
|
13
|
+
grid-template-columns: 3.5rem 1.75rem auto 2.75rem 1fr 1.5rem;
|
|
14
|
+
grid-template-rows: 1.5rem 1.5rem;
|
|
15
|
+
grid-row: 1;
|
|
16
|
+
grid-column: 1;
|
|
17
|
+
border: 1px solid var(--pg-input-select-border-color, #453C4F);
|
|
18
|
+
border-radius: 0.25rem;
|
|
19
|
+
padding: 0.5rem 0.5rem 0.5rem 0.75rem;
|
|
20
|
+
width: 100%;
|
|
21
|
+
font-size: 1rem;
|
|
22
|
+
outline: 0;
|
|
23
|
+
text-align: left;
|
|
24
|
+
background: var(--pg-input-select-background, #fff);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
[part="select"]:focus {
|
|
28
|
+
box-shadow: 0 0 0 3px rgba(79, 143, 249, 0.5);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
[part="select"]:disabled {
|
|
32
|
+
border: 1px solid var(--pg-input-select-disabled-border-color, rgba(69, 60, 79, 0.6));
|
|
33
|
+
color: var(--pg-input-select-disabled-color, rgba(69, 60, 79, 0.6));
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
[part="chevron"] {
|
|
37
|
+
grid-row: 1 / span 2;
|
|
38
|
+
grid-column: 6;
|
|
39
|
+
pointer-events: none;
|
|
40
|
+
width: 1.5rem;
|
|
41
|
+
height: 1.5rem;
|
|
42
|
+
align-self: center;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.githubIcon,
|
|
46
|
+
[part="githubIcon"] {
|
|
47
|
+
grid-row: 2;
|
|
48
|
+
grid-column: 2;
|
|
49
|
+
width: 1.5rem;
|
|
50
|
+
height: 1.5rem;
|
|
51
|
+
align-self: center;
|
|
52
|
+
color: var(--pg-input-select-border-color, #453C4F);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.avatar,
|
|
56
|
+
[part="selectedAvatar"] {
|
|
57
|
+
grid-row: 1 / span 2;
|
|
58
|
+
grid-column: 1;
|
|
59
|
+
width: 3rem;
|
|
60
|
+
height: 3rem;
|
|
61
|
+
border-radius: 50%;
|
|
62
|
+
border: 1px solid var(--pg-input-select-border-color, #453C4F);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.name,
|
|
66
|
+
[part="selectedName"] {
|
|
67
|
+
grid-row: 1;
|
|
68
|
+
grid-column: 2 / span 4;
|
|
69
|
+
align-self: center;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.github,
|
|
73
|
+
[part="selectedGithub"] {
|
|
74
|
+
grid-row: 2;
|
|
75
|
+
grid-column: 3;
|
|
76
|
+
align-self: center;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.countIcon,
|
|
80
|
+
[part="countIcon"] {
|
|
81
|
+
grid-row: 2;
|
|
82
|
+
grid-column: 4;
|
|
83
|
+
width: 1.5rem;
|
|
84
|
+
height: 1.5rem;
|
|
85
|
+
align-self: center;
|
|
86
|
+
margin-left: 1rem;
|
|
87
|
+
color: var(--pg-input-select-border-color, #453C4F);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.iconCount,
|
|
91
|
+
[part="selectedCount"] {
|
|
92
|
+
grid-row: 2;
|
|
93
|
+
grid-column: 5;
|
|
94
|
+
align-self: center;
|
|
95
|
+
font-weight: bold;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
[part="dropdown"].open {
|
|
99
|
+
display: flex;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
[part="dropdown"] {
|
|
103
|
+
grid-row: 2;
|
|
104
|
+
grid-column: 1;
|
|
105
|
+
display: none;
|
|
106
|
+
flex-direction: column;
|
|
107
|
+
border: 1px solid var(--pg-input-select-border-color, #453C4F);
|
|
108
|
+
border-radius: 0.25rem;
|
|
109
|
+
background: #fff;
|
|
110
|
+
z-index: 1;
|
|
111
|
+
position: absolute;
|
|
112
|
+
max-height: 16.5rem;
|
|
113
|
+
overflow: auto;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
[part="dropdown"] button {
|
|
117
|
+
display: grid;
|
|
118
|
+
grid-template-columns: 3.5rem 1.75rem auto 2.75rem 1fr;
|
|
119
|
+
grid-template-rows: auto;
|
|
120
|
+
border: 0;
|
|
121
|
+
padding: 0.5rem 0.75rem;
|
|
122
|
+
text-align: left;
|
|
123
|
+
background: #fff;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
[part="dropdown"] button:hover,
|
|
127
|
+
[part="dropdown"] button:focus {
|
|
128
|
+
color: #fff;
|
|
129
|
+
background: #1E90FF;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
[part="dropdown"] button:hover .githubIcon,
|
|
133
|
+
[part="dropdown"] button:hover .countIcon,
|
|
134
|
+
[part="dropdown"] button:focus .githubIcon,
|
|
135
|
+
[part="dropdown"] button:focus .countIcon {
|
|
136
|
+
color: #fff;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
[part="loading"] {
|
|
140
|
+
width: 3rem;
|
|
141
|
+
height: 3rem;
|
|
142
|
+
animation: spin 2s infinite linear;
|
|
143
|
+
grid-row: 1 / span 2;;
|
|
144
|
+
grid-column: 1;
|
|
145
|
+
pointer-events: none;
|
|
146
|
+
align-self: center;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
@keyframes spin {
|
|
150
|
+
0% {
|
|
151
|
+
transform: rotate(0deg);
|
|
152
|
+
}
|
|
153
|
+
100% {
|
|
154
|
+
transform: rotate(359deg);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
[part="loadingText"] {
|
|
159
|
+
grid-row: 1 / span 2;
|
|
160
|
+
grid-column: 2 / span 3;
|
|
161
|
+
align-self: center;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
[part="noData"] {
|
|
165
|
+
grid-row: 1 / span 2;
|
|
166
|
+
grid-column: 1 / span 4;
|
|
167
|
+
align-self: center;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
[part="noSelection"] {
|
|
171
|
+
grid-row: 1 / span 2;
|
|
172
|
+
grid-column: 1 / span 4;
|
|
173
|
+
align-self: center;
|
|
174
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<div part="wrapper">
|
|
2
|
+
<button part="select">
|
|
3
|
+
<img part="selectedAvatar" />
|
|
4
|
+
<span part="selectedName">First Last</span>
|
|
5
|
+
<svg part="githubIcon" viewBox="0 0 24 24"><path fill="currentColor" d="M12,2A10,10 0 0,0 2,12C2,16.42 4.87,20.17 8.84,21.5C9.34,21.58 9.5,21.27 9.5,21C9.5,20.77 9.5,20.14 9.5,19.31C6.73,19.91 6.14,17.97 6.14,17.97C5.68,16.81 5.03,16.5 5.03,16.5C4.12,15.88 5.1,15.9 5.1,15.9C6.1,15.97 6.63,16.93 6.63,16.93C7.5,18.45 8.97,18 9.54,17.76C9.63,17.11 9.89,16.67 10.17,16.42C7.95,16.17 5.62,15.31 5.62,11.5C5.62,10.39 6,9.5 6.65,8.79C6.55,8.54 6.2,7.5 6.75,6.15C6.75,6.15 7.59,5.88 9.5,7.17C10.29,6.95 11.15,6.84 12,6.84C12.85,6.84 13.71,6.95 14.5,7.17C16.41,5.88 17.25,6.15 17.25,6.15C17.8,7.5 17.45,8.54 17.35,8.79C18,9.5 18.38,10.39 18.38,11.5C18.38,15.32 16.04,16.16 13.81,16.41C14.17,16.72 14.5,17.33 14.5,18.26C14.5,19.6 14.5,20.68 14.5,21C14.5,21.27 14.66,21.59 15.17,21.5C19.14,20.16 22,16.42 22,12A10,10 0 0,0 12,2Z" /></svg>
|
|
6
|
+
<span part="selectedGithub">GitHub</span>
|
|
7
|
+
<svg part="countIcon" viewBox="0 0 24 24"><path fill="currentColor" d="M11,13.5V21.5H3V13.5H11M12,2L17.5,11H6.5L12,2M17.5,13C20,13 22,15 22,17.5C22,20 20,22 17.5,22C15,22 13,20 13,17.5C13,15 15,13 17.5,13Z" /></svg>
|
|
8
|
+
<span part="selectedCount">9999</span>
|
|
9
|
+
<svg part="loading" viewBox="0 0 24 24"><path fill="currentColor" d="M12,4V2A10,10 0 0,0 2,12H4A8,8 0 0,1 12,4Z" /></svg>
|
|
10
|
+
<span part="loadingText">Loading...</span>
|
|
11
|
+
<svg part="chevron" viewBox="0 0 24 24"><path fill="currentColor" d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z" /></svg>
|
|
12
|
+
<span part="noData">Empty Users List</span>
|
|
13
|
+
<span part="noSelection">Select a User</span>
|
|
14
|
+
</button>
|
|
15
|
+
<div part="dropdownContainer">
|
|
16
|
+
<div part="dropdown"></div>
|
|
17
|
+
</div>
|
|
18
|
+
</div>
|