@xplor-education/core-stencil-components 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/{p-x30CgLRv.js → p-BaDLDCH5.js} +3 -3
- package/components/{p-x30CgLRv.js.map → p-BaDLDCH5.js.map} +1 -1
- package/components/{p-BK_ATKuB.js → p-DxxjL3sU.js} +3 -3
- package/components/{p-BK_ATKuB.js.map → p-DxxjL3sU.js.map} +1 -1
- package/components/xplor-chat-widget.js +1 -1
- package/components/xplor-date-picker.js +1 -1
- package/components/xplor-drag-and-drop-input.js +39 -4
- package/components/xplor-drag-and-drop-input.js.map +1 -1
- package/components/xplor-dropdown.js +1 -1
- package/components/xplor-expansion-panel.js +4 -4
- package/components/xplor-expansion-panels.js +1 -1
- package/components/xplor-inline-checkbox.js +2 -2
- package/components/xplor-inline-date-picker.js +1 -1
- package/components/xplor-inline-switch.js +1 -1
- package/components/xplor-input-file.js +1 -1
- package/components/xplor-input-search.js +2 -2
- package/components/xplor-input-select.js +24 -4
- package/components/xplor-input-select.js.map +1 -1
- package/components/xplor-input-send.js +2 -2
- package/components/xplor-input-text-area.js +2 -2
- package/components/xplor-input-text-secondary.js +2 -2
- package/components/xplor-input-text.js +2 -2
- package/components/xplor-input-title.js +1 -1
- package/components/xplor-links.js +1 -1
- package/components/xplor-modal-persistent.js +1 -1
- package/components/xplor-radio-btn.d.ts +11 -0
- package/components/xplor-radio-btn.js +36 -0
- package/components/xplor-radio-btn.js.map +1 -0
- package/components/xplor-section-card.js +2 -2
- package/components/xplor-section-heading.js +2 -2
- package/components/xplor-table.js +5 -5
- package/components/xplor-text-bubble.js +2 -2
- package/components/xplor-text-field.js +2 -2
- package/components/xplor-time-picker.js +6 -6
- package/dist/cjs/index-Bc5o_4vY.js +2 -2
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{xplor-alert-dialog_57.cjs.entry.js → xplor-alert-dialog_58.cjs.entry.js} +118 -52
- package/dist/cjs/xplor-alert-dialog_58.cjs.entry.js.map +1 -0
- package/dist/cjs/xplor-component-library.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/xplor-drag-and-drop-input/xplor-drag-and-drop-input.css +125 -21
- package/dist/collection/components/xplor-drag-and-drop-input/xplor-drag-and-drop-input.js +58 -4
- package/dist/collection/components/xplor-drag-and-drop-input/xplor-drag-and-drop-input.js.map +1 -1
- package/dist/collection/components/xplor-dropdown/xplor-dropdown.js +1 -1
- package/dist/collection/components/xplor-expansion-panel/xplor-expansion-panel.js +4 -4
- package/dist/collection/components/xplor-expansion-panels/xplor-expansion-panels.js +1 -1
- package/dist/collection/components/xplor-inline-checkbox/xplor-inline-checkbox.js +2 -2
- package/dist/collection/components/xplor-inline-date-picker/xplor-inline-date-picker.js +1 -1
- package/dist/collection/components/xplor-inline-switch/xplor-inline-switch.js +1 -1
- package/dist/collection/components/xplor-input-file/xplor-input-file.js +1 -1
- package/dist/collection/components/xplor-input-search/xplor-input-search.js +2 -2
- package/dist/collection/components/xplor-input-select/xplor-input-select.css +1 -6
- package/dist/collection/components/xplor-input-select/xplor-input-select.js +23 -3
- package/dist/collection/components/xplor-input-select/xplor-input-select.js.map +1 -1
- package/dist/collection/components/xplor-input-send/xplor-input-send.js +2 -2
- package/dist/collection/components/xplor-input-text/xplor-input-text.js +2 -2
- package/dist/collection/components/xplor-input-text-area/xplor-input-text-area.js +2 -2
- package/dist/collection/components/xplor-input-text-secondary/xplor-input-text-secondary.js +2 -2
- package/dist/collection/components/xplor-input-title/xplor-input-title.js +1 -1
- package/dist/collection/components/xplor-links/xplor-links.js +1 -1
- package/dist/collection/components/xplor-modal-persistent/xplor-modal-persistent.js +1 -1
- package/dist/collection/components/xplor-radio-btn/xplor-radio-btn.css +271 -0
- package/dist/collection/components/xplor-radio-btn/xplor-radio-btn.js +19 -0
- package/dist/collection/components/xplor-radio-btn/xplor-radio-btn.js.map +1 -0
- package/dist/collection/components/xplor-section-card/xplor-section-card.js +2 -2
- package/dist/collection/components/xplor-section-heading/xplor-section-heading.js +2 -2
- package/dist/collection/components/xplor-table/xplor-table.js +5 -5
- package/dist/collection/components/xplor-text-bubble/xplor-text-bubble.js +2 -2
- package/dist/collection/components/xplor-text-field/xplor-text-field.js +2 -2
- package/dist/collection/components/xplor-time-picker/xplor-time-picker.js +6 -6
- package/dist/components/{p-BIFlTsO8.js → p-CXJd350E.js} +3 -3
- package/dist/components/{p-BIFlTsO8.js.map → p-CXJd350E.js.map} +1 -1
- package/dist/components/{p-CJGP2_5k.js → p-oOSnPjGy.js} +3 -3
- package/dist/components/{p-CJGP2_5k.js.map → p-oOSnPjGy.js.map} +1 -1
- package/dist/components/xplor-chat-widget.js +1 -1
- package/dist/components/xplor-date-picker.js +1 -1
- package/dist/components/xplor-drag-and-drop-input.js +39 -4
- package/dist/components/xplor-drag-and-drop-input.js.map +1 -1
- package/dist/components/xplor-dropdown.js +1 -1
- package/dist/components/xplor-expansion-panel.js +4 -4
- package/dist/components/xplor-expansion-panels.js +1 -1
- package/dist/components/xplor-inline-checkbox.js +2 -2
- package/dist/components/xplor-inline-date-picker.js +1 -1
- package/dist/components/xplor-inline-switch.js +1 -1
- package/dist/components/xplor-input-file.js +1 -1
- package/dist/components/xplor-input-search.js +2 -2
- package/dist/components/xplor-input-select.js +24 -4
- package/dist/components/xplor-input-select.js.map +1 -1
- package/dist/components/xplor-input-send.js +2 -2
- package/dist/components/xplor-input-text-area.js +2 -2
- package/dist/components/xplor-input-text-secondary.js +2 -2
- package/dist/components/xplor-input-text.js +2 -2
- package/dist/components/xplor-input-title.js +1 -1
- package/dist/components/xplor-links.js +1 -1
- package/dist/components/xplor-modal-persistent.js +1 -1
- package/dist/components/xplor-radio-btn.d.ts +11 -0
- package/dist/components/xplor-radio-btn.js +37 -0
- package/dist/components/xplor-radio-btn.js.map +1 -0
- package/dist/components/xplor-section-card.js +2 -2
- package/dist/components/xplor-section-heading.js +2 -2
- package/dist/components/xplor-table.js +5 -5
- package/dist/components/xplor-text-bubble.js +2 -2
- package/dist/components/xplor-text-field.js +2 -2
- package/dist/components/xplor-time-picker.js +6 -6
- package/dist/esm/index-Zkk2NJif.js +2 -2
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{xplor-alert-dialog_57.entry.js → xplor-alert-dialog_58.entry.js} +118 -53
- package/dist/esm/xplor-alert-dialog_58.entry.js.map +1 -0
- package/dist/esm/xplor-component-library.js +1 -1
- package/dist/hydrate/index.js +127 -51
- package/dist/hydrate/index.mjs +127 -51
- package/dist/types/components/xplor-drag-and-drop-input/xplor-drag-and-drop-input.d.ts +7 -0
- package/dist/types/components/xplor-input-select/xplor-input-select.d.ts +7 -0
- package/dist/types/components/xplor-radio-btn/xplor-radio-btn.d.ts +3 -0
- package/dist/types/components.d.ts +25 -2
- package/dist/xplor-component-library/{p-25fa8553.entry.js → p-07d83c17.entry.js} +2 -2
- package/dist/xplor-component-library/p-07d83c17.entry.js.map +1 -0
- package/dist/xplor-component-library/xplor-component-library.esm.js +1 -1
- package/package.json +1 -1
- package/dist/cjs/xplor-alert-dialog_57.cjs.entry.js.map +0 -1
- package/dist/esm/xplor-alert-dialog_57.entry.js.map +0 -1
- package/dist/xplor-component-library/p-25fa8553.entry.js.map +0 -1
|
@@ -18,7 +18,7 @@ var patchBrowser = () => {
|
|
|
18
18
|
|
|
19
19
|
patchBrowser().then(async (options) => {
|
|
20
20
|
await index.globalScripts();
|
|
21
|
-
return index.bootstrapLazy([["xplor-alert-
|
|
21
|
+
return index.bootstrapLazy([["xplor-alert-dialog_58.cjs",[[6,"xplor-btn-tooltip",{"text":[1],"tooltipText":[1,"tooltip-text"],"tooltipPosition":[1,"tooltip-position"],"type":[1],"mode":[1],"iconPosition":[1,"icon-position"],"disabled":[4]}],[1,"xplor-chat-widget",{"languageOptions":[16,"language-options"],"textId":[1,"text-id"],"apiKey":[1,"api-key"],"selectedLanguage":[32],"textValue":[32]}],[6,"xplor-avatar-and-name",{"name":[1],"src":[1],"size":[1],"color":[1],"status":[1]}],[2,"xplor-date-picker",{"value":[1025],"label":[1],"placeholder":[1],"type":[1],"monthType":[1,"month-type"],"display":[1],"dateFormat":[1,"date-format"],"min":[1],"max":[1],"readonly":[4],"disabled":[4],"clearable":[4],"closeOnSelect":[4,"close-on-select"],"bgColor":[1,"bg-color"],"color":[1],"startWeekOnSunday":[4,"start-week-on-sunday"],"error":[1],"hideDetails":[8,"hide-details"],"required":[4],"isOpen":[32],"inputText":[32],"dropdownPosition":[32]},[[4,"click","handleDocumentClick"]]],[2,"xplor-drag-and-drop-input",{"disabled":[4],"accepts":[1],"label":[1],"browseLabel":[1,"browse-label"],"progress":[2],"dragover":[32],"currentFile":[32],"clearCurrentFile":[64]}],[2,"xplor-input-send",{"placeholder":[1],"disabled":[4],"maxLength":[2,"max-length"],"value":[1025],"buttonText":[1,"button-text"],"buttonType":[1,"button-type"],"internalValue":[32]}],[4,"xplor-modal-persistent",{"open":[4],"width":[1],"maxWidth":[1,"max-width"],"maxHeight":[1,"max-height"],"loading":[4]}],[6,"xplor-alert-dialog",{"open":[1028],"width":[1],"persistent":[4]},null,{"open":["handleOpenChange"]}],[6,"xplor-alert-message",{"type":[1],"alertTitle":[1,"alert-title"],"dismissible":[4]}],[2,"xplor-assistant",{"apiEndpoint":[1,"api-endpoint"],"userId":[1,"user-id"],"userEmail":[1,"user-email"],"userName":[1,"user-name"],"sessionId":[1,"session-id"],"quickReplies":[16,"quick-replies"],"placeholder":[1],"enableVoiceInput":[4,"enable-voice-input"],"enableTextToSpeech":[4,"enable-text-to-speech"],"autoSpeak":[4,"auto-speak"],"maxHeight":[1,"max-height"],"disabled":[4],"messages":[32],"internalSessionId":[32],"isLoading":[32],"isListening":[32],"isSpeaking":[32],"error":[32],"inputValue":[32],"hasVoiceSupport":[32],"hasTTSSupport":[32],"sendMessage":[64],"clearHistory":[64],"speak":[64],"stopSpeaking":[64]},null,{"sessionId":["handleSessionIdChange"]}],[2,"xplor-autocomplete",{"items":[16],"value":[1032],"placeholder":[1],"label":[1],"disabled":[4],"readonly":[4],"clearable":[4],"multiple":[4],"minSearchLength":[2,"min-search-length"],"itemValue":[1,"item-value"],"itemText":[1,"item-text"],"menuMaxWidth":[1,"menu-max-width"],"renderItem":[16,"render-item"],"renderSelection":[16,"render-selection"],"isOpen":[32],"searchQuery":[32],"filteredItems":[32],"selectedItems":[32],"highlightedIndex":[32]},[[4,"click","handleDocumentClick"]]],[6,"xplor-badge",{"backgroundColor":[1,"background-color"],"color":[1],"threshold":[2],"variant":[1],"size":[1],"datatable":[4],"text":[1]}],[2,"xplor-badge-active"],[2,"xplor-badge-archived"],[2,"xplor-badge-deleted"],[2,"xplor-badge-expired"],[2,"xplor-badge-inactive"],[2,"xplor-badge-recalled"],[6,"xplor-badge-session-booking",{"booking":[16],"item":[16]}],[2,"xplor-badge-upcoming"],[2,"xplor-badge-waitlist"],[6,"xplor-btn-back",{"color":[1],"minWidth":[1,"min-width"],"minHeight":[1,"min-height"],"gap":[1],"disabled":[4]}],[2,"xplor-btn-back-to-parent",{"size":[1],"inline":[4],"bgColor":[1,"bg-color"],"color":[1],"variant":[1]}],[6,"xplor-btn-icon",{"color":[1],"size":[8],"iconSize":[8,"icon-size"],"variant":[1],"disabled":[4]}],[6,"xplor-btn-menu",{"label":[1],"options":[16],"hiddenKeys":[16,"hidden-keys"],"disabledKeys":[16,"disabled-keys"],"color":[1],"density":[1],"show":[32]}],[6,"xplor-btn-toggle",{"active":[1028],"color":[1],"disabled":[4],"inactiveOutlined":[4,"inactive-outlined"]}],[6,"xplor-btn-toggle-group",{"multiple":[4],"density":[1]}],[6,"xplor-btn-toggle-secondary",{"active":[1028],"disabled":[4],"inactiveOutlined":[4,"inactive-outlined"]}],[1,"xplor-checkbox",{"initialChecked":[4,"initial-checked"],"initialIndeterminate":[4,"initial-indeterminate"],"disabled":[4],"error":[4],"label":[1],"checked":[32],"indeterminate":[32],"isHovered":[32],"isFocused":[32],"isPressed":[32]},null,{"initialChecked":["watchCheckedProp"],"initialIndeterminate":["watchIndeterminateProp"]}],[2,"xplor-combobox",{"items":[16],"value":[1032],"placeholder":[1],"label":[1],"disabled":[4],"readonly":[4],"clearable":[4],"multiple":[4],"allowCustom":[4,"allow-custom"],"createMessage":[1,"create-message"],"isOpen":[32],"searchQuery":[32],"filteredItems":[32],"selectedItems":[32],"highlightedIndex":[32],"customItems":[32]},[[4,"click","handleDocumentClick"]]],[1,"xplor-datatable",{"headers":[16],"items":[16],"loading":[4],"pagination":[16],"selected":[16],"canSelect":[4,"can-select"],"horizontalLines":[4,"horizontal-lines"],"striped":[4],"height":[8],"skeletonLoader":[4,"skeleton-loader"],"hover":[4],"perPageOptions":[16,"per-page-options"],"sortBy":[32],"sortDirection":[32],"internalSelected":[32],"allSelected":[32]},null,{"selected":["watchSelected"],"items":["watchItems"]}],[6,"xplor-expansion-panel",{"disabled":[4],"open":[1028],"panelId":[32],"contentHeight":[32]}],[6,"xplor-expansion-panels",{"value":[1025],"multiple":[4],"accordion":[4],"openPanels":[32]},[[0,"xplorPanelToggle","handlePanelToggle"]]],[2,"xplor-file-upload",{"accepts":[1],"maxSize":[2,"max-size"],"multiple":[4],"disabled":[4],"showPreview":[4,"show-preview"],"label":[1],"files":[32],"isDragging":[32],"error":[32]}],[6,"xplor-inline-checkbox",{"checked":[1028],"value":[8],"color":[1],"disabled":[4],"indeterminate":[4],"label":[1]}],[6,"xplor-inline-switch",{"checked":[1028],"value":[8],"color":[1],"disabled":[4],"label":[1]}],[2,"xplor-input-file",{"label":[1],"placeholder":[1],"color":[1],"disabled":[4],"multiple":[4],"accept":[1],"maxChips":[2,"max-chips"],"counter":[4],"showSize":[2,"show-size"],"prependInnerIcon":[1,"prepend-inner-icon"],"selectedFiles":[32]}],[6,"xplor-input-search",{"value":[1025],"placeholder":[1],"bgColor":[1,"bg-color"],"color":[1],"disabled":[4],"density":[1],"isFocused":[32]}],[2,"xplor-input-select",{"value":[1032],"label":[1],"placeholder":[1],"options":[16],"multiple":[4],"bgColor":[1,"bg-color"],"color":[1],"disabled":[4],"readonly":[4],"hideDetails":[8,"hide-details"],"error":[1],"helperText":[1,"helper-text"],"required":[4],"isOpen":[32],"isFocused":[32],"menuPosition":[32]}],[6,"xplor-input-text",{"value":[1025],"label":[1],"placeholder":[1],"type":[1],"bgColor":[1,"bg-color"],"color":[1],"disabled":[4],"readonly":[4],"hideDetails":[8,"hide-details"],"error":[1],"helperText":[1,"helper-text"],"required":[4],"isFocused":[32]}],[2,"xplor-input-text-area",{"value":[1025],"label":[1],"placeholder":[1],"bgColor":[1,"bg-color"],"color":[1],"disabled":[4],"readonly":[4],"clearable":[4],"rows":[2],"hideDetails":[8,"hide-details"],"error":[1],"helperText":[1,"helper-text"],"required":[4],"isFocused":[32]}],[6,"xplor-input-text-secondary",{"value":[1025],"label":[1],"placeholder":[1],"type":[1],"bgColor":[1,"bg-color"],"disabled":[4],"readonly":[4],"hideDetails":[8,"hide-details"],"error":[1],"helperText":[1,"helper-text"],"required":[4],"isDirty":[4,"is-dirty"],"isFocused":[32]}],[2,"xplor-input-title",{"value":[1025],"placeholder":[1],"disabled":[4],"readonly":[4]}],[1,"xplor-links",{"brand":[1]}],[6,"xplor-nav-tabs",{"value":[1025],"items":[16],"color":[1],"grow":[4]}],[1,"xplor-radio-btn"],[6,"xplor-section-card",{"outlined":[4],"rounded":[4],"padding":[1]}],[6,"xplor-section-heading",{"size":[1],"text":[1]}],[1,"xplor-table",{"columns":[16],"data":[16],"freeze":[4],"multiselect":[4],"striped":[4],"selectedValues":[16,"selected-values"],"isSortable":[4,"is-sortable"],"sortableColumns":[16,"sortable-columns"],"areAllSelected":[32],"rowData":[32],"hasScrolled":[32],"selected":[32],"sortTypeArray":[32],"selectedDateRange":[32],"currentPage":[32],"totalPages":[32]},null,{"data":["watchData"]}],[6,"xplor-text-bubble",{"color":[1]}],[6,"xplor-text-field",{"value":[1025],"label":[1],"placeholder":[1],"type":[1],"color":[1],"variant":[1],"bgColor":[1,"bg-color"],"errorMessages":[16,"error-messages"],"hideDetails":[8,"hide-details"],"disabled":[4],"readonly":[4],"required":[4],"isDirty":[4,"is-dirty"],"clearable":[4],"customClass":[1,"custom-class"],"maxlength":[2],"min":[2],"max":[2],"isFocused":[32],"hasValue":[32]},null,{"value":["handleValueChange"]}],[2,"xplor-time-picker",{"value":[1025],"label":[1],"placeholder":[1],"clearable":[4],"prefill":[4],"bgColor":[1,"bg-color"],"showSeconds":[4,"show-seconds"],"disabled":[4],"readonly":[4],"error":[1],"hideDetails":[8,"hide-details"],"required":[4],"isOpen":[32],"inputText":[32],"hours":[32],"minutes":[32],"seconds":[32],"period":[32],"lastGoodValue":[32]},[[4,"click","handleDocumentClick"]]],[1,"xplor-avatar",{"color":[1],"disabled":[4],"href":[1],"name":[1],"size":[1],"src":[1],"status":[1],"target":[1]}],[1,"xplor-dropdown",{"options":[16],"selected":[1],"handleChange":[16,"handle-change"]}],[2,"xplor-inline-date-picker",{"selectedDate":[1025,"selected-date"],"min":[1],"max":[1],"readonly":[4],"color":[1],"startWeekOnSunday":[4,"start-week-on-sunday"],"currentYear":[32],"currentMonth":[32],"viewDate":[32]}],[6,"xplor-modal",{"open":[1028],"width":[1],"maxWidth":[1,"max-width"],"maxHeight":[1,"max-height"],"scrollable":[4],"persistent":[4],"loading":[4],"showTitle":[4,"show-title"]},null,{"open":["handleOpenChange"]}],[6,"xplor-tooltip",{"position":[1],"trigger":[1],"arrow":[4],"open":[1028],"content":[1],"disabled":[4],"tooltipStyle":[32],"arrowStyle":[32]},[[4,"click","handleDocumentClick"]]],[6,"xplor-button",{"text":[1],"type":[1],"mode":[1],"size":[1],"styles":[1],"clickAction":[16,"click-action"],"iconPosition":[1,"icon-position"],"icon":[1],"iconSvg":[1,"icon-svg"]}]]]], options);
|
|
22
22
|
});
|
|
23
23
|
|
|
24
24
|
exports.setNonce = index.setNonce;
|
|
@@ -51,6 +51,7 @@
|
|
|
51
51
|
"components/xplor-links/xplor-links.js",
|
|
52
52
|
"components/xplor-modal/xplor-modal.js",
|
|
53
53
|
"components/xplor-modal-persistent/xplor-modal-persistent.js",
|
|
54
|
+
"components/xplor-radio-btn/xplor-radio-btn.js",
|
|
54
55
|
"components/xplor-section-card/xplor-section-card.js",
|
|
55
56
|
"components/xplor-section-heading/xplor-section-heading.js",
|
|
56
57
|
"components/xplor-table/xplor-table.js",
|
|
@@ -1050,7 +1050,7 @@ ul.mdc-list li.mdc-list-item {
|
|
|
1050
1050
|
display: block;
|
|
1051
1051
|
}
|
|
1052
1052
|
|
|
1053
|
-
.drag-drop-
|
|
1053
|
+
.drag-drop-zone {
|
|
1054
1054
|
position: relative;
|
|
1055
1055
|
padding-bottom: 2.5rem;
|
|
1056
1056
|
}
|
|
@@ -1060,21 +1060,22 @@ ul.mdc-list li.mdc-list-item {
|
|
|
1060
1060
|
}
|
|
1061
1061
|
|
|
1062
1062
|
.drag-drop-card {
|
|
1063
|
-
background-color:
|
|
1063
|
+
background-color: #f5f5f5;
|
|
1064
1064
|
border-radius: 8px;
|
|
1065
|
-
border:
|
|
1066
|
-
min-height:
|
|
1067
|
-
padding: 1rem 1.5rem
|
|
1065
|
+
border: 2px dashed var(--color-secondary);
|
|
1066
|
+
min-height: 160px;
|
|
1067
|
+
padding: 1rem 1.5rem 2rem;
|
|
1068
1068
|
text-align: center;
|
|
1069
1069
|
transition: all 0.2s ease;
|
|
1070
1070
|
cursor: default;
|
|
1071
1071
|
}
|
|
1072
1072
|
.drag-drop-card:hover:not(.drag-drop-card--disabled) {
|
|
1073
1073
|
border-color: var(--color-secondary);
|
|
1074
|
+
background-color: #eeeeee;
|
|
1074
1075
|
}
|
|
1075
1076
|
.drag-drop-card--dragover {
|
|
1076
|
-
border:
|
|
1077
|
-
background-color:
|
|
1077
|
+
border: 2px dashed var(--color-secondary);
|
|
1078
|
+
background-color: #eeeeee;
|
|
1078
1079
|
}
|
|
1079
1080
|
.drag-drop-card--disabled {
|
|
1080
1081
|
opacity: 0.6;
|
|
@@ -1085,22 +1086,22 @@ ul.mdc-list li.mdc-list-item {
|
|
|
1085
1086
|
display: flex;
|
|
1086
1087
|
flex-direction: column;
|
|
1087
1088
|
align-items: center;
|
|
1088
|
-
gap:
|
|
1089
|
-
padding: 0.
|
|
1089
|
+
gap: 0.25rem;
|
|
1090
|
+
padding: 0.25rem 0 0;
|
|
1090
1091
|
}
|
|
1091
1092
|
|
|
1092
1093
|
.drag-drop-card__icon {
|
|
1093
1094
|
color: var(--color-secondary);
|
|
1094
|
-
width:
|
|
1095
|
-
height:
|
|
1095
|
+
width: 40px;
|
|
1096
|
+
height: 40px;
|
|
1096
1097
|
}
|
|
1097
1098
|
|
|
1098
1099
|
.drag-drop-card__title {
|
|
1099
1100
|
color: #000000;
|
|
1100
1101
|
font-family: Inter, sans-serif;
|
|
1101
|
-
font-size:
|
|
1102
|
+
font-size: 18px;
|
|
1102
1103
|
font-weight: 700;
|
|
1103
|
-
line-height:
|
|
1104
|
+
line-height: 24px;
|
|
1104
1105
|
letter-spacing: 0;
|
|
1105
1106
|
margin: 0;
|
|
1106
1107
|
}
|
|
@@ -1122,24 +1123,127 @@ ul.mdc-list li.mdc-list-item {
|
|
|
1122
1123
|
transform: translateX(-50%);
|
|
1123
1124
|
}
|
|
1124
1125
|
|
|
1125
|
-
.
|
|
1126
|
-
margin-top:
|
|
1127
|
-
|
|
1126
|
+
.file-info {
|
|
1127
|
+
margin-top: 1.5rem;
|
|
1128
|
+
}
|
|
1129
|
+
|
|
1130
|
+
.file-info__status {
|
|
1128
1131
|
font-family: Inter, sans-serif;
|
|
1129
1132
|
font-size: 14px;
|
|
1130
1133
|
font-weight: 400;
|
|
1131
1134
|
line-height: 20px;
|
|
1132
|
-
|
|
1133
|
-
|
|
1135
|
+
color: #616161;
|
|
1136
|
+
margin: 0 0 0.5rem 0;
|
|
1137
|
+
}
|
|
1138
|
+
|
|
1139
|
+
.file-info__card {
|
|
1140
|
+
display: flex;
|
|
1141
|
+
align-items: flex-start;
|
|
1142
|
+
gap: 0.75rem;
|
|
1143
|
+
background-color: #ffffff;
|
|
1144
|
+
border: 1px solid #e0e0e0;
|
|
1145
|
+
border-radius: 8px;
|
|
1146
|
+
padding: 0.75rem 1rem;
|
|
1147
|
+
}
|
|
1148
|
+
|
|
1149
|
+
.file-info__icon {
|
|
1150
|
+
flex-shrink: 0;
|
|
1151
|
+
display: flex;
|
|
1152
|
+
align-items: center;
|
|
1153
|
+
justify-content: center;
|
|
1154
|
+
width: 40px;
|
|
1155
|
+
height: 40px;
|
|
1156
|
+
border-radius: 8px;
|
|
1157
|
+
background-color: var(--color-secondary-50, #f3e5f5);
|
|
1158
|
+
color: var(--color-secondary);
|
|
1159
|
+
}
|
|
1160
|
+
|
|
1161
|
+
.file-info__details {
|
|
1162
|
+
flex: 1;
|
|
1163
|
+
min-width: 0;
|
|
1164
|
+
}
|
|
1165
|
+
|
|
1166
|
+
.file-info__name {
|
|
1167
|
+
font-family: Inter, sans-serif;
|
|
1168
|
+
font-size: 14px;
|
|
1169
|
+
font-weight: 600;
|
|
1170
|
+
line-height: 20px;
|
|
1171
|
+
color: #000000;
|
|
1172
|
+
margin: 0;
|
|
1173
|
+
overflow: hidden;
|
|
1174
|
+
text-overflow: ellipsis;
|
|
1175
|
+
white-space: nowrap;
|
|
1176
|
+
}
|
|
1177
|
+
|
|
1178
|
+
.file-info__meta {
|
|
1179
|
+
font-family: Inter, sans-serif;
|
|
1180
|
+
font-size: 12px;
|
|
1181
|
+
font-weight: 400;
|
|
1182
|
+
line-height: 18px;
|
|
1183
|
+
color: var(--color-secondary);
|
|
1184
|
+
margin: 0.25rem 0 0 0;
|
|
1185
|
+
}
|
|
1186
|
+
|
|
1187
|
+
.file-info__progress-row {
|
|
1188
|
+
display: flex;
|
|
1189
|
+
align-items: center;
|
|
1190
|
+
gap: 0.5rem;
|
|
1191
|
+
margin-top: 0.5rem;
|
|
1192
|
+
}
|
|
1193
|
+
|
|
1194
|
+
.file-info__progress-bar {
|
|
1195
|
+
flex: 1;
|
|
1196
|
+
height: 6px;
|
|
1197
|
+
background-color: #eeeeee;
|
|
1198
|
+
border-radius: 3px;
|
|
1199
|
+
overflow: hidden;
|
|
1200
|
+
}
|
|
1201
|
+
|
|
1202
|
+
.file-info__progress-fill {
|
|
1203
|
+
height: 100%;
|
|
1204
|
+
background-color: var(--color-secondary);
|
|
1205
|
+
border-radius: 3px;
|
|
1206
|
+
transition: width 0.3s ease;
|
|
1207
|
+
}
|
|
1208
|
+
|
|
1209
|
+
.file-info__progress-text {
|
|
1210
|
+
font-family: Inter, sans-serif;
|
|
1211
|
+
font-size: 12px;
|
|
1212
|
+
font-weight: 400;
|
|
1213
|
+
line-height: 18px;
|
|
1214
|
+
color: #757575;
|
|
1215
|
+
flex-shrink: 0;
|
|
1216
|
+
min-width: 32px;
|
|
1217
|
+
text-align: right;
|
|
1218
|
+
}
|
|
1219
|
+
|
|
1220
|
+
.file-info__remove {
|
|
1221
|
+
flex-shrink: 0;
|
|
1222
|
+
display: flex;
|
|
1223
|
+
align-items: center;
|
|
1224
|
+
justify-content: center;
|
|
1225
|
+
width: 32px;
|
|
1226
|
+
height: 32px;
|
|
1227
|
+
border-radius: 50%;
|
|
1228
|
+
border: none;
|
|
1229
|
+
background-color: #eeeeee;
|
|
1230
|
+
color: #757575;
|
|
1231
|
+
cursor: pointer;
|
|
1232
|
+
padding: 0;
|
|
1233
|
+
transition: background-color 0.2s ease;
|
|
1234
|
+
}
|
|
1235
|
+
.file-info__remove:hover {
|
|
1236
|
+
background-color: #e0e0e0;
|
|
1237
|
+
color: #424242;
|
|
1134
1238
|
}
|
|
1135
1239
|
|
|
1136
1240
|
@media (max-width: 768px) {
|
|
1137
1241
|
.drag-drop-card {
|
|
1138
|
-
min-height:
|
|
1242
|
+
min-height: 140px;
|
|
1139
1243
|
}
|
|
1140
1244
|
.drag-drop-card__title {
|
|
1141
|
-
font-size:
|
|
1142
|
-
line-height:
|
|
1245
|
+
font-size: 16px;
|
|
1246
|
+
line-height: 22px;
|
|
1143
1247
|
}
|
|
1144
1248
|
.drag-drop-card__accepts,
|
|
1145
1249
|
.drag-drop-card__divider {
|
|
@@ -13,11 +13,15 @@ export class XplorDragAndDropInput {
|
|
|
13
13
|
/**
|
|
14
14
|
* Instruction text displayed in the drop zone
|
|
15
15
|
*/
|
|
16
|
-
this.label = 'Drag and drop your
|
|
16
|
+
this.label = 'Drag and drop your files here';
|
|
17
17
|
/**
|
|
18
18
|
* Browse button label text
|
|
19
19
|
*/
|
|
20
20
|
this.browseLabel = 'Browse Files';
|
|
21
|
+
/**
|
|
22
|
+
* Upload progress percentage (0-100). Set to -1 or leave undefined to hide the progress bar.
|
|
23
|
+
*/
|
|
24
|
+
this.progress = -1;
|
|
21
25
|
this.dragover = false;
|
|
22
26
|
this.currentFile = null;
|
|
23
27
|
this.onDrop = (e) => {
|
|
@@ -73,6 +77,34 @@ export class XplorDragAndDropInput {
|
|
|
73
77
|
}
|
|
74
78
|
return accepts;
|
|
75
79
|
};
|
|
80
|
+
this.formatFileSize = (bytes) => {
|
|
81
|
+
if (bytes === 0)
|
|
82
|
+
return '0 Bytes';
|
|
83
|
+
const k = 1024;
|
|
84
|
+
const sizes = ['Bytes', 'KB', 'MB', 'GB'];
|
|
85
|
+
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
86
|
+
return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];
|
|
87
|
+
};
|
|
88
|
+
this.formatDate = (timestamp) => {
|
|
89
|
+
const date = new Date(timestamp);
|
|
90
|
+
const day = date.getDate();
|
|
91
|
+
const months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
|
|
92
|
+
const month = months[date.getMonth()];
|
|
93
|
+
const year = date.getFullYear();
|
|
94
|
+
const suffix = (day === 1 || day === 21 || day === 31) ? 'st'
|
|
95
|
+
: (day === 2 || day === 22) ? 'nd'
|
|
96
|
+
: (day === 3 || day === 23) ? 'rd'
|
|
97
|
+
: 'th';
|
|
98
|
+
const hours = date.getHours();
|
|
99
|
+
const minutes = date.getMinutes().toString().padStart(2, '0');
|
|
100
|
+
const seconds = date.getSeconds().toString().padStart(2, '0');
|
|
101
|
+
const ampm = hours >= 12 ? 'PM' : 'AM';
|
|
102
|
+
const displayHours = hours % 12 || 12;
|
|
103
|
+
return `${day}${suffix} ${month} ${year}, ${displayHours}:${minutes}:${seconds} ${ampm}`;
|
|
104
|
+
};
|
|
105
|
+
this.showProgress = () => {
|
|
106
|
+
return this.progress >= 0 && this.progress <= 100;
|
|
107
|
+
};
|
|
76
108
|
}
|
|
77
109
|
/**
|
|
78
110
|
* Clears the currently selected file
|
|
@@ -85,11 +117,13 @@ export class XplorDragAndDropInput {
|
|
|
85
117
|
this.fileClear.emit();
|
|
86
118
|
}
|
|
87
119
|
render() {
|
|
88
|
-
return (h(Host, { key: '
|
|
120
|
+
return (h(Host, { key: '1996cf8e0d65afed803bb07a2f7a54adb5bbfaa5' }, h("div", { key: '6fcf52a709e3d6b7e64583f201260e1841076cef', class: "drag-drop-zone" }, h("div", { key: 'a9c8bd35981166cf075bd9f0d215914ff87a0ff0', class: {
|
|
89
121
|
'drag-drop-card': true,
|
|
90
122
|
'drag-drop-card--dragover': this.dragover,
|
|
91
123
|
'drag-drop-card--disabled': this.disabled,
|
|
92
|
-
}, onDrop: this.onDrop, onDragOver: this.onDragOver, onDragEnter: this.onDragEnter, onDragLeave: this.onDragLeave }, h("div", { key: '
|
|
124
|
+
}, onDrop: this.onDrop, onDragOver: this.onDragOver, onDragEnter: this.onDragEnter, onDragLeave: this.onDragLeave }, h("div", { key: 'eec73d07cce31d43151a6af27a584f764cf104ec', class: "drag-drop-card__content" }, h("svg", { key: '75fe85db121bdf98d91872f847235e42f3505021', class: "drag-drop-card__icon", xmlns: "http://www.w3.org/2000/svg", width: "40", height: "40", viewBox: "0 0 24 24", fill: "none" }, h("path", { key: '454bda7cf271281374b965182d15120ab00059e1', d: "M19.35 10.04C18.67 6.59 15.64 4 12 4C9.11 4 6.6 5.64 5.35 8.04C2.34 8.36 0 10.91 0 14C0 17.31 2.69 20 6 20H19C21.76 20 24 17.76 24 15C24 12.36 21.95 10.22 19.35 10.04Z", fill: "currentColor", opacity: "0.3" }), h("path", { key: '8bc44934968795b791cd4183e18f3d72f7a195de', d: "M19.35 10.04C18.67 6.59 15.64 4 12 4C9.11 4 6.6 5.64 5.35 8.04C2.34 8.36 0 10.91 0 14C0 17.31 2.69 20 6 20H19C21.76 20 24 17.76 24 15C24 12.36 21.95 10.22 19.35 10.04ZM14 13V17H10V13H7L12 8L17 13H14Z", fill: "currentColor" })), h("h3", { key: 'e17238c5e6bdb38ef75c5513c88154696a046273', class: "drag-drop-card__title" }, this.label), h("p", { key: 'b6aa94f6624a1fb09a56ca26dd31981aa56c3e8a', class: "drag-drop-card__accepts" }, "Accepted file types: ", this.getAcceptsLabel()), h("p", { key: '0a6cb23bff2f8512e961cf3fae65463aec2f829e', class: "drag-drop-card__divider" }, "or"))), h("div", { key: '8ad03f8da13062f5915005c80f88d41d4adc7e83', class: "drag-drop-card__action" }, h("xplor-button", { key: '37dd6e0f4d61a6e4aa3e0648227b5c06b101d7f3', text: this.browseLabel, type: this.disabled ? 'disabled' : 'secondary', clickAction: this.openFileDialog }))), this.currentFile && (h("div", { key: '7ab8ffd9e6fa79c3adb83127c2263dbf1c8356af', class: "file-info" }, this.showProgress() && (h("p", { key: '34e1f54d42c866012faad5462935400ad64fd69a', class: "file-info__status" }, "Uploading ", this.progress === 100 ? '1' : '0', " / 1")), h("div", { key: '891749a5bc2d928226cdcdf855b992a94c46ec0e', class: "file-info__card" }, h("div", { key: 'df6230a7fed1e37536756d0d2ca79a7fa0f3f3b0', class: "file-info__icon" }, h("svg", { key: '6f740a420e16cf0b8e1a008ac1e69a5356db1789', xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "currentColor" }, h("path", { key: '0cc9aa35e50ec4c04662abcef793175d56337e71', d: "M14 2H6C4.9 2 4 2.9 4 4V20C4 21.1 4.9 22 6 22H18C19.1 22 20 21.1 20 20V8L14 2ZM6 20V4H13V9H18V20H6Z" }))), h("div", { key: 'cf0dc9b9592721a4e488fb852515273bdb5f75ad', class: "file-info__details" }, h("p", { key: '082e3dc60b75a1b889c3390c140e32e232b57bff', class: "file-info__name" }, this.currentFile.name), h("p", { key: '79da132f579221a718e4725e12dff7efb7b5f82f', class: "file-info__meta" }, this.formatFileSize(this.currentFile.size), this.currentFile.lastModified
|
|
125
|
+
? ` | Last modified: ${this.formatDate(this.currentFile.lastModified)}`
|
|
126
|
+
: ''), this.showProgress() && (h("div", { key: 'ff641e3fb53d0089c9392f1c77e7943783fa4745', class: "file-info__progress-row" }, h("div", { key: '57bade7b09cd9700d6cdfe123b79b1f59d049b3e', class: "file-info__progress-bar" }, h("div", { key: '8119c5937118adab06ae53257374964ced4b8446', class: "file-info__progress-fill", style: { width: `${Math.min(Math.max(this.progress, 0), 100)}%` } })), h("span", { key: 'dca1ccade071119e10b724a8d0047ec966c78ed4', class: "file-info__progress-text" }, Math.round(this.progress), "%")))), h("button", { key: 'e9142fab6e8f708cdd6063c6ff3659bd8e6f77e6', class: "file-info__remove", onClick: () => this.clearCurrentFile(), "aria-label": "Remove file" }, h("svg", { key: 'bc48ad8ce10fbed57c5bcbed53d8f2931461b90e', xmlns: "http://www.w3.org/2000/svg", width: "18", height: "18", viewBox: "0 0 24 24", fill: "currentColor" }, h("path", { key: '514e5299c4f288807c557035a0fa6c28fa770e3d', d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12Z" })))))), h("input", { key: '38d92776629e98032272631ed3a26a018c2ea7cc', id: "drag-drop-file-select", type: "file", disabled: this.disabled, accept: this.accepts, class: "drag-drop-input-hidden", ref: (el) => (this.fileInputEl = el), onChange: this.onFileSelect })));
|
|
93
127
|
}
|
|
94
128
|
static get is() { return "xplor-drag-and-drop-input"; }
|
|
95
129
|
static get encapsulation() { return "scoped"; }
|
|
@@ -163,7 +197,7 @@ export class XplorDragAndDropInput {
|
|
|
163
197
|
"getter": false,
|
|
164
198
|
"setter": false,
|
|
165
199
|
"reflect": false,
|
|
166
|
-
"defaultValue": "'Drag and drop your
|
|
200
|
+
"defaultValue": "'Drag and drop your files here'"
|
|
167
201
|
},
|
|
168
202
|
"browseLabel": {
|
|
169
203
|
"type": "string",
|
|
@@ -184,6 +218,26 @@ export class XplorDragAndDropInput {
|
|
|
184
218
|
"setter": false,
|
|
185
219
|
"reflect": false,
|
|
186
220
|
"defaultValue": "'Browse Files'"
|
|
221
|
+
},
|
|
222
|
+
"progress": {
|
|
223
|
+
"type": "number",
|
|
224
|
+
"attribute": "progress",
|
|
225
|
+
"mutable": false,
|
|
226
|
+
"complexType": {
|
|
227
|
+
"original": "number",
|
|
228
|
+
"resolved": "number",
|
|
229
|
+
"references": {}
|
|
230
|
+
},
|
|
231
|
+
"required": false,
|
|
232
|
+
"optional": false,
|
|
233
|
+
"docs": {
|
|
234
|
+
"tags": [],
|
|
235
|
+
"text": "Upload progress percentage (0-100). Set to -1 or leave undefined to hide the progress bar."
|
|
236
|
+
},
|
|
237
|
+
"getter": false,
|
|
238
|
+
"setter": false,
|
|
239
|
+
"reflect": false,
|
|
240
|
+
"defaultValue": "-1"
|
|
187
241
|
}
|
|
188
242
|
};
|
|
189
243
|
}
|
package/dist/collection/components/xplor-drag-and-drop-input/xplor-drag-and-drop-input.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xplor-drag-and-drop-input.js","sourceRoot":"","sources":["../../../src/components/xplor-drag-and-drop-input/xplor-drag-and-drop-input.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, Prop, State, Event, EventEmitter, Method } from '@stencil/core';\n\nconst DEFAULT_ACCEPT_ALL = '*' + '/' + '*';\n\n@Component({\n tag: 'xplor-drag-and-drop-input',\n styleUrl: 'xplor-drag-and-drop-input.scss',\n scoped: true,\n})\nexport class XplorDragAndDropInput {\n /**\n * Disable the file upload\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Accepted file types (e.g., 'image/png,.pdf')\n */\n @Prop() accepts: string = DEFAULT_ACCEPT_ALL;\n\n /**\n * Instruction text displayed in the drop zone\n */\n @Prop() label: string = 'Drag and drop your file here';\n\n /**\n * Browse button label text\n */\n @Prop() browseLabel: string = 'Browse Files';\n\n @State() dragover: boolean = false;\n @State() currentFile: File | null = null;\n\n /**\n * Emitted when a file is selected via drop or click\n */\n @Event() fileSelect: EventEmitter<File>;\n\n /**\n * Emitted when the current file is cleared\n */\n @Event() fileClear: EventEmitter<void>;\n\n private fileInputEl: HTMLInputElement;\n\n /**\n * Clears the currently selected file\n */\n @Method()\n async clearCurrentFile() {\n this.currentFile = null;\n if (this.fileInputEl) {\n this.fileInputEl.value = '';\n }\n this.fileClear.emit();\n }\n\n private onDrop = (e: DragEvent) => {\n e.preventDefault();\n this.dragover = false;\n\n if (this.disabled) return;\n\n const file = e.dataTransfer?.files?.[0];\n if (file) {\n this.currentFile = file;\n this.fileSelect.emit(this.currentFile);\n }\n };\n\n private onDragOver = (e: DragEvent) => {\n e.preventDefault();\n if (!this.disabled) {\n this.dragover = true;\n }\n };\n\n private onDragEnter = (e: DragEvent) => {\n e.preventDefault();\n if (!this.disabled) {\n this.dragover = true;\n }\n };\n\n private onDragLeave = (e: DragEvent) => {\n e.preventDefault();\n this.dragover = false;\n };\n\n private onFileSelect = (e: Event) => {\n const input = e.target as HTMLInputElement;\n const file = input.files?.[0];\n if (file) {\n this.currentFile = file;\n this.fileSelect.emit(this.currentFile);\n }\n input.value = '';\n };\n\n private openFileDialog = () => {\n if (this.disabled) {\n return;\n }\n\n this.fileInputEl?.click();\n };\n\n private getAcceptsLabel = () => {\n const accepts = this.accepts?.trim();\n if (!accepts || accepts === DEFAULT_ACCEPT_ALL) {\n return '*';\n }\n\n return accepts;\n };\n\n render() {\n return (\n <Host>\n <div class=\"drag-drop-wrapper\">\n <div\n class={{\n 'drag-drop-card': true,\n 'drag-drop-card--dragover': this.dragover,\n 'drag-drop-card--disabled': this.disabled,\n }}\n onDrop={this.onDrop}\n onDragOver={this.onDragOver}\n onDragEnter={this.onDragEnter}\n onDragLeave={this.onDragLeave}\n >\n <div class=\"drag-drop-card__content\">\n <svg\n class=\"drag-drop-card__icon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"60\"\n height=\"60\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n >\n <path\n d=\"M19.35 10.04C18.67 6.59 15.64 4 12 4C9.11 4 6.6 5.64 5.35 8.04C2.34 8.36 0 10.91 0 14C0 17.31 2.69 20 6 20H19C21.76 20 24 17.76 24 15C24 12.36 21.95 10.22 19.35 10.04Z\"\n fill=\"currentColor\"\n opacity=\"0.3\"\n />\n <path\n d=\"M19.35 10.04C18.67 6.59 15.64 4 12 4C9.11 4 6.6 5.64 5.35 8.04C2.34 8.36 0 10.91 0 14C0 17.31 2.69 20 6 20H19C21.76 20 24 17.76 24 15C24 12.36 21.95 10.22 19.35 10.04ZM14 13V17H10V13H7L12 8L17 13H14Z\"\n fill=\"currentColor\"\n />\n </svg>\n <h3 class=\"drag-drop-card__title\">{this.label}</h3>\n <p class=\"drag-drop-card__accepts\">Accepted file types: {this.getAcceptsLabel()}</p>\n <p class=\"drag-drop-card__divider\">or</p>\n </div>\n </div>\n\n <div class=\"drag-drop-card__action\">\n <xplor-button\n text={this.browseLabel}\n type={this.disabled ? 'disabled' : 'secondary'}\n clickAction={this.openFileDialog}\n ></xplor-button>\n </div>\n\n {this.currentFile && (\n <div class=\"drag-drop-card__file-info\">\n File Selected: {this.currentFile.name}\n </div>\n )}\n </div>\n\n <input\n id=\"drag-drop-file-select\"\n type=\"file\"\n disabled={this.disabled}\n accept={this.accepts}\n class=\"drag-drop-input-hidden\"\n ref={(el) => (this.fileInputEl = el)}\n onChange={this.onFileSelect}\n />\n </Host>\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"xplor-drag-and-drop-input.js","sourceRoot":"","sources":["../../../src/components/xplor-drag-and-drop-input/xplor-drag-and-drop-input.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, Prop, State, Event, EventEmitter, Method } from '@stencil/core';\n\nconst DEFAULT_ACCEPT_ALL = '*' + '/' + '*';\n\n@Component({\n tag: 'xplor-drag-and-drop-input',\n styleUrl: 'xplor-drag-and-drop-input.scss',\n scoped: true,\n})\nexport class XplorDragAndDropInput {\n /**\n * Disable the file upload\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Accepted file types (e.g., 'image/png,.pdf')\n */\n @Prop() accepts: string = DEFAULT_ACCEPT_ALL;\n\n /**\n * Instruction text displayed in the drop zone\n */\n @Prop() label: string = 'Drag and drop your files here';\n\n /**\n * Browse button label text\n */\n @Prop() browseLabel: string = 'Browse Files';\n\n /**\n * Upload progress percentage (0-100). Set to -1 or leave undefined to hide the progress bar.\n */\n @Prop() progress: number = -1;\n\n @State() dragover: boolean = false;\n @State() currentFile: File | null = null;\n\n /**\n * Emitted when a file is selected via drop or click\n */\n @Event() fileSelect: EventEmitter<File>;\n\n /**\n * Emitted when the current file is cleared\n */\n @Event() fileClear: EventEmitter<void>;\n\n private fileInputEl: HTMLInputElement;\n\n /**\n * Clears the currently selected file\n */\n @Method()\n async clearCurrentFile() {\n this.currentFile = null;\n if (this.fileInputEl) {\n this.fileInputEl.value = '';\n }\n this.fileClear.emit();\n }\n\n private onDrop = (e: DragEvent) => {\n e.preventDefault();\n this.dragover = false;\n\n if (this.disabled) return;\n\n const file = e.dataTransfer?.files?.[0];\n if (file) {\n this.currentFile = file;\n this.fileSelect.emit(this.currentFile);\n }\n };\n\n private onDragOver = (e: DragEvent) => {\n e.preventDefault();\n if (!this.disabled) {\n this.dragover = true;\n }\n };\n\n private onDragEnter = (e: DragEvent) => {\n e.preventDefault();\n if (!this.disabled) {\n this.dragover = true;\n }\n };\n\n private onDragLeave = (e: DragEvent) => {\n e.preventDefault();\n this.dragover = false;\n };\n\n private onFileSelect = (e: Event) => {\n const input = e.target as HTMLInputElement;\n const file = input.files?.[0];\n if (file) {\n this.currentFile = file;\n this.fileSelect.emit(this.currentFile);\n }\n input.value = '';\n };\n\n private openFileDialog = () => {\n if (this.disabled) {\n return;\n }\n\n this.fileInputEl?.click();\n };\n\n private getAcceptsLabel = () => {\n const accepts = this.accepts?.trim();\n if (!accepts || accepts === DEFAULT_ACCEPT_ALL) {\n return '*';\n }\n\n return accepts;\n };\n\n private formatFileSize = (bytes: number): string => {\n if (bytes === 0) return '0 Bytes';\n const k = 1024;\n const sizes = ['Bytes', 'KB', 'MB', 'GB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];\n };\n\n private formatDate = (timestamp: number): string => {\n const date = new Date(timestamp);\n const day = date.getDate();\n const months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n const month = months[date.getMonth()];\n const year = date.getFullYear();\n\n const suffix = (day === 1 || day === 21 || day === 31) ? 'st'\n : (day === 2 || day === 22) ? 'nd'\n : (day === 3 || day === 23) ? 'rd'\n : 'th';\n\n const hours = date.getHours();\n const minutes = date.getMinutes().toString().padStart(2, '0');\n const seconds = date.getSeconds().toString().padStart(2, '0');\n const ampm = hours >= 12 ? 'PM' : 'AM';\n const displayHours = hours % 12 || 12;\n\n return `${day}${suffix} ${month} ${year}, ${displayHours}:${minutes}:${seconds} ${ampm}`;\n };\n\n private showProgress = (): boolean => {\n return this.progress >= 0 && this.progress <= 100;\n };\n\n render() {\n return (\n <Host>\n <div class=\"drag-drop-zone\">\n <div\n class={{\n 'drag-drop-card': true,\n 'drag-drop-card--dragover': this.dragover,\n 'drag-drop-card--disabled': this.disabled,\n }}\n onDrop={this.onDrop}\n onDragOver={this.onDragOver}\n onDragEnter={this.onDragEnter}\n onDragLeave={this.onDragLeave}\n >\n <div class=\"drag-drop-card__content\">\n <svg\n class=\"drag-drop-card__icon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"40\"\n height=\"40\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n >\n <path\n d=\"M19.35 10.04C18.67 6.59 15.64 4 12 4C9.11 4 6.6 5.64 5.35 8.04C2.34 8.36 0 10.91 0 14C0 17.31 2.69 20 6 20H19C21.76 20 24 17.76 24 15C24 12.36 21.95 10.22 19.35 10.04Z\"\n fill=\"currentColor\"\n opacity=\"0.3\"\n />\n <path\n d=\"M19.35 10.04C18.67 6.59 15.64 4 12 4C9.11 4 6.6 5.64 5.35 8.04C2.34 8.36 0 10.91 0 14C0 17.31 2.69 20 6 20H19C21.76 20 24 17.76 24 15C24 12.36 21.95 10.22 19.35 10.04ZM14 13V17H10V13H7L12 8L17 13H14Z\"\n fill=\"currentColor\"\n />\n </svg>\n <h3 class=\"drag-drop-card__title\">{this.label}</h3>\n <p class=\"drag-drop-card__accepts\">Accepted file types: {this.getAcceptsLabel()}</p>\n <p class=\"drag-drop-card__divider\">or</p>\n </div>\n </div>\n\n <div class=\"drag-drop-card__action\">\n <xplor-button\n text={this.browseLabel}\n type={this.disabled ? 'disabled' : 'secondary'}\n clickAction={this.openFileDialog}\n ></xplor-button>\n </div>\n </div>\n\n {this.currentFile && (\n <div class=\"file-info\">\n {this.showProgress() && (\n <p class=\"file-info__status\">\n Uploading {this.progress === 100 ? '1' : '0'} / 1\n </p>\n )}\n <div class=\"file-info__card\">\n <div class=\"file-info__icon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path d=\"M14 2H6C4.9 2 4 2.9 4 4V20C4 21.1 4.9 22 6 22H18C19.1 22 20 21.1 20 20V8L14 2ZM6 20V4H13V9H18V20H6Z\" />\n </svg>\n </div>\n <div class=\"file-info__details\">\n <p class=\"file-info__name\">{this.currentFile.name}</p>\n <p class=\"file-info__meta\">\n {this.formatFileSize(this.currentFile.size)}\n {this.currentFile.lastModified\n ? ` | Last modified: ${this.formatDate(this.currentFile.lastModified)}`\n : ''}\n </p>\n {this.showProgress() && (\n <div class=\"file-info__progress-row\">\n <div class=\"file-info__progress-bar\">\n <div\n class=\"file-info__progress-fill\"\n style={{ width: `${Math.min(Math.max(this.progress, 0), 100)}%` }}\n ></div>\n </div>\n <span class=\"file-info__progress-text\">{Math.round(this.progress)}%</span>\n </div>\n )}\n </div>\n <button\n class=\"file-info__remove\"\n onClick={() => this.clearCurrentFile()}\n aria-label=\"Remove file\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12Z\" />\n </svg>\n </button>\n </div>\n </div>\n )}\n\n <input\n id=\"drag-drop-file-select\"\n type=\"file\"\n disabled={this.disabled}\n accept={this.accepts}\n class=\"drag-drop-input-hidden\"\n ref={(el) => (this.fileInputEl = el)}\n onChange={this.onFileSelect}\n />\n </Host>\n );\n }\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Host, h } from "@stencil/core";
|
|
2
2
|
export class XplorDropdown {
|
|
3
3
|
render() {
|
|
4
|
-
return (h(Host, { key: '
|
|
4
|
+
return (h(Host, { key: 'bfd5bc76c18f4c7882ec47389978338eec81b1d1' }, h("select", { key: '54310c80fdda944ca6d9cc8faaf643e79d4a5f32', class: "xplor-dropdown", onChange: this.handleChange }, this.options.map((option) => (h("option", { value: option, selected: this.selected === option }, option))))));
|
|
5
5
|
}
|
|
6
6
|
static get is() { return "xplor-dropdown"; }
|
|
7
7
|
static get encapsulation() { return "shadow"; }
|
|
@@ -26,16 +26,16 @@ export class XplorExpansionPanel {
|
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
render() {
|
|
29
|
-
return (h(Host, { key: '
|
|
29
|
+
return (h(Host, { key: 'f2b19e6a1ad6315341e0840e2c000a1123caa7e0' }, h("div", { key: '1cb9ca368efb2f9e16c64c3987546f3d16981a2b', class: {
|
|
30
30
|
'expansion-panel': true,
|
|
31
31
|
'expansion-panel--open': this.open,
|
|
32
32
|
'expansion-panel--disabled': this.disabled,
|
|
33
|
-
} }, h("button", { key: '
|
|
33
|
+
} }, h("button", { key: '4970230eb38600f662441cf741b1266af1c94221', class: "expansion-panel__header", onClick: this.handleToggle, disabled: this.disabled, "aria-expanded": this.open ? 'true' : 'false', type: "button" }, h("div", { key: '5e3330870f44e2f0d0e9546cc3921f999c585ad2', class: "expansion-panel__header-content" }, h("slot", { key: 'f8cf1d3dcc8201c311adb40544adc59dc10643b2', name: "header" })), h("span", { key: 'bed27404d65c83a0aed80b6f63847a3b221756c4', class: {
|
|
34
34
|
'expansion-panel__icon': true,
|
|
35
35
|
'expansion-panel__icon--open': this.open,
|
|
36
|
-
} }, "\u25BC")), h("div", { key: '
|
|
36
|
+
} }, "\u25BC")), h("div", { key: '2c39930ed945844bde37acd8eb76cc5d321fb9e1', class: "expansion-panel__content", style: {
|
|
37
37
|
maxHeight: this.open ? `${this.contentHeight}px` : '0',
|
|
38
|
-
} }, h("div", { key: '
|
|
38
|
+
} }, h("div", { key: 'db622a60396115228e0a3929f1a0765b7a0bf87f', class: "expansion-panel__content-inner", ref: (el) => (this.contentEl = el) }, h("slot", { key: 'd88edfbce0ab807cdb3d21230e1e97caf6183cce' }))))));
|
|
39
39
|
}
|
|
40
40
|
static get is() { return "xplor-expansion-panel"; }
|
|
41
41
|
static get encapsulation() { return "scoped"; }
|
|
@@ -33,7 +33,7 @@ export class XplorExpansionPanels {
|
|
|
33
33
|
this.value = this.multiple ? Array.from(this.openPanels) : Array.from(this.openPanels)[0] || '';
|
|
34
34
|
}
|
|
35
35
|
render() {
|
|
36
|
-
return (h(Host, { key: '
|
|
36
|
+
return (h(Host, { key: 'c55c8eef4f6f134c83f2f8dffcb434401596a095' }, h("div", { key: '6611efdac4749c89180d34af7893577e09356ed1', class: "expansion-panels" }, h("slot", { key: 'ef8283e142cbd8fd6535c85a939455d99bdcc33e' }))));
|
|
37
37
|
}
|
|
38
38
|
static get is() { return "xplor-expansion-panels"; }
|
|
39
39
|
static get encapsulation() { return "scoped"; }
|
|
@@ -33,9 +33,9 @@ export class XplorInlineCheckbox {
|
|
|
33
33
|
'xplor-inline-checkbox--disabled': this.disabled,
|
|
34
34
|
'xplor-inline-checkbox--checked': this.checked,
|
|
35
35
|
};
|
|
36
|
-
return (h(Host, { key: '
|
|
36
|
+
return (h(Host, { key: '2273357108dc65e665f9fdd9dcece4d4ed8edac3' }, h("label", { key: '630091008ad489a1cc4c0e71ef1ae802ef4b0c89', class: containerClasses }, h("input", { key: '0c823ba53cb0d25d4823e42bcb037efaeddff405', type: "checkbox", class: "xplor-inline-checkbox__input", checked: this.checked, value: this.value, disabled: this.disabled, indeterminate: this.indeterminate, onChange: this.handleChange, style: {
|
|
37
37
|
accentColor: this.color,
|
|
38
|
-
} }), this.label && h("span", { key: '
|
|
38
|
+
} }), this.label && h("span", { key: '9e1bbb0bd85cc7cfe7d760501507d68dcc3bf3c2', class: "xplor-inline-checkbox__label" }, this.label), h("slot", { key: '7a95d78de68af2887149bd6eb9f08330b9c57d6b' }))));
|
|
39
39
|
}
|
|
40
40
|
static get is() { return "xplor-inline-checkbox"; }
|
|
41
41
|
static get encapsulation() { return "scoped"; }
|
|
@@ -143,7 +143,7 @@ export class XplorInlineDatePicker {
|
|
|
143
143
|
render() {
|
|
144
144
|
const sidebarDate = this.getSidebarDate();
|
|
145
145
|
const dayHeaders = this.startWeekOnSunday ? this.dayNames : this.dayNamesStartMonday;
|
|
146
|
-
return (h(Host, { key: '
|
|
146
|
+
return (h(Host, { key: '0a63c50c59ddc6ca12df01ba421b351ba7fa163a' }, h("div", { key: '961a428446372ebab3e7ca008100742d5452a137', class: "xplor-inline-date-picker", style: { '--picker-color': this.color } }, h("div", { key: '5ff94e618f8f292e13dcc3898c6b6be40536d64e', class: "xplor-inline-date-picker__sidebar" }, h("div", { key: '1e96cb361882d9e58d9b720beff37d211d1552aa', class: "xplor-inline-date-picker__sidebar-year" }, sidebarDate.year), h("div", { key: 'ce3bc570cc6ff6b4063cce28ada4da65cc97b3bb', class: "xplor-inline-date-picker__sidebar-day" }, sidebarDate.day, ","), h("div", { key: 'bcf8017b90193d0eed5b10d72454f9dc1051756e', class: "xplor-inline-date-picker__sidebar-date" }, sidebarDate.date)), h("div", { key: '7f36d03964d552ee8201493c920c0ec2d1119f89', class: "xplor-inline-date-picker__calendar" }, h("div", { key: '05eca5f4d4b0a0bc7ef237185a3d31ca7202b2ff', class: "xplor-inline-date-picker__header" }, h("button", { key: '91db152c009b87605a9fb21949d8cad5ef40a230', type: "button", class: "xplor-inline-date-picker__arrow", onClick: this.previousMonth, "aria-label": "Previous month" }, "\u2039"), h("div", { key: '86299244563f9338281b5f107b3fef04053ec164', class: "xplor-inline-date-picker__title" }, this.monthNames[this.currentMonth], " ", this.currentYear), h("button", { key: 'f6a9e7caa26114c06e0b10e1e5fddebe9388efcb', type: "button", class: "xplor-inline-date-picker__arrow", onClick: this.nextMonth, "aria-label": "Next month" }, "\u203A")), h("div", { key: 'f8de6b4d65c8ad58beeb97455c71d75c55668c6d', class: "xplor-inline-date-picker__weekdays" }, dayHeaders.map((day) => (h("div", { class: "xplor-inline-date-picker__weekday" }, day)))), h("div", { key: '267c3f7076c41ad34873501151b567fdda572dcd', class: "xplor-inline-date-picker__days" }, this.renderCalendarDays())))));
|
|
147
147
|
}
|
|
148
148
|
static get is() { return "xplor-inline-date-picker"; }
|
|
149
149
|
static get encapsulation() { return "scoped"; }
|
|
@@ -29,7 +29,7 @@ export class XplorInlineSwitch {
|
|
|
29
29
|
'xplor-inline-switch--disabled': this.disabled,
|
|
30
30
|
'xplor-inline-switch--checked': this.checked,
|
|
31
31
|
};
|
|
32
|
-
return (h(Host, { key: '
|
|
32
|
+
return (h(Host, { key: 'd881ff0653ee51f1ddc8c146ccc6f70f3c128e3b' }, h("label", { key: '2ffe4cdf99f925c5973657769f056cffb8bea283', class: containerClasses, style: { '--switch-color': this.color } }, h("input", { key: '60fb990d1dce371c3579da91bd0d9fd4dd50f82b', type: "checkbox", class: "xplor-inline-switch__input", checked: this.checked, value: this.value, disabled: this.disabled, onChange: this.handleChange }), h("span", { key: '28e9f5444653009f4b56d510c2d73ba710e93115', class: "xplor-inline-switch__track" }, h("span", { key: 'f002449aa843c0b268dbc38d94dbf44a0e68d0de', class: "xplor-inline-switch__thumb" })), this.label && h("span", { key: 'f460d55e6cbaab94806c8025a1d17cd4d4b6790b', class: "xplor-inline-switch__label" }, this.label), h("slot", { key: '59e3248368aab93dd48287f3facdbe9221a39f5b' }))));
|
|
33
33
|
}
|
|
34
34
|
static get is() { return "xplor-inline-switch"; }
|
|
35
35
|
static get encapsulation() { return "scoped"; }
|
|
@@ -75,7 +75,7 @@ export class XplorInputFile {
|
|
|
75
75
|
};
|
|
76
76
|
const visibleFiles = this.selectedFiles.slice(0, this.maxChips);
|
|
77
77
|
const additionalCount = this.selectedFiles.length - this.maxChips;
|
|
78
|
-
return (h(Host, { key: '
|
|
78
|
+
return (h(Host, { key: 'b8022fdd28a3e0087bc2a044856c3013d1f32245' }, h("div", { key: '11c0494c76f5aed1fe03cff7b706c7bc809becda', class: containerClasses }, this.label && (h("label", { key: 'fca295123c0766e9ff4b1ae28abfc2662a345992', class: "xplor-input-file__label" }, this.label)), h("div", { key: 'a63356f0857b420f1f707caa2e5e6ac587616949', class: "xplor-input-file__field" }, h("span", { key: 'f2b6f89f35d36a71a4c2bae38175cd16f897102d', class: "xplor-input-file__icon" }, this.prependInnerIcon), h("div", { key: '0b6b59139696a1a1e9aee3f10b7069743f4d1934', class: "xplor-input-file__content" }, this.selectedFiles.length === 0 ? (h("span", { class: "xplor-input-file__placeholder" }, this.placeholder)) : (h("div", { class: "xplor-input-file__chips" }, visibleFiles.map((file) => (h("div", { class: "xplor-input-file__chip", key: file.name }, h("span", { class: "xplor-input-file__chip-text" }, file.name), this.showSize && file.size && (h("span", { class: "xplor-input-file__chip-size" }, "(", this.formatFileSize(file.size), ")"))))), additionalCount > 0 && (h("span", { class: "xplor-input-file__additional" }, "+", additionalCount, " additional file", additionalCount > 1 ? 's' : ''))))), this.selectedFiles.length > 0 && !this.disabled && (h("button", { key: 'b0f312f157de2caf74c8c630d7c109fb6af4d7c0', type: "button", class: "xplor-input-file__clear", onClick: this.handleClear, "aria-label": "Clear" }, "\u2715")), h("input", { key: '1b36ee20fe74f12cb0634fa8a6f11f0b18a8869c', ref: (el) => (this.fileInputRef = el), type: "file", class: "xplor-input-file__input", multiple: this.multiple, accept: this.accept, disabled: this.disabled, onChange: this.handleFileChange })), this.counter && this.selectedFiles.length > 0 && (h("div", { key: '3db41f5660476718819e7315edbc59a9fa834178', class: "xplor-input-file__counter" }, this.selectedFiles.length, " file", this.selectedFiles.length > 1 ? 's' : '', " selected")))));
|
|
79
79
|
}
|
|
80
80
|
static get is() { return "xplor-input-file"; }
|
|
81
81
|
static get encapsulation() { return "scoped"; }
|
|
@@ -46,9 +46,9 @@ export class XplorInputSearch {
|
|
|
46
46
|
'xplor-input-search--focused': this.isFocused,
|
|
47
47
|
'xplor-input-search--disabled': this.disabled,
|
|
48
48
|
};
|
|
49
|
-
return (h(Host, { key: '
|
|
49
|
+
return (h(Host, { key: '5b56e2a7105a8046e9d8a0260e4ccc3e3f74f2d1' }, h("div", { key: '1056cd0367b2a02a9ca0b6327ee64fe451aa822f', class: containerClasses }, h("div", { key: 'b52566008beabead371696c73213c0c44d71caad', class: "xplor-input-search__field" }, h("input", { key: '59c5434a7cedc56128d8acb5d3718e89a4521f60', type: "text", class: "xplor-input-search__input", value: this.value, placeholder: this.placeholder, disabled: this.disabled, onInput: this.handleInput, onKeyDown: this.handleKeyDown, onFocus: () => (this.isFocused = true), onBlur: () => (this.isFocused = false), style: {
|
|
50
50
|
backgroundColor: this.bgColor,
|
|
51
|
-
} }), h("slot", { key: '
|
|
51
|
+
} }), h("slot", { key: '8a1ff9183e52e0b1907a2d592cf26ce92b8c3eb2', name: "append-inner" }, h("button", { key: '9680a805a44074e1ca6544fc6cc1b6dc56b3cd3c', type: "button", class: "xplor-input-search__button", onClick: this.handleSearch, disabled: this.disabled, "data-testid": "input-search-button" }, h("svg", { key: 'b5889fd0aed963aa7f31a11fa705597caaa3d000', viewBox: "0 0 24 24", class: "xplor-input-search__icon" }, h("path", { key: '78cd1c79a24b46b662d3be5bea287db253c0abe9', d: "M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z" }))))))));
|
|
52
52
|
}
|
|
53
53
|
static get is() { return "xplor-input-search"; }
|
|
54
54
|
static get encapsulation() { return "scoped"; }
|
|
@@ -329,17 +329,12 @@ ul.mdc-list li.mdc-list-item {
|
|
|
329
329
|
flex-shrink: 0;
|
|
330
330
|
}
|
|
331
331
|
.xplor-input-select__menu {
|
|
332
|
-
position: absolute;
|
|
333
|
-
top: 100%;
|
|
334
|
-
left: 0;
|
|
335
|
-
right: 0;
|
|
336
|
-
margin-top: 0.25rem;
|
|
337
332
|
max-height: 300px;
|
|
338
333
|
overflow-y: auto;
|
|
339
334
|
background-color: white;
|
|
340
335
|
border-radius: 0.5rem;
|
|
341
336
|
box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);
|
|
342
|
-
z-index:
|
|
337
|
+
z-index: 9999;
|
|
343
338
|
}
|
|
344
339
|
.xplor-input-select__empty {
|
|
345
340
|
padding: 1rem;
|