@xplor-education/core-stencil-components 3.1.3 → 3.1.4
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-BRWe4TXp.js → p-C-gHaxf1.js} +3 -3
- package/components/p-C-gHaxf1.js.map +1 -0
- package/components/xplor-modal-persistent.js +1 -1
- package/components/xplor-modal.js +1 -1
- package/components/xplor-rich-text-editor.js +5 -5
- package/components/xplor-rich-text-editor.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/xplor-alert-dialog_60.cjs.entry.js +5 -5
- package/dist/cjs/xplor-alert-dialog_60.cjs.entry.js.map +1 -1
- package/dist/cjs/xplor-component-library.cjs.js +1 -1
- package/dist/collection/components/xplor-modal/xplor-modal.css +10 -10
- package/dist/collection/components/xplor-rich-text-editor/xplor-rich-text-editor.js +5 -5
- package/dist/collection/components/xplor-rich-text-editor/xplor-rich-text-editor.js.map +1 -1
- package/dist/components/{p-04oMLTZR.js → p-B7FEf2_x.js} +3 -3
- package/dist/components/p-B7FEf2_x.js.map +1 -0
- package/dist/components/xplor-modal-persistent.js +1 -1
- package/dist/components/xplor-modal.js +1 -1
- package/dist/components/xplor-rich-text-editor.js +5 -5
- package/dist/components/xplor-rich-text-editor.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/xplor-alert-dialog_60.entry.js +5 -5
- package/dist/esm/xplor-alert-dialog_60.entry.js.map +1 -1
- package/dist/esm/xplor-component-library.js +1 -1
- package/dist/hydrate/index.js +6 -6
- package/dist/hydrate/index.mjs +6 -6
- package/dist/types/components/xplor-rich-text-editor/xplor-rich-text-editor.d.ts +1 -1
- package/dist/types/components.d.ts +2 -6
- package/dist/xplor-component-library/{p-df68ccde.entry.js → p-0d477ec2.entry.js} +2 -2
- package/dist/xplor-component-library/p-0d477ec2.entry.js.map +1 -0
- package/dist/xplor-component-library/xplor-component-library.esm.js +1 -1
- package/package.json +1 -1
- package/components/p-BRWe4TXp.js.map +0 -1
- package/dist/components/p-04oMLTZR.js.map +0 -1
- package/dist/xplor-component-library/p-df68ccde.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(JSON.parse("[[\"xplor-alert-dialog_60.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\"],\"ariaLabel\":[1,\"aria-label\"],\"progress\":[2],\"dragover\":[32],\"currentFile\":[32],\"horizontal\":[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],\"ariaLabel\":[1,\"aria-label\"]},[[0,\"keydown\",\"handleKeyDown\"]],{\"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],\"ariaLabel\":[1,\"aria-label\"],\"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],\"ariaLabel\":[1,\"aria-label\"]}],[6,\"xplor-btn-icon\",{\"color\":[1],\"size\":[8],\"iconSize\":[8,\"icon-size\"],\"variant\":[1],\"disabled\":[4],\"ariaLabel\":[1,\"aria-label\"]}],[6,\"xplor-btn-menu\",{\"ariaLabel\":[1,\"aria-label\"],\"label\":[1],\"options\":[16],\"hiddenKeys\":[16,\"hidden-keys\"],\"disabledKeys\":[16,\"disabled-keys\"],\"color\":[1],\"density\":[1],\"show\":[32],\"focusedIndex\":[32]},[[0,\"keydown\",\"handleKeyDown\"]]],[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\"]}],[2,\"xplor-canvas-editor\",{\"width\":[2],\"height\":[2],\"tool\":[1],\"shapes\":[32],\"selectedId\":[32],\"activeTool\":[32],\"draftShape\":[32],\"clearAll\":[64],\"getShapes\":[64]}],[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],\"ariaLabel\":[1,\"aria-label\"],\"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\",{\"ariaLabel\":[1,\"aria-label\"],\"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],\"highlightedIndex\":[32]},[[0,\"keydown\",\"handleKeyDown\"]]],[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],\"ariaLabel\":[1,\"aria-label\"]}],[1,\"xplor-links\",{\"brand\":[1],\"imageAlt\":[1,\"image-alt\"]}],[6,\"xplor-nav-tabs\",{\"value\":[1025],\"items\":[16],\"color\":[1],\"grow\":[4]},[[0,\"keydown\",\"handleKeyDown\"]]],[1,\"xplor-radio-btn\",{\"label\":[1],\"value\":[1],\"name\":[1],\"initialChecked\":[4,\"initial-checked\"],\"disabled\":[4],\"error\":[4],\"checked\":[32],\"isHovered\":[32],\"isFocused\":[32],\"isPressed\":[32],\"deselect\":[64]},null,{\"initialChecked\":[\"watchCheckedProp\"]}],[2,\"xplor-rich-text-editor\",{\"value\":[1025],\"legacySlateDocument\":[1,\"legacy-slate-document\"],\"placeholder\":[1],\"label\":[1],\"required\":[4],\"readonly\":[4],\"disabled\":[4],\"ariaLabel\":[1,\"aria-label\"],\"ariaLabelledBy\":[1,\"aria-labelled-by\"],\"toolbar\":[1],\"maxLength\":[2,\"max-length\"],\"error\":[1],\"helperText\":[1,\"helper-text\"],\"editorVersion\":[32],\"isFocused\":[32],\"showLinkPopover\":[32],\"linkUrl\":[32],\"charCount\":[32],\"getHTML\":[64],\"getText\":[64],\"setContent\":[64],\"clearContent\":[64],\"focusEditor\":[64]},null,{\"value\":[\"handleValueChange\"],\"readonly\":[\"handleReadonlyChange\"],\"disabled\":[\"handleDisabledChange\"],\"legacySlateDocument\":[\"handleLegacyDocChange\"]}],[6,\"xplor-section-card\",{\"outlined\":[4],\"rounded\":[4],\"padding\":[1]}],[6,\"xplor-section-heading\",{\"size\":[1],\"text\":[1],\"level\":[2]}],[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],\"focusedDay\":[32]},[[0,\"keydown\",\"handleKeyDown\"]]],[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\"],\"ariaLabel\":[1,\"aria-label\"]},[[0,\"keydown\",\"handleKeyDown\"]],{\"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\"],\"ariaLabel\":[1,\"aria-label\"],\"disabled\":[4],\"fullWidth\":[516,\"full-width\"],\"iconPosition\":[1,\"icon-position\"],\"icon\":[1],\"iconSvg\":[1,\"icon-svg\"]}]]]]"), options);
|
|
21
|
+
return index.bootstrapLazy(JSON.parse("[[\"xplor-alert-dialog_60.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\"],\"ariaLabel\":[1,\"aria-label\"],\"progress\":[2],\"dragover\":[32],\"currentFile\":[32],\"horizontal\":[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],\"ariaLabel\":[1,\"aria-label\"]},[[0,\"keydown\",\"handleKeyDown\"]],{\"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],\"ariaLabel\":[1,\"aria-label\"],\"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],\"ariaLabel\":[1,\"aria-label\"]}],[6,\"xplor-btn-icon\",{\"color\":[1],\"size\":[8],\"iconSize\":[8,\"icon-size\"],\"variant\":[1],\"disabled\":[4],\"ariaLabel\":[1,\"aria-label\"]}],[6,\"xplor-btn-menu\",{\"ariaLabel\":[1,\"aria-label\"],\"label\":[1],\"options\":[16],\"hiddenKeys\":[16,\"hidden-keys\"],\"disabledKeys\":[16,\"disabled-keys\"],\"color\":[1],\"density\":[1],\"show\":[32],\"focusedIndex\":[32]},[[0,\"keydown\",\"handleKeyDown\"]]],[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\"]}],[2,\"xplor-canvas-editor\",{\"width\":[2],\"height\":[2],\"tool\":[1],\"shapes\":[32],\"selectedId\":[32],\"activeTool\":[32],\"draftShape\":[32],\"clearAll\":[64],\"getShapes\":[64]}],[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],\"ariaLabel\":[1,\"aria-label\"],\"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\",{\"ariaLabel\":[1,\"aria-label\"],\"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],\"highlightedIndex\":[32]},[[0,\"keydown\",\"handleKeyDown\"]]],[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],\"ariaLabel\":[1,\"aria-label\"]}],[1,\"xplor-links\",{\"brand\":[1],\"imageAlt\":[1,\"image-alt\"]}],[6,\"xplor-nav-tabs\",{\"value\":[1025],\"items\":[16],\"color\":[1],\"grow\":[4]},[[0,\"keydown\",\"handleKeyDown\"]]],[1,\"xplor-radio-btn\",{\"label\":[1],\"value\":[1],\"name\":[1],\"initialChecked\":[4,\"initial-checked\"],\"disabled\":[4],\"error\":[4],\"checked\":[32],\"isHovered\":[32],\"isFocused\":[32],\"isPressed\":[32],\"deselect\":[64]},null,{\"initialChecked\":[\"watchCheckedProp\"]}],[2,\"xplor-rich-text-editor\",{\"value\":[1025],\"legacySlateDocument\":[1,\"legacy-slate-document\"],\"placeholder\":[1],\"label\":[1],\"required\":[4],\"readonly\":[4],\"disabled\":[4],\"ariaLabel\":[1,\"aria-label\"],\"ariaLabelledBy\":[1,\"aria-labelled-by\"],\"toolbar\":[1],\"maxLength\":[2,\"max-length\"],\"error\":[1],\"helperText\":[1,\"helper-text\"],\"editorVersion\":[32],\"isFocused\":[32],\"showLinkPopover\":[32],\"linkUrl\":[32],\"charCount\":[32],\"getHTMLContent\":[64],\"getText\":[64],\"setContent\":[64],\"clearContent\":[64],\"focusEditor\":[64]},null,{\"value\":[\"handleValueChange\"],\"readonly\":[\"handleReadonlyChange\"],\"disabled\":[\"handleDisabledChange\"],\"legacySlateDocument\":[\"handleLegacyDocChange\"]}],[6,\"xplor-section-card\",{\"outlined\":[4],\"rounded\":[4],\"padding\":[1]}],[6,\"xplor-section-heading\",{\"size\":[1],\"text\":[1],\"level\":[2]}],[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],\"focusedDay\":[32]},[[0,\"keydown\",\"handleKeyDown\"]]],[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\"],\"ariaLabel\":[1,\"aria-label\"]},[[0,\"keydown\",\"handleKeyDown\"]],{\"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\"],\"ariaLabel\":[1,\"aria-label\"],\"disabled\":[4],\"fullWidth\":[516,\"full-width\"],\"iconPosition\":[1,\"icon-position\"],\"icon\":[1],\"iconSvg\":[1,\"icon-svg\"]}]]]]"), options);
|
|
22
22
|
});
|
|
23
23
|
|
|
24
24
|
exports.setNonce = index.setNonce;
|
|
@@ -287,7 +287,7 @@ ul.mdc-list li.mdc-list-item {
|
|
|
287
287
|
position: relative;
|
|
288
288
|
background-color: white;
|
|
289
289
|
border-radius: 1rem;
|
|
290
|
-
padding:
|
|
290
|
+
padding: 2rem 2.25rem;
|
|
291
291
|
max-width: 90vw;
|
|
292
292
|
display: flex;
|
|
293
293
|
flex-direction: column;
|
|
@@ -299,16 +299,16 @@ ul.mdc-list li.mdc-list-item {
|
|
|
299
299
|
}
|
|
300
300
|
.xplor-modal__close-btn {
|
|
301
301
|
position: absolute;
|
|
302
|
-
top:
|
|
303
|
-
right:
|
|
304
|
-
width:
|
|
305
|
-
height:
|
|
302
|
+
top: 2rem;
|
|
303
|
+
right: 2.25rem;
|
|
304
|
+
width: 3rem;
|
|
305
|
+
height: 3rem;
|
|
306
306
|
border: none;
|
|
307
|
-
background-color:
|
|
307
|
+
background-color: #DFF2F1;
|
|
308
308
|
color: #008480;
|
|
309
309
|
font-size: 1rem;
|
|
310
310
|
cursor: pointer;
|
|
311
|
-
border-radius:
|
|
311
|
+
border-radius: 50%;
|
|
312
312
|
display: flex;
|
|
313
313
|
align-items: center;
|
|
314
314
|
justify-content: center;
|
|
@@ -316,13 +316,13 @@ ul.mdc-list li.mdc-list-item {
|
|
|
316
316
|
z-index: 1;
|
|
317
317
|
}
|
|
318
318
|
.xplor-modal__close-btn:hover {
|
|
319
|
-
background-color: #
|
|
319
|
+
background-color: #C5E8E6;
|
|
320
320
|
}
|
|
321
321
|
.xplor-modal__close-btn:active {
|
|
322
|
-
background-color: #
|
|
322
|
+
background-color: #B0DFDD;
|
|
323
323
|
}
|
|
324
324
|
.xplor-modal__title {
|
|
325
|
-
padding-right:
|
|
325
|
+
padding-right: 3.5rem;
|
|
326
326
|
margin-bottom: 0.5rem;
|
|
327
327
|
font-size: 1.5rem;
|
|
328
328
|
font-weight: 500;
|
|
@@ -165,7 +165,7 @@ export class XplorRichTextEditor {
|
|
|
165
165
|
/**
|
|
166
166
|
* Returns the current content as an HTML string.
|
|
167
167
|
*/
|
|
168
|
-
async
|
|
168
|
+
async getHTMLContent() {
|
|
169
169
|
var _a, _b;
|
|
170
170
|
return (_b = (_a = this.editor) === null || _a === void 0 ? void 0 : _a.getHTML()) !== null && _b !== void 0 ? _b : '';
|
|
171
171
|
}
|
|
@@ -341,12 +341,12 @@ export class XplorRichTextEditor {
|
|
|
341
341
|
'xplor-rte--error': hasError,
|
|
342
342
|
'xplor-rte--has-toolbar': this.toolbar !== 'none',
|
|
343
343
|
};
|
|
344
|
-
return (h(Host, { key: '
|
|
344
|
+
return (h(Host, { key: 'd15876a85220e846333352ee11c52960a17341be' }, this.label && (h("label", { key: 'ecc7035c2cb8543b4c7447b2aa6665f53260959a', class: "xplor-rte__label", id: this.labelId, htmlFor: this.editorId }, this.label, this.required && (h("span", { key: '8c5e9b8eb1efe34faa289748e8393a3261099489', class: "xplor-rte__required", "aria-hidden": "true" }, ' ', "*")))), h("div", { key: 'bd0b1c75612f26d7f7ee13cfcec584ebf6349f3a', class: containerClasses }, this.renderToolbar(), h("div", { key: 'ec047a31509004185b3be5abaa939a0278e86243', class: "xplor-rte__content", id: this.editorId, ref: (el) => {
|
|
345
345
|
this.editorEl = el;
|
|
346
|
-
}, "aria-label": effectiveAriaLabel, "aria-labelledby": effectiveLabelledBy, "aria-multiline": "true", "aria-readonly": this.readonly ? 'true' : undefined, "aria-disabled": this.disabled ? 'true' : undefined, "aria-required": this.required ? 'true' : undefined, "aria-describedby": describedBy, "aria-invalid": hasError ? 'true' : undefined }), showCharCount && (h("div", { key: '
|
|
346
|
+
}, "aria-label": effectiveAriaLabel, "aria-labelledby": effectiveLabelledBy, "aria-multiline": "true", "aria-readonly": this.readonly ? 'true' : undefined, "aria-disabled": this.disabled ? 'true' : undefined, "aria-required": this.required ? 'true' : undefined, "aria-describedby": describedBy, "aria-invalid": hasError ? 'true' : undefined }), showCharCount && (h("div", { key: '4b7806ebfe4356fcfbf71192385875897dbba4fa', id: this.charCountId, class: {
|
|
347
347
|
'xplor-rte__char-count': true,
|
|
348
348
|
'xplor-rte__char-count--limit': this.charCount >= this.maxLength,
|
|
349
|
-
}, role: "status", "aria-live": "polite", "aria-atomic": "true" }, this.charCount, " / ", this.maxLength))), hasError && (h("div", { key: '
|
|
349
|
+
}, role: "status", "aria-live": "polite", "aria-atomic": "true" }, this.charCount, " / ", this.maxLength))), hasError && (h("div", { key: 'b2892869df2c26f02158d30d8bf6ee239e503de3', class: "xplor-rte__error", role: "alert", "aria-live": "assertive" }, this.error)), !hasError && this.helperText && (h("div", { key: 'ca2eb4562b4d514f6602b915ef76e85dc8dc6b02', class: "xplor-rte__helper" }, this.helperText))));
|
|
350
350
|
}
|
|
351
351
|
static get is() { return "xplor-rich-text-editor"; }
|
|
352
352
|
static get encapsulation() { return "scoped"; }
|
|
@@ -689,7 +689,7 @@ export class XplorRichTextEditor {
|
|
|
689
689
|
}
|
|
690
690
|
static get methods() {
|
|
691
691
|
return {
|
|
692
|
-
"
|
|
692
|
+
"getHTMLContent": {
|
|
693
693
|
"complexType": {
|
|
694
694
|
"signature": "() => Promise<string>",
|
|
695
695
|
"parameters": [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xplor-rich-text-editor.js","sourceRoot":"","sources":["../../../src/components/xplor-rich-text-editor/xplor-rich-text-editor.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Host,\n h,\n Prop,\n Event,\n EventEmitter,\n State,\n Watch,\n Element,\n Method,\n} from '@stencil/core';\nimport { Editor } from '@tiptap/core';\nimport StarterKit from '@tiptap/starter-kit';\nimport Underline from '@tiptap/extension-underline';\nimport Link from '@tiptap/extension-link';\nimport Placeholder from '@tiptap/extension-placeholder';\nimport CharacterCount from '@tiptap/extension-character-count';\nimport {\n convertLegacySlateJsonToHtml,\n} from '../../utils/slate-legacy-converter';\n\nlet rteIdCounter = 0;\n\n/** Payload emitted by xplorChange */\nexport interface RteChangePayload {\n html: string;\n text: string;\n isEmpty: boolean;\n}\n\n@Component({\n tag: 'xplor-rich-text-editor',\n styleUrl: 'xplor-rich-text-editor.scss',\n scoped: true,\n})\nexport class XplorRichTextEditor {\n // -------------------------------------------------------------------------\n // Internal refs & IDs\n // -------------------------------------------------------------------------\n\n @Element() el: HTMLElement;\n\n private editor: Editor | null = null;\n private editorEl!: HTMLDivElement;\n\n private readonly editorId = `xplor-rte-${++rteIdCounter}`;\n private readonly toolbarId = `${this.editorId}-toolbar`;\n private readonly charCountId = `${this.editorId}-char-count`;\n private readonly labelId = `${this.editorId}-label`;\n\n // -------------------------------------------------------------------------\n // Props\n // -------------------------------------------------------------------------\n\n /**\n * HTML string content of the editor. Supports two-way binding via xplorChange.\n */\n @Prop({ mutable: true }) value: string = '';\n\n /**\n * Stringified Slate 0.42.x document JSON for backwards compatibility.\n * When supplied, this takes precedence over `value` as the initial content.\n */\n @Prop() legacySlateDocument: string = '';\n\n /**\n * Placeholder text shown when the editor is empty.\n */\n @Prop() placeholder: string = 'Start typing…';\n\n /**\n * Visible label above the editor.\n */\n @Prop() label: string = '';\n\n /**\n * Marks the field as required. Adds an asterisk to the label.\n */\n @Prop() required: boolean = false;\n\n /**\n * Whether the editor is in read-only mode. Content is visible but not editable.\n * The toolbar is hidden in this mode.\n */\n @Prop() readonly: boolean = false;\n\n /**\n * Whether the editor is disabled. Content cannot be edited or interacted with.\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Accessible label for the editor region. Used when no `label` prop or\n * `ariaLabelledBy` is provided.\n */\n @Prop() ariaLabel: string = '';\n\n /**\n * ID of an external element that labels this editor (aria-labelledby).\n */\n @Prop() ariaLabelledBy: string = '';\n\n /**\n * Controls which toolbar buttons are rendered.\n * - `full` — All formatting options (default)\n * - `minimal` — Text style buttons only (bold, italic, underline, strike, code)\n * - `none` — No toolbar; editor acts as a plain rich-text input\n */\n @Prop() toolbar: 'full' | 'minimal' | 'none' = 'full';\n\n /**\n * Maximum character count. When set, a character counter is shown below the editor.\n */\n @Prop() maxLength: number | undefined = undefined;\n\n /**\n * Validation error message. Turns the editor border red and shows the message below.\n */\n @Prop() error: string = '';\n\n /**\n * Helper text shown below the editor when there is no error.\n */\n @Prop() helperText: string = '';\n\n // -------------------------------------------------------------------------\n // Events\n // -------------------------------------------------------------------------\n\n /**\n * Emitted whenever the content changes.\n * Payload: `{ html: string; text: string; isEmpty: boolean }`\n */\n @Event() xplorChange: EventEmitter<RteChangePayload>;\n\n /**\n * Emitted when the editor gains focus.\n */\n @Event() xplorFocus: EventEmitter<void>;\n\n /**\n * Emitted when the editor loses focus.\n */\n @Event() xplorBlur: EventEmitter<void>;\n\n // -------------------------------------------------------------------------\n // Internal state\n // -------------------------------------------------------------------------\n\n /** Incremented on every TipTap transaction to force toolbar re-render */\n @State() private editorVersion: number = 0;\n @State() private isFocused: boolean = false;\n @State() private showLinkPopover: boolean = false;\n @State() private linkUrl: string = '';\n @State() private charCount: number = 0;\n\n // -------------------------------------------------------------------------\n // Lifecycle\n // -------------------------------------------------------------------------\n\n componentDidLoad() {\n this.initEditor();\n }\n\n disconnectedCallback() {\n this.editor?.destroy();\n this.editor = null;\n }\n\n // -------------------------------------------------------------------------\n // Watchers\n // -------------------------------------------------------------------------\n\n @Watch('value')\n handleValueChange(newValue: string) {\n if (!this.editor) return;\n // Avoid a feedback loop — only sync if externally changed\n if (this.editor.getHTML() !== newValue) {\n this.editor.commands.setContent(newValue || '', false);\n }\n }\n\n @Watch('readonly')\n handleReadonlyChange() {\n this.editor?.setEditable(!this.readonly && !this.disabled);\n }\n\n @Watch('disabled')\n handleDisabledChange() {\n this.editor?.setEditable(!this.readonly && !this.disabled);\n }\n\n @Watch('legacySlateDocument')\n handleLegacyDocChange(newValue: string) {\n if (!newValue || !this.editor) return;\n const html = convertLegacySlateJsonToHtml(newValue);\n this.editor.commands.setContent(html, false);\n }\n\n // -------------------------------------------------------------------------\n // Public methods\n // -------------------------------------------------------------------------\n\n /**\n * Returns the current content as an HTML string.\n */\n @Method()\n async getHTML(): Promise<string> {\n return this.editor?.getHTML() ?? '';\n }\n\n /**\n * Returns the current content as plain text (all markup stripped).\n */\n @Method()\n async getText(): Promise<string> {\n return this.editor?.getText() ?? '';\n }\n\n /**\n * Replaces the editor content with the provided HTML string.\n */\n @Method()\n async setContent(html: string): Promise<void> {\n this.editor?.commands.setContent(html, false);\n }\n\n /**\n * Clears all content from the editor.\n */\n @Method()\n async clearContent(): Promise<void> {\n this.editor?.commands.clearContent(true);\n }\n\n /**\n * Programmatically focuses the editor.\n */\n @Method()\n async focusEditor(): Promise<void> {\n this.editor?.commands.focus();\n }\n\n // -------------------------------------------------------------------------\n // Private: Editor initialisation\n // -------------------------------------------------------------------------\n\n private initEditor() {\n // Resolve initial content — legacy doc takes precedence over value\n let initialContent = '';\n if (this.legacySlateDocument) {\n initialContent = convertLegacySlateJsonToHtml(this.legacySlateDocument);\n } else if (this.value) {\n initialContent = this.value;\n }\n\n const extensions: any[] = [\n StarterKit,\n Underline,\n Link.configure({ openOnClick: false, autolink: true }),\n Placeholder.configure({ placeholder: this.placeholder }),\n ];\n\n if (this.maxLength != null) {\n extensions.push(CharacterCount.configure({ limit: this.maxLength }));\n }\n\n this.editor = new Editor({\n element: this.editorEl,\n extensions,\n content: initialContent,\n editable: !this.readonly && !this.disabled,\n\n onUpdate: ({ editor }) => {\n const html = editor.getHTML();\n this.value = html;\n if (this.maxLength != null) {\n this.charCount = editor.storage?.characterCount?.characters() ?? 0;\n }\n this.xplorChange.emit({\n html,\n text: editor.getText(),\n isEmpty: editor.isEmpty,\n });\n },\n\n onFocus: () => {\n this.isFocused = true;\n this.xplorFocus.emit();\n },\n\n onBlur: () => {\n this.isFocused = false;\n this.showLinkPopover = false;\n this.xplorBlur.emit();\n },\n\n // Increment editorVersion on every transaction + selection change so the\n // toolbar re-renders with up-to-date isActive() states.\n onTransaction: () => {\n this.editorVersion += 1;\n },\n\n onSelectionUpdate: () => {\n this.editorVersion += 1;\n },\n });\n\n // Set initial char count\n if (this.maxLength != null) {\n this.charCount = this.editor.storage?.characterCount?.characters() ?? 0;\n }\n }\n\n // -------------------------------------------------------------------------\n // Private: Toolbar command helpers\n // -------------------------------------------------------------------------\n\n private execCommand(command: () => void, event: MouseEvent) {\n event.preventDefault();\n if (!this.editor || this.disabled || this.readonly) return;\n command();\n }\n\n private handleLinkButtonClick = (event: MouseEvent) => {\n event.preventDefault();\n if (!this.editor || this.disabled || this.readonly) return;\n\n if (this.editor.isActive('link')) {\n // Remove existing link\n this.editor.chain().focus().extendMarkRange('link').unsetLink().run();\n } else {\n // Pre-populate URL input with existing href if cursor is on a link\n this.linkUrl = (this.editor.getAttributes('link').href as string) || '';\n this.showLinkPopover = !this.showLinkPopover;\n }\n };\n\n private handleLinkSubmit = (event: Event) => {\n event.preventDefault();\n if (!this.editor) return;\n\n const url = this.linkUrl.trim();\n if (url) {\n this.editor.chain().focus().extendMarkRange('link').setLink({ href: url }).run();\n } else {\n this.editor.chain().focus().extendMarkRange('link').unsetLink().run();\n }\n this.showLinkPopover = false;\n this.linkUrl = '';\n };\n\n private handleLinkCancel = () => {\n this.showLinkPopover = false;\n this.linkUrl = '';\n };\n\n private handleLinkKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n this.showLinkPopover = false;\n this.linkUrl = '';\n }\n };\n\n // -------------------------------------------------------------------------\n // Private: Render helpers\n // -------------------------------------------------------------------------\n\n private renderToolbarButton(\n label: string,\n isActive: boolean,\n onClick: (event: MouseEvent) => void,\n iconContent: any,\n ) {\n return (\n <button\n type=\"button\"\n class={{\n 'xplor-rte__toolbar-btn': true,\n 'xplor-rte__toolbar-btn--active': isActive,\n }}\n aria-label={label}\n aria-pressed={String(isActive)}\n title={label}\n disabled={this.disabled || this.readonly}\n onClick={onClick}\n >\n {iconContent}\n </button>\n );\n }\n\n private renderLinkPopover() {\n return (\n <div\n class=\"xplor-rte__link-popover\"\n role=\"dialog\"\n aria-label=\"Insert link\"\n aria-modal=\"false\"\n >\n <form onSubmit={this.handleLinkSubmit} class=\"xplor-rte__link-form\">\n <label\n class=\"xplor-rte__link-label\"\n htmlFor={`${this.editorId}-link-input`}\n >\n URL\n </label>\n <input\n id={`${this.editorId}-link-input`}\n class=\"xplor-rte__link-input\"\n type=\"url\"\n placeholder=\"https://example.com\"\n value={this.linkUrl}\n onInput={(e) => {\n this.linkUrl = (e.target as HTMLInputElement).value;\n }}\n onKeyDown={this.handleLinkKeyDown}\n autoFocus\n />\n <div class=\"xplor-rte__link-actions\">\n <button type=\"submit\" class=\"xplor-rte__link-apply\">\n Apply\n </button>\n <button\n type=\"button\"\n class=\"xplor-rte__link-cancel\"\n onClick={this.handleLinkCancel}\n >\n Cancel\n </button>\n </div>\n </form>\n </div>\n );\n }\n\n private renderToolbar() {\n if (this.toolbar === 'none' || !this.editor) return null;\n\n const e = this.editor;\n const isMinimal = this.toolbar === 'minimal';\n\n // --- Text style buttons (shared between full and minimal) ---\n const textStyleGroup = (\n <div class=\"xplor-rte__toolbar-group\" role=\"group\" aria-label=\"Text style\">\n {this.renderToolbarButton(\n 'Bold (Ctrl+B)',\n e.isActive('bold'),\n (ev) => this.execCommand(() => e.chain().focus().toggleBold().run(), ev),\n // Bold icon\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M15.6 11.79c.97-.67 1.65-1.77 1.65-2.79 0-2.26-1.75-4-4-4H7v14h7.04c2.09 0 3.71-1.7 3.71-3.79 0-1.52-.86-2.82-2.15-3.42zM10 6.5h3c.83 0 1.5.67 1.5 1.5S13.83 9.5 13 9.5h-3V6.5zm3.5 9H10V13h3.5c.83 0 1.5.67 1.5 1.5S14.33 15.5 13.5 15.5z\" />\n </svg>,\n )}\n {this.renderToolbarButton(\n 'Italic (Ctrl+I)',\n e.isActive('italic'),\n (ev) => this.execCommand(() => e.chain().focus().toggleItalic().run(), ev),\n // Italic icon\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M10 4v3h2.21l-3.42 8H6v3h8v-3h-2.21l3.42-8H18V4z\" />\n </svg>,\n )}\n {this.renderToolbarButton(\n 'Underline (Ctrl+U)',\n e.isActive('underline'),\n (ev) => this.execCommand(() => e.chain().focus().toggleUnderline().run(), ev),\n // Underline icon\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M12 17c3.31 0 6-2.69 6-6V3h-2.5v8c0 1.93-1.57 3.5-3.5 3.5S8.5 12.93 8.5 11V3H6v8c0 3.31 2.69 6 6 6zm-7 2v2h14v-2H5z\" />\n </svg>,\n )}\n {this.renderToolbarButton(\n 'Strikethrough',\n e.isActive('strike'),\n (ev) => this.execCommand(() => e.chain().focus().toggleStrike().run(), ev),\n // Strikethrough icon\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M6.85 7.08C6.85 4.37 9.45 3 12.24 3c1.64 0 3 .49 3.9 1.28.77.65 1.46 1.73 1.46 3.24h-3.01c0-.31-.05-.59-.15-.85-.29-.86-1.2-1.28-2.25-1.28-1.86 0-2.34.92-2.34 1.69 0 .48.25.88.74 1.21L13.25 9H7.39c-.21-.28-.54-.71-.54-1.92zM21 12v-2H3v2h9.62c1.15.45 1.96.75 1.96 1.97 0 1-.81 1.67-2.28 1.67-1.54 0-2.93-.54-2.93-2.51H7.4c0 1.97.93 5.15 5.85 5.15 3.47 0 5.37-1.96 5.37-4.15 0-.87-.23-1.58-.62-2.13z\" />\n </svg>,\n )}\n {this.renderToolbarButton(\n 'Inline code',\n e.isActive('code'),\n (ev) => this.execCommand(() => e.chain().focus().toggleCode().run(), ev),\n // Code icon\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\" />\n </svg>,\n )}\n </div>\n );\n\n if (isMinimal) {\n return (\n <div\n id={this.toolbarId}\n class=\"xplor-rte__toolbar\"\n role=\"toolbar\"\n aria-label=\"Text formatting\"\n aria-controls={this.editorId}\n >\n {textStyleGroup}\n </div>\n );\n }\n\n return (\n <div\n id={this.toolbarId}\n class=\"xplor-rte__toolbar\"\n role=\"toolbar\"\n aria-label=\"Text formatting\"\n aria-controls={this.editorId}\n >\n {/* Text style */}\n {textStyleGroup}\n\n <div class=\"xplor-rte__toolbar-divider\" aria-hidden=\"true\" />\n\n {/* Headings */}\n <div class=\"xplor-rte__toolbar-group\" role=\"group\" aria-label=\"Headings\">\n {([1, 2, 3] as const).map((level) =>\n this.renderToolbarButton(\n `Heading ${level}`,\n e.isActive('heading', { level }),\n (ev) => this.execCommand(() => e.chain().focus().toggleHeading({ level }).run(), ev),\n <span class=\"xplor-rte__toolbar-text\" aria-hidden=\"true\">H{level}</span>,\n ),\n )}\n </div>\n\n <div class=\"xplor-rte__toolbar-divider\" aria-hidden=\"true\" />\n\n {/* Lists */}\n <div class=\"xplor-rte__toolbar-group\" role=\"group\" aria-label=\"Lists\">\n {this.renderToolbarButton(\n 'Bullet list',\n e.isActive('bulletList'),\n (ev) => this.execCommand(() => e.chain().focus().toggleBulletList().run(), ev),\n // Bullet list icon\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M4 10.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0-6c-.83 0-1.5.67-1.5 1.5S3.17 7.5 4 7.5 5.5 6.83 5.5 6 4.83 4.5 4 4.5zm0 12c-.83 0-1.5.68-1.5 1.5s.68 1.5 1.5 1.5 1.5-.68 1.5-1.5-.67-1.5-1.5-1.5zM7 19h14v-2H7v2zm0-6h14v-2H7v2zm0-8v2h14V5H7z\" />\n </svg>,\n )}\n {this.renderToolbarButton(\n 'Numbered list',\n e.isActive('orderedList'),\n (ev) => this.execCommand(() => e.chain().focus().toggleOrderedList().run(), ev),\n // Ordered list icon\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M2 17h2v.5H3v1h1v.5H2v1h3v-4H2v1zm1-9h1V4H2v1h1v3zm-1 3h1.8L2 13.1v.9h3v-1H3.2L5 10.9V10H2v1zm5-6v2h14V5H7zm0 14h14v-2H7v2zm0-6h14v-2H7v2z\" />\n </svg>,\n )}\n </div>\n\n <div class=\"xplor-rte__toolbar-divider\" aria-hidden=\"true\" />\n\n {/* Block elements */}\n <div class=\"xplor-rte__toolbar-group\" role=\"group\" aria-label=\"Block elements\">\n {this.renderToolbarButton(\n 'Blockquote',\n e.isActive('blockquote'),\n (ev) => this.execCommand(() => e.chain().focus().toggleBlockquote().run(), ev),\n // Blockquote icon\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M6 17h3l2-4V7H5v6h3zm8 0h3l2-4V7h-6v6h3z\" />\n </svg>,\n )}\n {this.renderToolbarButton(\n 'Code block',\n e.isActive('codeBlock'),\n (ev) => this.execCommand(() => e.chain().focus().toggleCodeBlock().run(), ev),\n // Code block icon\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M20 3H4v10c0 2.21 1.79 4 4 4h6c2.21 0 4-1.79 4-4v-3h2c1.11 0 2-.89 2-2V5c0-1.11-.89-2-2-2zm0 5h-2V5h2v3zM4 19h16v2H4z\" />\n </svg>,\n )}\n </div>\n\n <div class=\"xplor-rte__toolbar-divider\" aria-hidden=\"true\" />\n\n {/* Insert & utilities */}\n <div class=\"xplor-rte__toolbar-group\" role=\"group\" aria-label=\"Insert and utilities\">\n <div class=\"xplor-rte__link-wrapper\">\n {this.renderToolbarButton(\n e.isActive('link') ? 'Remove link' : 'Insert link',\n e.isActive('link'),\n this.handleLinkButtonClick,\n // Link icon\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z\" />\n </svg>,\n )}\n {this.showLinkPopover && this.renderLinkPopover()}\n </div>\n {this.renderToolbarButton(\n 'Clear formatting',\n false,\n (ev) =>\n this.execCommand(\n () => e.chain().focus().clearNodes().unsetAllMarks().run(),\n ev,\n ),\n // Clear formatting icon\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M6 19h4v-2H6v2zM3 5v2h18V5H3zm3 9h7v-2H6v2zm10.88-3.36L18.3 9.2l1.41 1.41-1.42 1.43 1.42 1.41-1.41 1.41-1.42-1.41-1.41 1.41-1.41-1.41 1.41-1.41-1.41-1.43 1.41-1.41 1.41 1.43z\" />\n </svg>,\n )}\n </div>\n </div>\n );\n }\n\n // -------------------------------------------------------------------------\n // Render\n // -------------------------------------------------------------------------\n\n render() {\n const hasError = !!this.error;\n const showCharCount = this.maxLength != null;\n const charCountDescribedBy = showCharCount ? this.charCountId : undefined;\n const describedBy = charCountDescribedBy || undefined;\n\n // Resolve aria-label / aria-labelledby precedence:\n // 1. External ariaLabelledBy prop\n // 2. Internal label element (rendered via labelId)\n // 3. ariaLabel prop (falls back to default)\n const effectiveLabelledBy =\n this.ariaLabelledBy || (this.label ? this.labelId : undefined);\n const effectiveAriaLabel = !effectiveLabelledBy\n ? this.ariaLabel || 'Rich text editor'\n : undefined;\n\n const containerClasses = {\n 'xplor-rte': true,\n 'xplor-rte--focused': this.isFocused,\n 'xplor-rte--disabled': this.disabled,\n 'xplor-rte--readonly': this.readonly,\n 'xplor-rte--error': hasError,\n 'xplor-rte--has-toolbar': this.toolbar !== 'none',\n };\n\n return (\n <Host>\n {/* Label */}\n {this.label && (\n <label class=\"xplor-rte__label\" id={this.labelId} htmlFor={this.editorId}>\n {this.label}\n {this.required && (\n <span class=\"xplor-rte__required\" aria-hidden=\"true\">\n {' '}*\n </span>\n )}\n </label>\n )}\n\n {/* Editor wrapper */}\n <div class={containerClasses}>\n {/* Toolbar */}\n {this.renderToolbar()}\n\n {/* ProseMirror mount point */}\n <div\n class=\"xplor-rte__content\"\n id={this.editorId}\n ref={(el) => {\n this.editorEl = el as HTMLDivElement;\n }}\n aria-label={effectiveAriaLabel}\n aria-labelledby={effectiveLabelledBy}\n aria-multiline=\"true\"\n aria-readonly={this.readonly ? 'true' : undefined}\n aria-disabled={this.disabled ? 'true' : undefined}\n aria-required={this.required ? 'true' : undefined}\n aria-describedby={describedBy}\n aria-invalid={hasError ? 'true' : undefined}\n />\n\n {/* Character count */}\n {showCharCount && (\n <div\n id={this.charCountId}\n class={{\n 'xplor-rte__char-count': true,\n 'xplor-rte__char-count--limit': this.charCount >= this.maxLength,\n }}\n role=\"status\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n >\n {this.charCount} / {this.maxLength}\n </div>\n )}\n </div>\n\n {/* Validation error */}\n {hasError && (\n <div class=\"xplor-rte__error\" role=\"alert\" aria-live=\"assertive\">\n {this.error}\n </div>\n )}\n\n {/* Helper text */}\n {!hasError && this.helperText && (\n <div class=\"xplor-rte__helper\">{this.helperText}</div>\n )}\n </Host>\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"xplor-rich-text-editor.js","sourceRoot":"","sources":["../../../src/components/xplor-rich-text-editor/xplor-rich-text-editor.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Host,\n h,\n Prop,\n Event,\n EventEmitter,\n State,\n Watch,\n Element,\n Method,\n} from '@stencil/core';\nimport { Editor } from '@tiptap/core';\nimport StarterKit from '@tiptap/starter-kit';\nimport Underline from '@tiptap/extension-underline';\nimport Link from '@tiptap/extension-link';\nimport Placeholder from '@tiptap/extension-placeholder';\nimport CharacterCount from '@tiptap/extension-character-count';\nimport {\n convertLegacySlateJsonToHtml,\n} from '../../utils/slate-legacy-converter';\n\nlet rteIdCounter = 0;\n\n/** Payload emitted by xplorChange */\nexport interface RteChangePayload {\n html: string;\n text: string;\n isEmpty: boolean;\n}\n\n@Component({\n tag: 'xplor-rich-text-editor',\n styleUrl: 'xplor-rich-text-editor.scss',\n scoped: true,\n})\nexport class XplorRichTextEditor {\n // -------------------------------------------------------------------------\n // Internal refs & IDs\n // -------------------------------------------------------------------------\n\n @Element() el: HTMLElement;\n\n private editor: Editor | null = null;\n private editorEl!: HTMLDivElement;\n\n private readonly editorId = `xplor-rte-${++rteIdCounter}`;\n private readonly toolbarId = `${this.editorId}-toolbar`;\n private readonly charCountId = `${this.editorId}-char-count`;\n private readonly labelId = `${this.editorId}-label`;\n\n // -------------------------------------------------------------------------\n // Props\n // -------------------------------------------------------------------------\n\n /**\n * HTML string content of the editor. Supports two-way binding via xplorChange.\n */\n @Prop({ mutable: true }) value: string = '';\n\n /**\n * Stringified Slate 0.42.x document JSON for backwards compatibility.\n * When supplied, this takes precedence over `value` as the initial content.\n */\n @Prop() legacySlateDocument: string = '';\n\n /**\n * Placeholder text shown when the editor is empty.\n */\n @Prop() placeholder: string = 'Start typing…';\n\n /**\n * Visible label above the editor.\n */\n @Prop() label: string = '';\n\n /**\n * Marks the field as required. Adds an asterisk to the label.\n */\n @Prop() required: boolean = false;\n\n /**\n * Whether the editor is in read-only mode. Content is visible but not editable.\n * The toolbar is hidden in this mode.\n */\n @Prop() readonly: boolean = false;\n\n /**\n * Whether the editor is disabled. Content cannot be edited or interacted with.\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Accessible label for the editor region. Used when no `label` prop or\n * `ariaLabelledBy` is provided.\n */\n @Prop() ariaLabel: string = '';\n\n /**\n * ID of an external element that labels this editor (aria-labelledby).\n */\n @Prop() ariaLabelledBy: string = '';\n\n /**\n * Controls which toolbar buttons are rendered.\n * - `full` — All formatting options (default)\n * - `minimal` — Text style buttons only (bold, italic, underline, strike, code)\n * - `none` — No toolbar; editor acts as a plain rich-text input\n */\n @Prop() toolbar: 'full' | 'minimal' | 'none' = 'full';\n\n /**\n * Maximum character count. When set, a character counter is shown below the editor.\n */\n @Prop() maxLength: number | undefined = undefined;\n\n /**\n * Validation error message. Turns the editor border red and shows the message below.\n */\n @Prop() error: string = '';\n\n /**\n * Helper text shown below the editor when there is no error.\n */\n @Prop() helperText: string = '';\n\n // -------------------------------------------------------------------------\n // Events\n // -------------------------------------------------------------------------\n\n /**\n * Emitted whenever the content changes.\n * Payload: `{ html: string; text: string; isEmpty: boolean }`\n */\n @Event() xplorChange: EventEmitter<RteChangePayload>;\n\n /**\n * Emitted when the editor gains focus.\n */\n @Event() xplorFocus: EventEmitter<void>;\n\n /**\n * Emitted when the editor loses focus.\n */\n @Event() xplorBlur: EventEmitter<void>;\n\n // -------------------------------------------------------------------------\n // Internal state\n // -------------------------------------------------------------------------\n\n /** Incremented on every TipTap transaction to force toolbar re-render */\n @State() private editorVersion: number = 0;\n @State() private isFocused: boolean = false;\n @State() private showLinkPopover: boolean = false;\n @State() private linkUrl: string = '';\n @State() private charCount: number = 0;\n\n // -------------------------------------------------------------------------\n // Lifecycle\n // -------------------------------------------------------------------------\n\n componentDidLoad() {\n this.initEditor();\n }\n\n disconnectedCallback() {\n this.editor?.destroy();\n this.editor = null;\n }\n\n // -------------------------------------------------------------------------\n // Watchers\n // -------------------------------------------------------------------------\n\n @Watch('value')\n handleValueChange(newValue: string) {\n if (!this.editor) return;\n // Avoid a feedback loop — only sync if externally changed\n if (this.editor.getHTML() !== newValue) {\n this.editor.commands.setContent(newValue || '', false);\n }\n }\n\n @Watch('readonly')\n handleReadonlyChange() {\n this.editor?.setEditable(!this.readonly && !this.disabled);\n }\n\n @Watch('disabled')\n handleDisabledChange() {\n this.editor?.setEditable(!this.readonly && !this.disabled);\n }\n\n @Watch('legacySlateDocument')\n handleLegacyDocChange(newValue: string) {\n if (!newValue || !this.editor) return;\n const html = convertLegacySlateJsonToHtml(newValue);\n this.editor.commands.setContent(html, false);\n }\n\n // -------------------------------------------------------------------------\n // Public methods\n // -------------------------------------------------------------------------\n\n /**\n * Returns the current content as an HTML string.\n */\n @Method()\n async getHTMLContent(): Promise<string> {\n return this.editor?.getHTML() ?? '';\n }\n\n /**\n * Returns the current content as plain text (all markup stripped).\n */\n @Method()\n async getText(): Promise<string> {\n return this.editor?.getText() ?? '';\n }\n\n /**\n * Replaces the editor content with the provided HTML string.\n */\n @Method()\n async setContent(html: string): Promise<void> {\n this.editor?.commands.setContent(html, false);\n }\n\n /**\n * Clears all content from the editor.\n */\n @Method()\n async clearContent(): Promise<void> {\n this.editor?.commands.clearContent(true);\n }\n\n /**\n * Programmatically focuses the editor.\n */\n @Method()\n async focusEditor(): Promise<void> {\n this.editor?.commands.focus();\n }\n\n // -------------------------------------------------------------------------\n // Private: Editor initialisation\n // -------------------------------------------------------------------------\n\n private initEditor() {\n // Resolve initial content — legacy doc takes precedence over value\n let initialContent = '';\n if (this.legacySlateDocument) {\n initialContent = convertLegacySlateJsonToHtml(this.legacySlateDocument);\n } else if (this.value) {\n initialContent = this.value;\n }\n\n const extensions: any[] = [\n StarterKit,\n Underline,\n Link.configure({ openOnClick: false, autolink: true }),\n Placeholder.configure({ placeholder: this.placeholder }),\n ];\n\n if (this.maxLength != null) {\n extensions.push(CharacterCount.configure({ limit: this.maxLength }));\n }\n\n this.editor = new Editor({\n element: this.editorEl,\n extensions,\n content: initialContent,\n editable: !this.readonly && !this.disabled,\n\n onUpdate: ({ editor }) => {\n const html = editor.getHTML();\n this.value = html;\n if (this.maxLength != null) {\n this.charCount = editor.storage?.characterCount?.characters() ?? 0;\n }\n this.xplorChange.emit({\n html,\n text: editor.getText(),\n isEmpty: editor.isEmpty,\n });\n },\n\n onFocus: () => {\n this.isFocused = true;\n this.xplorFocus.emit();\n },\n\n onBlur: () => {\n this.isFocused = false;\n this.showLinkPopover = false;\n this.xplorBlur.emit();\n },\n\n // Increment editorVersion on every transaction + selection change so the\n // toolbar re-renders with up-to-date isActive() states.\n onTransaction: () => {\n this.editorVersion += 1;\n },\n\n onSelectionUpdate: () => {\n this.editorVersion += 1;\n },\n });\n\n // Set initial char count\n if (this.maxLength != null) {\n this.charCount = this.editor.storage?.characterCount?.characters() ?? 0;\n }\n }\n\n // -------------------------------------------------------------------------\n // Private: Toolbar command helpers\n // -------------------------------------------------------------------------\n\n private execCommand(command: () => void, event: MouseEvent) {\n event.preventDefault();\n if (!this.editor || this.disabled || this.readonly) return;\n command();\n }\n\n private handleLinkButtonClick = (event: MouseEvent) => {\n event.preventDefault();\n if (!this.editor || this.disabled || this.readonly) return;\n\n if (this.editor.isActive('link')) {\n // Remove existing link\n this.editor.chain().focus().extendMarkRange('link').unsetLink().run();\n } else {\n // Pre-populate URL input with existing href if cursor is on a link\n this.linkUrl = (this.editor.getAttributes('link').href as string) || '';\n this.showLinkPopover = !this.showLinkPopover;\n }\n };\n\n private handleLinkSubmit = (event: Event) => {\n event.preventDefault();\n if (!this.editor) return;\n\n const url = this.linkUrl.trim();\n if (url) {\n this.editor.chain().focus().extendMarkRange('link').setLink({ href: url }).run();\n } else {\n this.editor.chain().focus().extendMarkRange('link').unsetLink().run();\n }\n this.showLinkPopover = false;\n this.linkUrl = '';\n };\n\n private handleLinkCancel = () => {\n this.showLinkPopover = false;\n this.linkUrl = '';\n };\n\n private handleLinkKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n this.showLinkPopover = false;\n this.linkUrl = '';\n }\n };\n\n // -------------------------------------------------------------------------\n // Private: Render helpers\n // -------------------------------------------------------------------------\n\n private renderToolbarButton(\n label: string,\n isActive: boolean,\n onClick: (event: MouseEvent) => void,\n iconContent: any,\n ) {\n return (\n <button\n type=\"button\"\n class={{\n 'xplor-rte__toolbar-btn': true,\n 'xplor-rte__toolbar-btn--active': isActive,\n }}\n aria-label={label}\n aria-pressed={String(isActive)}\n title={label}\n disabled={this.disabled || this.readonly}\n onClick={onClick}\n >\n {iconContent}\n </button>\n );\n }\n\n private renderLinkPopover() {\n return (\n <div\n class=\"xplor-rte__link-popover\"\n role=\"dialog\"\n aria-label=\"Insert link\"\n aria-modal=\"false\"\n >\n <form onSubmit={this.handleLinkSubmit} class=\"xplor-rte__link-form\">\n <label\n class=\"xplor-rte__link-label\"\n htmlFor={`${this.editorId}-link-input`}\n >\n URL\n </label>\n <input\n id={`${this.editorId}-link-input`}\n class=\"xplor-rte__link-input\"\n type=\"url\"\n placeholder=\"https://example.com\"\n value={this.linkUrl}\n onInput={(e) => {\n this.linkUrl = (e.target as HTMLInputElement).value;\n }}\n onKeyDown={this.handleLinkKeyDown}\n autoFocus\n />\n <div class=\"xplor-rte__link-actions\">\n <button type=\"submit\" class=\"xplor-rte__link-apply\">\n Apply\n </button>\n <button\n type=\"button\"\n class=\"xplor-rte__link-cancel\"\n onClick={this.handleLinkCancel}\n >\n Cancel\n </button>\n </div>\n </form>\n </div>\n );\n }\n\n private renderToolbar() {\n if (this.toolbar === 'none' || !this.editor) return null;\n\n const e = this.editor;\n const isMinimal = this.toolbar === 'minimal';\n\n // --- Text style buttons (shared between full and minimal) ---\n const textStyleGroup = (\n <div class=\"xplor-rte__toolbar-group\" role=\"group\" aria-label=\"Text style\">\n {this.renderToolbarButton(\n 'Bold (Ctrl+B)',\n e.isActive('bold'),\n (ev) => this.execCommand(() => e.chain().focus().toggleBold().run(), ev),\n // Bold icon\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M15.6 11.79c.97-.67 1.65-1.77 1.65-2.79 0-2.26-1.75-4-4-4H7v14h7.04c2.09 0 3.71-1.7 3.71-3.79 0-1.52-.86-2.82-2.15-3.42zM10 6.5h3c.83 0 1.5.67 1.5 1.5S13.83 9.5 13 9.5h-3V6.5zm3.5 9H10V13h3.5c.83 0 1.5.67 1.5 1.5S14.33 15.5 13.5 15.5z\" />\n </svg>,\n )}\n {this.renderToolbarButton(\n 'Italic (Ctrl+I)',\n e.isActive('italic'),\n (ev) => this.execCommand(() => e.chain().focus().toggleItalic().run(), ev),\n // Italic icon\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M10 4v3h2.21l-3.42 8H6v3h8v-3h-2.21l3.42-8H18V4z\" />\n </svg>,\n )}\n {this.renderToolbarButton(\n 'Underline (Ctrl+U)',\n e.isActive('underline'),\n (ev) => this.execCommand(() => e.chain().focus().toggleUnderline().run(), ev),\n // Underline icon\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M12 17c3.31 0 6-2.69 6-6V3h-2.5v8c0 1.93-1.57 3.5-3.5 3.5S8.5 12.93 8.5 11V3H6v8c0 3.31 2.69 6 6 6zm-7 2v2h14v-2H5z\" />\n </svg>,\n )}\n {this.renderToolbarButton(\n 'Strikethrough',\n e.isActive('strike'),\n (ev) => this.execCommand(() => e.chain().focus().toggleStrike().run(), ev),\n // Strikethrough icon\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M6.85 7.08C6.85 4.37 9.45 3 12.24 3c1.64 0 3 .49 3.9 1.28.77.65 1.46 1.73 1.46 3.24h-3.01c0-.31-.05-.59-.15-.85-.29-.86-1.2-1.28-2.25-1.28-1.86 0-2.34.92-2.34 1.69 0 .48.25.88.74 1.21L13.25 9H7.39c-.21-.28-.54-.71-.54-1.92zM21 12v-2H3v2h9.62c1.15.45 1.96.75 1.96 1.97 0 1-.81 1.67-2.28 1.67-1.54 0-2.93-.54-2.93-2.51H7.4c0 1.97.93 5.15 5.85 5.15 3.47 0 5.37-1.96 5.37-4.15 0-.87-.23-1.58-.62-2.13z\" />\n </svg>,\n )}\n {this.renderToolbarButton(\n 'Inline code',\n e.isActive('code'),\n (ev) => this.execCommand(() => e.chain().focus().toggleCode().run(), ev),\n // Code icon\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\" />\n </svg>,\n )}\n </div>\n );\n\n if (isMinimal) {\n return (\n <div\n id={this.toolbarId}\n class=\"xplor-rte__toolbar\"\n role=\"toolbar\"\n aria-label=\"Text formatting\"\n aria-controls={this.editorId}\n >\n {textStyleGroup}\n </div>\n );\n }\n\n return (\n <div\n id={this.toolbarId}\n class=\"xplor-rte__toolbar\"\n role=\"toolbar\"\n aria-label=\"Text formatting\"\n aria-controls={this.editorId}\n >\n {/* Text style */}\n {textStyleGroup}\n\n <div class=\"xplor-rte__toolbar-divider\" aria-hidden=\"true\" />\n\n {/* Headings */}\n <div class=\"xplor-rte__toolbar-group\" role=\"group\" aria-label=\"Headings\">\n {([1, 2, 3] as const).map((level) =>\n this.renderToolbarButton(\n `Heading ${level}`,\n e.isActive('heading', { level }),\n (ev) => this.execCommand(() => e.chain().focus().toggleHeading({ level }).run(), ev),\n <span class=\"xplor-rte__toolbar-text\" aria-hidden=\"true\">H{level}</span>,\n ),\n )}\n </div>\n\n <div class=\"xplor-rte__toolbar-divider\" aria-hidden=\"true\" />\n\n {/* Lists */}\n <div class=\"xplor-rte__toolbar-group\" role=\"group\" aria-label=\"Lists\">\n {this.renderToolbarButton(\n 'Bullet list',\n e.isActive('bulletList'),\n (ev) => this.execCommand(() => e.chain().focus().toggleBulletList().run(), ev),\n // Bullet list icon\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M4 10.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0-6c-.83 0-1.5.67-1.5 1.5S3.17 7.5 4 7.5 5.5 6.83 5.5 6 4.83 4.5 4 4.5zm0 12c-.83 0-1.5.68-1.5 1.5s.68 1.5 1.5 1.5 1.5-.68 1.5-1.5-.67-1.5-1.5-1.5zM7 19h14v-2H7v2zm0-6h14v-2H7v2zm0-8v2h14V5H7z\" />\n </svg>,\n )}\n {this.renderToolbarButton(\n 'Numbered list',\n e.isActive('orderedList'),\n (ev) => this.execCommand(() => e.chain().focus().toggleOrderedList().run(), ev),\n // Ordered list icon\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M2 17h2v.5H3v1h1v.5H2v1h3v-4H2v1zm1-9h1V4H2v1h1v3zm-1 3h1.8L2 13.1v.9h3v-1H3.2L5 10.9V10H2v1zm5-6v2h14V5H7zm0 14h14v-2H7v2zm0-6h14v-2H7v2z\" />\n </svg>,\n )}\n </div>\n\n <div class=\"xplor-rte__toolbar-divider\" aria-hidden=\"true\" />\n\n {/* Block elements */}\n <div class=\"xplor-rte__toolbar-group\" role=\"group\" aria-label=\"Block elements\">\n {this.renderToolbarButton(\n 'Blockquote',\n e.isActive('blockquote'),\n (ev) => this.execCommand(() => e.chain().focus().toggleBlockquote().run(), ev),\n // Blockquote icon\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M6 17h3l2-4V7H5v6h3zm8 0h3l2-4V7h-6v6h3z\" />\n </svg>,\n )}\n {this.renderToolbarButton(\n 'Code block',\n e.isActive('codeBlock'),\n (ev) => this.execCommand(() => e.chain().focus().toggleCodeBlock().run(), ev),\n // Code block icon\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M20 3H4v10c0 2.21 1.79 4 4 4h6c2.21 0 4-1.79 4-4v-3h2c1.11 0 2-.89 2-2V5c0-1.11-.89-2-2-2zm0 5h-2V5h2v3zM4 19h16v2H4z\" />\n </svg>,\n )}\n </div>\n\n <div class=\"xplor-rte__toolbar-divider\" aria-hidden=\"true\" />\n\n {/* Insert & utilities */}\n <div class=\"xplor-rte__toolbar-group\" role=\"group\" aria-label=\"Insert and utilities\">\n <div class=\"xplor-rte__link-wrapper\">\n {this.renderToolbarButton(\n e.isActive('link') ? 'Remove link' : 'Insert link',\n e.isActive('link'),\n this.handleLinkButtonClick,\n // Link icon\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z\" />\n </svg>,\n )}\n {this.showLinkPopover && this.renderLinkPopover()}\n </div>\n {this.renderToolbarButton(\n 'Clear formatting',\n false,\n (ev) =>\n this.execCommand(\n () => e.chain().focus().clearNodes().unsetAllMarks().run(),\n ev,\n ),\n // Clear formatting icon\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M6 19h4v-2H6v2zM3 5v2h18V5H3zm3 9h7v-2H6v2zm10.88-3.36L18.3 9.2l1.41 1.41-1.42 1.43 1.42 1.41-1.41 1.41-1.42-1.41-1.41 1.41-1.41-1.41 1.41-1.41-1.41-1.43 1.41-1.41 1.41 1.43z\" />\n </svg>,\n )}\n </div>\n </div>\n );\n }\n\n // -------------------------------------------------------------------------\n // Render\n // -------------------------------------------------------------------------\n\n render() {\n const hasError = !!this.error;\n const showCharCount = this.maxLength != null;\n const charCountDescribedBy = showCharCount ? this.charCountId : undefined;\n const describedBy = charCountDescribedBy || undefined;\n\n // Resolve aria-label / aria-labelledby precedence:\n // 1. External ariaLabelledBy prop\n // 2. Internal label element (rendered via labelId)\n // 3. ariaLabel prop (falls back to default)\n const effectiveLabelledBy =\n this.ariaLabelledBy || (this.label ? this.labelId : undefined);\n const effectiveAriaLabel = !effectiveLabelledBy\n ? this.ariaLabel || 'Rich text editor'\n : undefined;\n\n const containerClasses = {\n 'xplor-rte': true,\n 'xplor-rte--focused': this.isFocused,\n 'xplor-rte--disabled': this.disabled,\n 'xplor-rte--readonly': this.readonly,\n 'xplor-rte--error': hasError,\n 'xplor-rte--has-toolbar': this.toolbar !== 'none',\n };\n\n return (\n <Host>\n {/* Label */}\n {this.label && (\n <label class=\"xplor-rte__label\" id={this.labelId} htmlFor={this.editorId}>\n {this.label}\n {this.required && (\n <span class=\"xplor-rte__required\" aria-hidden=\"true\">\n {' '}*\n </span>\n )}\n </label>\n )}\n\n {/* Editor wrapper */}\n <div class={containerClasses}>\n {/* Toolbar */}\n {this.renderToolbar()}\n\n {/* ProseMirror mount point */}\n <div\n class=\"xplor-rte__content\"\n id={this.editorId}\n ref={(el) => {\n this.editorEl = el as HTMLDivElement;\n }}\n aria-label={effectiveAriaLabel}\n aria-labelledby={effectiveLabelledBy}\n aria-multiline=\"true\"\n aria-readonly={this.readonly ? 'true' : undefined}\n aria-disabled={this.disabled ? 'true' : undefined}\n aria-required={this.required ? 'true' : undefined}\n aria-describedby={describedBy}\n aria-invalid={hasError ? 'true' : undefined}\n />\n\n {/* Character count */}\n {showCharCount && (\n <div\n id={this.charCountId}\n class={{\n 'xplor-rte__char-count': true,\n 'xplor-rte__char-count--limit': this.charCount >= this.maxLength,\n }}\n role=\"status\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n >\n {this.charCount} / {this.maxLength}\n </div>\n )}\n </div>\n\n {/* Validation error */}\n {hasError && (\n <div class=\"xplor-rte__error\" role=\"alert\" aria-live=\"assertive\">\n {this.error}\n </div>\n )}\n\n {/* Helper text */}\n {!hasError && this.helperText && (\n <div class=\"xplor-rte__helper\">{this.helperText}</div>\n )}\n </Host>\n );\n }\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { p as proxyCustomElement, H, c as createEvent, h, a as Host } from './index.js';
|
|
2
2
|
|
|
3
|
-
const xplorModalCss = "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n@layer base {\n \n :root {\n --color-primary: #db3b03;\n --color-primary-50: rgba(255, 152, 0, 1);\n --color-secondary: rgb(0, 119, 107);\n --color-secondary-50: rgba(1, 163, 157, 1);\n --color-tertiary: rgb(128, 104, 186);\n --color-tertiary: rgb(223, 242, 241);\n --color-white: white;\n --color-emphasis: rgb(8, 8, 9);\n --color-supergiant: rgb(213, 66, 99);\n --color-orange: rgb(250, 200, 127);\n --color-buttons: #fbbc05;\n --color-typography: #ea4335;\n --background: 20 66% 99%;\n --foreground: 20 51% 4%;\n --muted: 20 25% 86%;\n --muted-foreground: 20 7% 25%;\n --popover: 20 66% 98%;\n --popover-foreground: 20 51% 3%;\n --card: 20 66% 98%;\n --card-foreground: 20 51% 3%;\n --border: 20 15% 94%;\n --input: 20 15% 94%;\n --primary: 20 48% 72%;\n --primary-foreground: 20 48% 12%;\n --secondary: 20 12% 92%;\n --secondary-foreground: 20 12% 32%;\n --accent: 20 12% 92%;\n --accent-foreground: 20 12% 32%;\n --destructive: 11 80% 22%;\n --destructive-foreground: 11 80% 82%;\n --ring: 20 48% 72%;\n --radius: 0.5rem;\n --chart-1: 12 76% 61%;\n --chart-2: 173 58% 39%;\n --chart-3: 197 37% 24%;\n --chart-4: 43 74% 66%;\n --chart-5: 27 87% 67%;\n }\n .dark {\n --background: 253 43% 3%;\n --foreground: 253 31% 98%;\n --muted: 253 7% 13%;\n --muted-foreground: 253 13% 63%;\n --popover: 253 43% 3%;\n --popover-foreground: 253 31% 98%;\n --card: 253 43% 4%;\n --card-foreground: 253 31% 99%;\n --border: 215 27.9% 16.9%;\n --input: 215 27.9% 16.9%;\n --primary: 253 91% 58%;\n --primary-foreground: 253 91% 98%;\n --secondary: 253 7% 9%;\n --secondary-foreground: 253 7% 69%;\n --accent: 253 13% 14%;\n --accent-foreground: 253 13% 74%;\n --destructive: 339.2 90.36% 51.18%;\n --destructive-foreground: 0 0% 100%;\n --ring: 253 91% 58%;\n --chart-1: 220 70% 50%;\n --chart-2: 160 60% 45%;\n --chart-3: 30 80% 55%;\n --chart-4: 280 65% 60%;\n --chart-5: 340 75% 55%;\n }\n}\n@layer base {\n * {\n @apply border-border;\n }\n body {\n @apply box-border bg-background text-foreground;\n }\n}\n@layer utilities {\n .min-h-screen {\n min-height: 100vh;\n \n min-height: 100dvh;\n }\n .h-screen {\n height: 100vh;\n \n height: 100dvh;\n }\n}\n@tailwind base;\n@tailwind components;\n@tailwind utilities;\n@layer components {\n .glass {\n border: none;\n backdrop-filter: blur(var(--glass-blur, 40px));\n background-color: transparent;\n background-image: linear-gradient(135deg, rgb(255, 255, 255, var(--glass-opacity, 30%)), transparent), linear-gradient(var(--glass-reflex-degree, 100deg), rgb(255, 255, 255, var(--glass-reflex-opacity, 10%)) 25%, transparent 0);\n box-shadow: 0 0 0 1px rgb(255, 255, 255, var(--glass-border-opacity, 10%)) inset, 0 0 0 2px rgba(0, 0, 0, 0.05);\n text-shadow: 0 1px rgb(0, 0, 0, var(--glass-text-shadow-opacity, 5%));\n }\n}\n.tox.tox-tinymce.sc-xplor-modal {\n width: 50% !important;\n height: 400px !important;\n display: inline-flex;\n}\n\n\n@media only screen and (min-width: 600px) {\n .tox.tox-tinymce.sc-xplor-modal {\n width: 600px !important;\n }\n}\nh1.sc-xplor-modal {\n color: var(--color-primary);\n \n font-family: Inter;\n font-size: 48px;\n font-style: normal;\n font-weight: 400;\n line-height: 56px; \n}\n\nh2.sc-xplor-modal {\n color: var(--grey-1100252525, #252525);\n \n font-family: Inter;\n font-size: 32px;\n font-style: normal;\n font-weight: 600;\n line-height: 38px; \n letter-spacing: 0.25px;\n}\n\nh3.sc-xplor-modal {\n color: var(--grey-1100252525, #252525);\n \n font-family: Inter;\n font-size: 24px;\n font-style: normal;\n font-weight: 400;\n line-height: 32px; \n}\n\n.overline.sc-xplor-modal {\n color: var(--grey-1100252525, #252525);\n \n font-family: Inter;\n font-size: 12px;\n font-style: normal;\n font-weight: 500;\n line-height: 16px; \n letter-spacing: 3.2px;\n text-transform: uppercase;\n}\n\nol.sc-xplor-modal, ul.sc-xplor-modal {\n list-style: none;\n margin: 1rem;\n padding: 0;\n}\nol.sc-xplor-modal li.sc-xplor-modal, ul.sc-xplor-modal li.sc-xplor-modal {\n margin: 1rem;\n padding: 0;\n}\nol.mdc-list.sc-xplor-modal, ul.mdc-list.sc-xplor-modal {\n list-style-type: none;\n list-style: none;\n}\nol.mdc-list.sc-xplor-modal li.mdc-list-item.sc-xplor-modal, ul.mdc-list.sc-xplor-modal li.mdc-list-item.sc-xplor-modal {\n list-style-type: none;\n list-style: none !important;\n}\n\n.orange-label.sc-xplor-modal {\n color: var(--Orange-900-Primary, #db3b03);\n \n font-family: Inter;\n font-size: 12px;\n font-style: normal;\n font-weight: 400;\n line-height: 16px; \n letter-spacing: 0.4px;\n margin: 0px 0 -9px 16px;\n z-index: 1 !important;\n position: relative;\n width: fit-content;\n}\n.orange-label.grey-bg.sc-xplor-modal {\n background-color: #fefcfb;\n}\n\n#spinnerLoader.sc-xplor-modal {\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background-color: #fff;\n padding: 20px;\n border-radius: 5px;\n box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 100;\n pointer-events: none;\n}\n\n#textfield-Title-label.sc-xplor-modal {\n background-color: white;\n}\n\n.mdc-ripple-upgraded.sc-xplor-modal .mdc-text-field--outlined.sc-xplor-modal .mdc-notched-outline__notch.sc-xplor-modal {\n border: 0px solid transparent !important;\n border-bottom: 1px solid #db3b03 !important;\n padding: 0;\n height: 0;\n}\n\n.mdc-text-field--focused.sc-xplor-modal .mdc-notched-outline__notch.sc-xplor-modal {\n border: 0px solid transparent !important;\n border-bottom: 2px solid #db3b03 !important;\n}\n\n.mdc-text-field--outlined.sc-xplor-modal .mdc-notched-outline.sc-xplor-modal .mdc-notched-outline__notch.sc-xplor-modal {\n max-width: calc(100% - max(12px, var(--mdc-shape-small, 4px)) * 2);\n border-top: transparent;\n}\n\n.generate-btn.sc-xplor-modal {\n display: flex;\n height: 48px;\n padding: 12px 24px;\n justify-content: center;\n align-items: center;\n gap: 10px;\n border-radius: 16px;\n}\n.generate-btn.link.sc-xplor-modal:hover {\n background-color: var(--Cyan-700-Secondary, #e27046);\n color: var(--Cyan-700-Secondary-Text, #fff);\n}\n\n.bg-green.sc-xplor-modal {\n background: var(--Cyan-700-Secondary, #00776b);\n}\n\n.sc-xplor-modal-h {\n display: contents;\n}\n\n.xplor-modal__backdrop.sc-xplor-modal {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.5);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 2000;\n padding: 1rem;\n}\n.xplor-modal__card.sc-xplor-modal {\n position: relative;\n background-color: white;\n border-radius: 1rem;\n padding:
|
|
3
|
+
const xplorModalCss = "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n@layer base {\n \n :root {\n --color-primary: #db3b03;\n --color-primary-50: rgba(255, 152, 0, 1);\n --color-secondary: rgb(0, 119, 107);\n --color-secondary-50: rgba(1, 163, 157, 1);\n --color-tertiary: rgb(128, 104, 186);\n --color-tertiary: rgb(223, 242, 241);\n --color-white: white;\n --color-emphasis: rgb(8, 8, 9);\n --color-supergiant: rgb(213, 66, 99);\n --color-orange: rgb(250, 200, 127);\n --color-buttons: #fbbc05;\n --color-typography: #ea4335;\n --background: 20 66% 99%;\n --foreground: 20 51% 4%;\n --muted: 20 25% 86%;\n --muted-foreground: 20 7% 25%;\n --popover: 20 66% 98%;\n --popover-foreground: 20 51% 3%;\n --card: 20 66% 98%;\n --card-foreground: 20 51% 3%;\n --border: 20 15% 94%;\n --input: 20 15% 94%;\n --primary: 20 48% 72%;\n --primary-foreground: 20 48% 12%;\n --secondary: 20 12% 92%;\n --secondary-foreground: 20 12% 32%;\n --accent: 20 12% 92%;\n --accent-foreground: 20 12% 32%;\n --destructive: 11 80% 22%;\n --destructive-foreground: 11 80% 82%;\n --ring: 20 48% 72%;\n --radius: 0.5rem;\n --chart-1: 12 76% 61%;\n --chart-2: 173 58% 39%;\n --chart-3: 197 37% 24%;\n --chart-4: 43 74% 66%;\n --chart-5: 27 87% 67%;\n }\n .dark {\n --background: 253 43% 3%;\n --foreground: 253 31% 98%;\n --muted: 253 7% 13%;\n --muted-foreground: 253 13% 63%;\n --popover: 253 43% 3%;\n --popover-foreground: 253 31% 98%;\n --card: 253 43% 4%;\n --card-foreground: 253 31% 99%;\n --border: 215 27.9% 16.9%;\n --input: 215 27.9% 16.9%;\n --primary: 253 91% 58%;\n --primary-foreground: 253 91% 98%;\n --secondary: 253 7% 9%;\n --secondary-foreground: 253 7% 69%;\n --accent: 253 13% 14%;\n --accent-foreground: 253 13% 74%;\n --destructive: 339.2 90.36% 51.18%;\n --destructive-foreground: 0 0% 100%;\n --ring: 253 91% 58%;\n --chart-1: 220 70% 50%;\n --chart-2: 160 60% 45%;\n --chart-3: 30 80% 55%;\n --chart-4: 280 65% 60%;\n --chart-5: 340 75% 55%;\n }\n}\n@layer base {\n * {\n @apply border-border;\n }\n body {\n @apply box-border bg-background text-foreground;\n }\n}\n@layer utilities {\n .min-h-screen {\n min-height: 100vh;\n \n min-height: 100dvh;\n }\n .h-screen {\n height: 100vh;\n \n height: 100dvh;\n }\n}\n@tailwind base;\n@tailwind components;\n@tailwind utilities;\n@layer components {\n .glass {\n border: none;\n backdrop-filter: blur(var(--glass-blur, 40px));\n background-color: transparent;\n background-image: linear-gradient(135deg, rgb(255, 255, 255, var(--glass-opacity, 30%)), transparent), linear-gradient(var(--glass-reflex-degree, 100deg), rgb(255, 255, 255, var(--glass-reflex-opacity, 10%)) 25%, transparent 0);\n box-shadow: 0 0 0 1px rgb(255, 255, 255, var(--glass-border-opacity, 10%)) inset, 0 0 0 2px rgba(0, 0, 0, 0.05);\n text-shadow: 0 1px rgb(0, 0, 0, var(--glass-text-shadow-opacity, 5%));\n }\n}\n.tox.tox-tinymce.sc-xplor-modal {\n width: 50% !important;\n height: 400px !important;\n display: inline-flex;\n}\n\n\n@media only screen and (min-width: 600px) {\n .tox.tox-tinymce.sc-xplor-modal {\n width: 600px !important;\n }\n}\nh1.sc-xplor-modal {\n color: var(--color-primary);\n \n font-family: Inter;\n font-size: 48px;\n font-style: normal;\n font-weight: 400;\n line-height: 56px; \n}\n\nh2.sc-xplor-modal {\n color: var(--grey-1100252525, #252525);\n \n font-family: Inter;\n font-size: 32px;\n font-style: normal;\n font-weight: 600;\n line-height: 38px; \n letter-spacing: 0.25px;\n}\n\nh3.sc-xplor-modal {\n color: var(--grey-1100252525, #252525);\n \n font-family: Inter;\n font-size: 24px;\n font-style: normal;\n font-weight: 400;\n line-height: 32px; \n}\n\n.overline.sc-xplor-modal {\n color: var(--grey-1100252525, #252525);\n \n font-family: Inter;\n font-size: 12px;\n font-style: normal;\n font-weight: 500;\n line-height: 16px; \n letter-spacing: 3.2px;\n text-transform: uppercase;\n}\n\nol.sc-xplor-modal, ul.sc-xplor-modal {\n list-style: none;\n margin: 1rem;\n padding: 0;\n}\nol.sc-xplor-modal li.sc-xplor-modal, ul.sc-xplor-modal li.sc-xplor-modal {\n margin: 1rem;\n padding: 0;\n}\nol.mdc-list.sc-xplor-modal, ul.mdc-list.sc-xplor-modal {\n list-style-type: none;\n list-style: none;\n}\nol.mdc-list.sc-xplor-modal li.mdc-list-item.sc-xplor-modal, ul.mdc-list.sc-xplor-modal li.mdc-list-item.sc-xplor-modal {\n list-style-type: none;\n list-style: none !important;\n}\n\n.orange-label.sc-xplor-modal {\n color: var(--Orange-900-Primary, #db3b03);\n \n font-family: Inter;\n font-size: 12px;\n font-style: normal;\n font-weight: 400;\n line-height: 16px; \n letter-spacing: 0.4px;\n margin: 0px 0 -9px 16px;\n z-index: 1 !important;\n position: relative;\n width: fit-content;\n}\n.orange-label.grey-bg.sc-xplor-modal {\n background-color: #fefcfb;\n}\n\n#spinnerLoader.sc-xplor-modal {\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background-color: #fff;\n padding: 20px;\n border-radius: 5px;\n box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 100;\n pointer-events: none;\n}\n\n#textfield-Title-label.sc-xplor-modal {\n background-color: white;\n}\n\n.mdc-ripple-upgraded.sc-xplor-modal .mdc-text-field--outlined.sc-xplor-modal .mdc-notched-outline__notch.sc-xplor-modal {\n border: 0px solid transparent !important;\n border-bottom: 1px solid #db3b03 !important;\n padding: 0;\n height: 0;\n}\n\n.mdc-text-field--focused.sc-xplor-modal .mdc-notched-outline__notch.sc-xplor-modal {\n border: 0px solid transparent !important;\n border-bottom: 2px solid #db3b03 !important;\n}\n\n.mdc-text-field--outlined.sc-xplor-modal .mdc-notched-outline.sc-xplor-modal .mdc-notched-outline__notch.sc-xplor-modal {\n max-width: calc(100% - max(12px, var(--mdc-shape-small, 4px)) * 2);\n border-top: transparent;\n}\n\n.generate-btn.sc-xplor-modal {\n display: flex;\n height: 48px;\n padding: 12px 24px;\n justify-content: center;\n align-items: center;\n gap: 10px;\n border-radius: 16px;\n}\n.generate-btn.link.sc-xplor-modal:hover {\n background-color: var(--Cyan-700-Secondary, #e27046);\n color: var(--Cyan-700-Secondary-Text, #fff);\n}\n\n.bg-green.sc-xplor-modal {\n background: var(--Cyan-700-Secondary, #00776b);\n}\n\n.sc-xplor-modal-h {\n display: contents;\n}\n\n.xplor-modal__backdrop.sc-xplor-modal {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.5);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 2000;\n padding: 1rem;\n}\n.xplor-modal__card.sc-xplor-modal {\n position: relative;\n background-color: white;\n border-radius: 1rem;\n padding: 2rem 2.25rem;\n max-width: 90vw;\n display: flex;\n flex-direction: column;\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\n animation: xplor-modal-fade-in 0.2s ease-out;\n}\n.xplor-modal__card--scrollable.sc-xplor-modal {\n overflow: hidden;\n}\n.xplor-modal__close-btn.sc-xplor-modal {\n position: absolute;\n top: 2rem;\n right: 2.25rem;\n width: 3rem;\n height: 3rem;\n border: none;\n background-color: #DFF2F1;\n color: #008480;\n font-size: 1rem;\n cursor: pointer;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background-color 0.2s ease;\n z-index: 1;\n}\n.xplor-modal__close-btn.sc-xplor-modal:hover {\n background-color: #C5E8E6;\n}\n.xplor-modal__close-btn.sc-xplor-modal:active {\n background-color: #B0DFDD;\n}\n.xplor-modal__title.sc-xplor-modal {\n padding-right: 3.5rem;\n margin-bottom: 0.5rem;\n font-size: 1.5rem;\n font-weight: 500;\n color: rgba(0, 0, 0, 0.87);\n white-space: normal;\n word-wrap: break-word;\n}\n.xplor-modal__subtitle.sc-xplor-modal {\n margin: 0.5rem;\n margin-bottom: 1rem;\n font-size: 0.875rem;\n color: rgba(0, 0, 0, 0.6);\n}\n.xplor-modal__body.sc-xplor-modal {\n flex: 1;\n overflow-y: auto;\n margin-bottom: 1rem;\n}\n.xplor-modal__body--no-title.sc-xplor-modal {\n margin-top: 3.5rem;\n}\n.xplor-modal__actions.sc-xplor-modal {\n display: flex;\n gap: 0.5rem;\n justify-content: flex-end;\n margin: 1rem 0;\n}\n.xplor-modal__loading.sc-xplor-modal {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 3rem;\n}\n.xplor-modal__spinner.sc-xplor-modal {\n width: 3rem;\n height: 3rem;\n border: 4px solid rgba(0, 0, 0, 0.1);\n border-top-color: #008480;\n border-radius: 50%;\n animation: xplor-spinner-rotate 0.8s linear infinite;\n}\n\n@keyframes xplor-modal-fade-in {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n}\n@keyframes xplor-spinner-rotate {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}";
|
|
4
4
|
|
|
5
5
|
const XplorModal = /*@__PURE__*/ proxyCustomElement(class XplorModal extends H {
|
|
6
6
|
constructor() {
|
|
@@ -173,6 +173,6 @@ function defineCustomElement() {
|
|
|
173
173
|
defineCustomElement();
|
|
174
174
|
|
|
175
175
|
export { XplorModal as X, defineCustomElement as d };
|
|
176
|
-
//# sourceMappingURL=p-
|
|
176
|
+
//# sourceMappingURL=p-B7FEf2_x.js.map
|
|
177
177
|
|
|
178
|
-
//# sourceMappingURL=p-
|
|
178
|
+
//# sourceMappingURL=p-B7FEf2_x.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"p-B7FEf2_x.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/xplor-modal/xplor-modal.scss?tag=xplor-modal&encapsulation=scoped","src/components/xplor-modal/xplor-modal.tsx"],"sourcesContent":[":host {\n display: contents;\n}\n\n.xplor-modal {\n &__backdrop {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.5);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 2000;\n padding: 1rem;\n }\n\n &__card {\n position: relative;\n background-color: white;\n border-radius: 1rem;\n padding: 2rem 2.25rem;\n max-width: 90vw;\n display: flex;\n flex-direction: column;\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2),\n 0px 24px 38px 3px rgba(0, 0, 0, 0.14),\n 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\n animation: xplor-modal-fade-in 0.2s ease-out;\n\n &--scrollable {\n overflow: hidden;\n }\n }\n\n &__close-btn {\n position: absolute;\n top: 2rem;\n right: 2.25rem;\n width: 3rem;\n height: 3rem;\n border: none;\n background-color: #DFF2F1;\n color: #008480;\n font-size: 1rem;\n cursor: pointer;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background-color 0.2s ease;\n z-index: 1;\n\n &:hover {\n background-color: #C5E8E6;\n }\n\n &:active {\n background-color: #B0DFDD;\n }\n }\n\n &__title {\n padding-right: 3.5rem;\n margin-bottom: 0.5rem;\n font-size: 1.5rem;\n font-weight: 500;\n color: rgba(0, 0, 0, 0.87);\n white-space: normal;\n word-wrap: break-word;\n }\n\n &__subtitle {\n margin: 0.5rem;\n margin-bottom: 1rem;\n font-size: 0.875rem;\n color: rgba(0, 0, 0, 0.6);\n }\n\n &__body {\n flex: 1;\n overflow-y: auto;\n margin-bottom: 1rem;\n\n &--no-title {\n margin-top: 3.5rem;\n }\n }\n\n &__actions {\n display: flex;\n gap: 0.5rem;\n justify-content: flex-end;\n margin: 1rem 0;\n }\n\n &__loading {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 3rem;\n }\n\n &__spinner {\n width: 3rem;\n height: 3rem;\n border: 4px solid rgba(0, 0, 0, 0.1);\n border-top-color: #008480;\n border-radius: 50%;\n animation: xplor-spinner-rotate 0.8s linear infinite;\n }\n}\n\n@keyframes xplor-modal-fade-in {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n}\n\n@keyframes xplor-spinner-rotate {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n","import { Component, Host, h, Prop, Event, EventEmitter, Watch, Element, Listen } from '@stencil/core';\n\n@Component({\n tag: 'xplor-modal',\n styleUrl: 'xplor-modal.scss',\n scoped: true,\n})\nexport class XplorModal {\n /**\n * Whether the modal is open\n */\n @Prop({ mutable: true }) open: boolean = false;\n\n /**\n * Modal width\n */\n @Prop() width: string = '600px';\n\n /**\n * Maximum width\n */\n @Prop() maxWidth: string = '90%';\n\n /**\n * Maximum height\n */\n @Prop() maxHeight: string = '90%';\n\n /**\n * Whether the modal content is scrollable\n */\n @Prop() scrollable: boolean = true;\n\n /**\n * Persistent mode - prevents closing on backdrop click\n */\n @Prop() persistent: boolean = false;\n\n /**\n * Loading state\n */\n @Prop() loading: boolean = false;\n\n /**\n * Whether to show the title area (for spacing)\n */\n @Prop() showTitle: boolean = true;\n\n /**\n * Accessible label for the modal (used if no title slot)\n */\n @Prop() ariaLabel: string;\n\n /**\n * Close event\n */\n @Event() xplorClose: EventEmitter<void>;\n\n @Element() el: HTMLElement;\n\n private previouslyFocusedElement: HTMLElement | null = null;\n private dialogEl: HTMLElement;\n\n @Watch('open')\n handleOpenChange(newValue: boolean) {\n if (newValue) {\n document.body.style.overflow = 'hidden';\n this.previouslyFocusedElement = document.activeElement as HTMLElement;\n requestAnimationFrame(() => {\n this.setInitialFocus();\n });\n } else {\n document.body.style.overflow = '';\n if (this.previouslyFocusedElement) {\n this.previouslyFocusedElement.focus();\n this.previouslyFocusedElement = null;\n }\n }\n }\n\n disconnectedCallback() {\n document.body.style.overflow = '';\n }\n\n @Listen('keydown')\n handleKeyDown(event: KeyboardEvent) {\n if (!this.open) return;\n\n if (event.key === 'Escape' && !this.persistent) {\n event.preventDefault();\n this.closeModal();\n return;\n }\n\n if (event.key === 'Tab') {\n this.trapFocus(event);\n }\n }\n\n private getFocusableElements(): HTMLElement[] {\n if (!this.dialogEl) return [];\n const selectors = 'a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex=\"-1\"])';\n return Array.from(this.dialogEl.querySelectorAll(selectors)) as HTMLElement[];\n }\n\n private trapFocus(event: KeyboardEvent) {\n const focusableElements = this.getFocusableElements();\n if (focusableElements.length === 0) return;\n\n const firstElement = focusableElements[0];\n const lastElement = focusableElements[focusableElements.length - 1];\n\n if (event.shiftKey) {\n if (document.activeElement === firstElement) {\n event.preventDefault();\n lastElement.focus();\n }\n } else {\n if (document.activeElement === lastElement) {\n event.preventDefault();\n firstElement.focus();\n }\n }\n }\n\n private setInitialFocus() {\n const focusableElements = this.getFocusableElements();\n if (focusableElements.length > 0) {\n focusableElements[0].focus();\n } else if (this.dialogEl) {\n this.dialogEl.focus();\n }\n }\n\n private handleBackdropClick = () => {\n if (!this.persistent) {\n this.closeModal();\n }\n };\n\n private handleCardClick = (event: Event) => {\n event.stopPropagation();\n };\n\n private closeModal = () => {\n this.open = false;\n this.xplorClose.emit();\n };\n\n render() {\n if (!this.open) {\n return null;\n }\n\n const cardClasses = {\n 'xplor-modal__card': true,\n 'xplor-modal__card--scrollable': this.scrollable,\n };\n\n const bodyClasses = {\n 'xplor-modal__body': true,\n 'xplor-modal__body--no-title': !this.showTitle,\n };\n\n return (\n <Host>\n <div class=\"xplor-modal__backdrop\" onClick={this.handleBackdropClick}>\n <div\n class={cardClasses}\n style={{\n width: this.width,\n maxWidth: this.maxWidth,\n maxHeight: this.maxHeight,\n }}\n onClick={this.handleCardClick}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={this.ariaLabel ? undefined : 'xplor-modal-title'}\n aria-label={this.ariaLabel}\n tabindex=\"-1\"\n ref={(el) => (this.dialogEl = el)}\n >\n <button\n type=\"button\"\n class=\"xplor-modal__close-btn\"\n onClick={this.closeModal}\n aria-label=\"Close modal\"\n data-testid=\"common-modal-close-button\"\n >\n ✕\n </button>\n\n <div class=\"xplor-modal__title\" id=\"xplor-modal-title\">\n <slot name=\"title\" />\n </div>\n\n <div class=\"xplor-modal__subtitle\">\n <slot name=\"subtitle\" />\n </div>\n\n <div class={bodyClasses}>\n {this.loading ? (\n <div class=\"xplor-modal__loading\" role=\"status\" aria-label=\"Loading\">\n <div class=\"xplor-modal__spinner\"></div>\n </div>\n ) : ([\n <slot name=\"body\" />,\n <slot />\n ])}\n </div>\n\n <div class=\"xplor-modal__actions\">\n <slot name=\"actions\" />\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { p as proxyCustomElement, H, c as createEvent, h, a as Host } from './index.js';
|
|
2
|
-
import { d as defineCustomElement$2 } from './p-
|
|
2
|
+
import { d as defineCustomElement$2 } from './p-B7FEf2_x.js';
|
|
3
3
|
|
|
4
4
|
const XplorModalPersistent$1 = /*@__PURE__*/ proxyCustomElement(class XplorModalPersistent extends H {
|
|
5
5
|
constructor() {
|
|
@@ -23510,7 +23510,7 @@ const XplorRichTextEditor$1 = /*@__PURE__*/ proxyCustomElement(class XplorRichTe
|
|
|
23510
23510
|
/**
|
|
23511
23511
|
* Returns the current content as an HTML string.
|
|
23512
23512
|
*/
|
|
23513
|
-
async
|
|
23513
|
+
async getHTMLContent() {
|
|
23514
23514
|
var _a, _b;
|
|
23515
23515
|
return (_b = (_a = this.editor) === null || _a === void 0 ? void 0 : _a.getHTML()) !== null && _b !== void 0 ? _b : '';
|
|
23516
23516
|
}
|
|
@@ -23686,12 +23686,12 @@ const XplorRichTextEditor$1 = /*@__PURE__*/ proxyCustomElement(class XplorRichTe
|
|
|
23686
23686
|
'xplor-rte--error': hasError,
|
|
23687
23687
|
'xplor-rte--has-toolbar': this.toolbar !== 'none',
|
|
23688
23688
|
};
|
|
23689
|
-
return (h(Host, { key: '
|
|
23689
|
+
return (h(Host, { key: 'd15876a85220e846333352ee11c52960a17341be' }, this.label && (h("label", { key: 'ecc7035c2cb8543b4c7447b2aa6665f53260959a', class: "xplor-rte__label", id: this.labelId, htmlFor: this.editorId }, this.label, this.required && (h("span", { key: '8c5e9b8eb1efe34faa289748e8393a3261099489', class: "xplor-rte__required", "aria-hidden": "true" }, ' ', "*")))), h("div", { key: 'bd0b1c75612f26d7f7ee13cfcec584ebf6349f3a', class: containerClasses }, this.renderToolbar(), h("div", { key: 'ec047a31509004185b3be5abaa939a0278e86243', class: "xplor-rte__content", id: this.editorId, ref: (el) => {
|
|
23690
23690
|
this.editorEl = el;
|
|
23691
|
-
}, "aria-label": effectiveAriaLabel, "aria-labelledby": effectiveLabelledBy, "aria-multiline": "true", "aria-readonly": this.readonly ? 'true' : undefined, "aria-disabled": this.disabled ? 'true' : undefined, "aria-required": this.required ? 'true' : undefined, "aria-describedby": describedBy, "aria-invalid": hasError ? 'true' : undefined }), showCharCount && (h("div", { key: '
|
|
23691
|
+
}, "aria-label": effectiveAriaLabel, "aria-labelledby": effectiveLabelledBy, "aria-multiline": "true", "aria-readonly": this.readonly ? 'true' : undefined, "aria-disabled": this.disabled ? 'true' : undefined, "aria-required": this.required ? 'true' : undefined, "aria-describedby": describedBy, "aria-invalid": hasError ? 'true' : undefined }), showCharCount && (h("div", { key: '4b7806ebfe4356fcfbf71192385875897dbba4fa', id: this.charCountId, class: {
|
|
23692
23692
|
'xplor-rte__char-count': true,
|
|
23693
23693
|
'xplor-rte__char-count--limit': this.charCount >= this.maxLength,
|
|
23694
|
-
}, role: "status", "aria-live": "polite", "aria-atomic": "true" }, this.charCount, " / ", this.maxLength))), hasError && (h("div", { key: '
|
|
23694
|
+
}, role: "status", "aria-live": "polite", "aria-atomic": "true" }, this.charCount, " / ", this.maxLength))), hasError && (h("div", { key: 'b2892869df2c26f02158d30d8bf6ee239e503de3', class: "xplor-rte__error", role: "alert", "aria-live": "assertive" }, this.error)), !hasError && this.helperText && (h("div", { key: 'ca2eb4562b4d514f6602b915ef76e85dc8dc6b02', class: "xplor-rte__helper" }, this.helperText))));
|
|
23695
23695
|
}
|
|
23696
23696
|
get el() { return this; }
|
|
23697
23697
|
static get watchers() { return {
|
|
@@ -23720,7 +23720,7 @@ const XplorRichTextEditor$1 = /*@__PURE__*/ proxyCustomElement(class XplorRichTe
|
|
|
23720
23720
|
"showLinkPopover": [32],
|
|
23721
23721
|
"linkUrl": [32],
|
|
23722
23722
|
"charCount": [32],
|
|
23723
|
-
"
|
|
23723
|
+
"getHTMLContent": [64],
|
|
23724
23724
|
"getText": [64],
|
|
23725
23725
|
"setContent": [64],
|
|
23726
23726
|
"clearContent": [64],
|