le-kit 0.1.4 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/dist/cjs/{index-CO4npcak.js → index-WzJ78D5H.js} +9 -2
  2. package/dist/cjs/{index-CO4npcak.js.map → index-WzJ78D5H.js.map} +1 -1
  3. package/dist/cjs/index.cjs.js +2 -2
  4. package/dist/cjs/le-box.cjs.entry.js +2 -2
  5. package/dist/cjs/le-button.le-checkbox.le-component.le-popover.le-slot.le-string-input.entry.cjs.js.map +1 -1
  6. package/dist/cjs/le-button_6.cjs.entry.js +25 -22
  7. package/dist/cjs/le-card.cjs.entry.js +2 -2
  8. package/dist/cjs/le-kit.cjs.js +1 -1
  9. package/dist/cjs/le-number-input.cjs.entry.js +2 -2
  10. package/dist/cjs/le-popup.cjs.entry.js +1 -1
  11. package/dist/cjs/le-round-progress.cjs.entry.js +1 -1
  12. package/dist/cjs/le-stack.cjs.entry.js +2 -2
  13. package/dist/cjs/le-text.cjs.entry.js +2 -2
  14. package/dist/cjs/le-turntable.cjs.entry.js +1 -1
  15. package/dist/cjs/loader.cjs.js +1 -1
  16. package/dist/cjs/{utils-BeT0iyCQ.js → utils-CBjH2E8A.js} +3 -3
  17. package/dist/cjs/{utils-BeT0iyCQ.js.map → utils-CBjH2E8A.js.map} +1 -1
  18. package/dist/collection/assets/.gitkeep +1 -0
  19. package/dist/collection/assets/custom-elements.json +4305 -0
  20. package/dist/collection/components/le-component/le-component.js +10 -8
  21. package/dist/collection/components/le-component/le-component.js.map +1 -1
  22. package/dist/collection/components/le-slot/le-slot.js +15 -14
  23. package/dist/collection/components/le-slot/le-slot.js.map +1 -1
  24. package/dist/components/le-button2.js +24 -21
  25. package/dist/components/le-button2.js.map +1 -1
  26. package/dist/docs.json +2 -2
  27. package/dist/esm/{index-D71TXvJa.js → index-CdjJ98OT.js} +9 -3
  28. package/dist/esm/{index-D71TXvJa.js.map → index-CdjJ98OT.js.map} +1 -1
  29. package/dist/esm/index.js +2 -2
  30. package/dist/esm/le-box.entry.js +2 -2
  31. package/dist/esm/le-button.le-checkbox.le-component.le-popover.le-slot.le-string-input.entry.js.map +1 -1
  32. package/dist/esm/le-button_6.entry.js +25 -22
  33. package/dist/esm/le-card.entry.js +2 -2
  34. package/dist/esm/le-kit.js +2 -2
  35. package/dist/esm/le-number-input.entry.js +2 -2
  36. package/dist/esm/le-popup.entry.js +1 -1
  37. package/dist/esm/le-round-progress.entry.js +1 -1
  38. package/dist/esm/le-stack.entry.js +2 -2
  39. package/dist/esm/le-text.entry.js +2 -2
  40. package/dist/esm/le-turntable.entry.js +1 -1
  41. package/dist/esm/loader.js +2 -2
  42. package/dist/esm/{utils-CJLZrrdC.js → utils-CzfSUhYB.js} +3 -3
  43. package/dist/esm/{utils-CJLZrrdC.js.map → utils-CzfSUhYB.js.map} +1 -1
  44. package/dist/le-kit/assets/custom-elements.json +4305 -0
  45. package/dist/le-kit/index.esm.js +1 -1
  46. package/dist/le-kit/le-button.le-checkbox.le-component.le-popover.le-slot.le-string-input.entry.esm.js.map +1 -1
  47. package/dist/le-kit/le-kit.esm.js +1 -1
  48. package/dist/le-kit/{p-cfc35bd3.entry.js → p-0633b3ab.entry.js} +2 -2
  49. package/dist/le-kit/{p-0955b105.entry.js → p-1452a995.entry.js} +2 -2
  50. package/dist/le-kit/{p-18d79ee2.entry.js → p-220528ee.entry.js} +2 -2
  51. package/dist/le-kit/p-32ff3dbe.entry.js +2 -0
  52. package/dist/le-kit/p-32ff3dbe.entry.js.map +1 -0
  53. package/dist/le-kit/{p-d04da1f5.entry.js → p-3551598e.entry.js} +2 -2
  54. package/dist/le-kit/{p-79d179bd.entry.js → p-722899f0.entry.js} +2 -2
  55. package/dist/le-kit/{p-c8a9288e.entry.js → p-95764888.entry.js} +2 -2
  56. package/dist/le-kit/{p-D71TXvJa.js → p-CdjJ98OT.js} +2 -2
  57. package/dist/le-kit/{p-D71TXvJa.js.map → p-CdjJ98OT.js.map} +1 -1
  58. package/dist/le-kit/{p-qIai5-eB.js → p-CvDc0yWN.js} +2 -2
  59. package/dist/le-kit/{p-qIai5-eB.js.map → p-CvDc0yWN.js.map} +1 -1
  60. package/dist/le-kit/{p-024a764e.entry.js → p-bc20e30d.entry.js} +2 -2
  61. package/dist/le-kit/{p-4b1d3b6d.entry.js → p-d32eddad.entry.js} +2 -2
  62. package/dist/types/components.d.ts +4 -4
  63. package/package.json +1 -1
  64. package/dist/le-kit/index-D21JjI31.js.map +0 -1
  65. package/dist/le-kit/p-073cf0b9.entry.js +0 -2
  66. package/dist/le-kit/p-073cf0b9.entry.js.map +0 -1
  67. package/dist/le-kit/utils-apol-Xc_.js.map +0 -1
  68. /package/dist/le-kit/{p-cfc35bd3.entry.js.map → p-0633b3ab.entry.js.map} +0 -0
  69. /package/dist/le-kit/{p-0955b105.entry.js.map → p-1452a995.entry.js.map} +0 -0
  70. /package/dist/le-kit/{p-18d79ee2.entry.js.map → p-220528ee.entry.js.map} +0 -0
  71. /package/dist/le-kit/{p-d04da1f5.entry.js.map → p-3551598e.entry.js.map} +0 -0
  72. /package/dist/le-kit/{p-79d179bd.entry.js.map → p-722899f0.entry.js.map} +0 -0
  73. /package/dist/le-kit/{p-c8a9288e.entry.js.map → p-95764888.entry.js.map} +0 -0
  74. /package/dist/le-kit/{p-024a764e.entry.js.map → p-bc20e30d.entry.js.map} +0 -0
  75. /package/dist/le-kit/{p-4b1d3b6d.entry.js.map → p-d32eddad.entry.js.map} +0 -0
@@ -1,2 +1,2 @@
1
- import{a as t}from"./p-D71TXvJa.js";function e(t="le"){return`${t}-${Math.random().toString(36).substring(2,9)}`}function r(t){if(!t)return[];return t.split(",").map((t=>t.trim())).filter(Boolean)}function o(t,e=""){const r=e?`[slot="${e}"]`:":not([slot])";return t.querySelector(r)!==null}function i(e,r){r(t(e));const o=new MutationObserver((()=>{r(t(e))}));o.observe(e,{attributes:true,attributeFilter:["mode"]});o.observe(document.documentElement,{attributes:true,attributeFilter:["mode"]});let i=e;while(i){if(i instanceof Element&&i.parentElement){i=i.parentElement;o.observe(i,{attributes:true,attributeFilter:["mode"]});if(i.hasAttribute("mode")){break}}else{const t=i.getRootNode();if(t instanceof ShadowRoot){i=t.host;o.observe(i,{attributes:true,attributeFilter:["mode"]});if(i.hasAttribute("mode")){break}}else{break}}}return()=>o.disconnect()}function n(...t){const e=[];t.forEach((t=>{if(!t)return;if(typeof t==="string"){e.push(t)}else if(Array.isArray(t)){e.push(n(...t))}else if(typeof t==="object"){Object.entries(t).forEach((([t,r])=>{if(r){e.push(t)}}))}}));return e.join(" ")}export{n as c,e as g,i as o,r as p,o as s};
2
- //# sourceMappingURL=p-qIai5-eB.js.map
1
+ import{a as t}from"./p-CdjJ98OT.js";function e(t="le"){return`${t}-${Math.random().toString(36).substring(2,9)}`}function r(t){if(!t)return[];return t.split(",").map((t=>t.trim())).filter(Boolean)}function o(t,e=""){const r=e?`[slot="${e}"]`:":not([slot])";return t.querySelector(r)!==null}function i(e,r){r(t(e));const o=new MutationObserver((()=>{r(t(e))}));o.observe(e,{attributes:true,attributeFilter:["mode"]});o.observe(document.documentElement,{attributes:true,attributeFilter:["mode"]});let i=e;while(i){if(i instanceof Element&&i.parentElement){i=i.parentElement;o.observe(i,{attributes:true,attributeFilter:["mode"]});if(i.hasAttribute("mode")){break}}else{const t=i.getRootNode();if(t instanceof ShadowRoot){i=t.host;o.observe(i,{attributes:true,attributeFilter:["mode"]});if(i.hasAttribute("mode")){break}}else{break}}}return()=>o.disconnect()}function n(...t){const e=[];t.forEach((t=>{if(!t)return;if(typeof t==="string"){e.push(t)}else if(Array.isArray(t)){e.push(n(...t))}else if(typeof t==="object"){Object.entries(t).forEach((([t,r])=>{if(r){e.push(t)}}))}}));return e.join(" ")}export{n as c,e as g,i as o,r as p,o as s};
2
+ //# sourceMappingURL=p-CvDc0yWN.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"p-qIai5-eB.js","sources":["src/utils/utils.ts"],"sourcesContent":["/**\n * Utility functions for le-kit components\n */\n\nimport { getMode } from '../global/app';\n\n/**\n * Generates a unique ID for component instances\n */\nexport function generateId(prefix: string = 'le'): string {\n return `${prefix}-${Math.random().toString(36).substring(2, 9)}`;\n}\n\n/**\n * Parses a comma-separated string into an array\n */\nexport function parseCommaSeparated(value: string | undefined): string[] {\n if (!value) return [];\n return value\n .split(',')\n .map(s => s.trim())\n .filter(Boolean);\n}\n\n/**\n * Checks if a slot has content\n */\nexport function slotHasContent(el: HTMLElement, slotName: string = ''): boolean {\n const selector = slotName ? `[slot=\"${slotName}\"]` : ':not([slot])';\n return el.querySelector(selector) !== null;\n}\n\n/**\n * Sets up a MutationObserver to track mode changes on ancestor elements.\n * Returns a cleanup function to disconnect the observer.\n * \n * If the element or any ancestor has an explicit `mode` attribute, that creates\n * a \"mode boundary\" - the mode is determined from that point, not from further up.\n * This allows components like le-popover to force default mode for their children.\n * \n * @param el - The component's host element\n * @param callback - Function to call when mode changes, receives the new mode\n * @returns Cleanup function to disconnect the observer\n * \n * @example\n * ```tsx\n * export class MyComponent {\n * @Element() el: HTMLElement;\n * @State() adminMode: boolean = false;\n * private disconnectModeObserver?: () => void;\n * \n * connectedCallback() {\n * this.disconnectModeObserver = observeModeChanges(this.el, (mode) => {\n * this.adminMode = mode === 'admin';\n * });\n * }\n * \n * disconnectedCallback() {\n * this.disconnectModeObserver?.();\n * }\n * }\n * ```\n */\nexport function observeModeChanges(\n el: HTMLElement,\n callback: (mode: string) => void\n): () => void {\n // Call immediately with current mode\n callback(getMode(el));\n\n // Set up observer for mode attribute changes\n const observer = new MutationObserver(() => {\n callback(getMode(el));\n });\n\n // Observe the element itself (for mode boundary changes)\n observer.observe(el, {\n attributes: true,\n attributeFilter: ['mode'],\n });\n\n // Observe document root\n observer.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['mode'],\n });\n\n // Traverse up, crossing shadow boundaries, and observe each element\n let current: Node | null = el;\n while (current) {\n if (current instanceof Element && current.parentElement) {\n current = current.parentElement;\n observer.observe(current, {\n attributes: true,\n attributeFilter: ['mode'],\n });\n // If this element has an explicit mode, it's a boundary\n if ((current as Element).hasAttribute('mode')) {\n break;\n }\n } else {\n // Check if we're in a shadow root\n const root = current.getRootNode();\n if (root instanceof ShadowRoot) {\n // Cross the shadow boundary and observe the host\n current = root.host;\n observer.observe(current, {\n attributes: true,\n attributeFilter: ['mode'],\n });\n // If the host has an explicit mode, it's a boundary\n if ((current as Element).hasAttribute('mode')) {\n break;\n }\n } else {\n break;\n }\n }\n }\n\n // Return cleanup function\n return () => observer.disconnect();\n}\n\n/**\n * Combines multiple class names into a single string, filtering out falsy values.\n * \n * @param classes - arguments of class names, undefined, arrays, objects with boolean values and nested combinations of these\n * @returns Combined class names string\n */\nexport function classnames(...classes: any[]): string {\n const result: string[] = [];\n\n classes.forEach(cls => {\n if (!cls) return;\n\n if (typeof cls === 'string') {\n result.push(cls);\n } else if (Array.isArray(cls)) {\n result.push(classnames(...cls));\n } else if (typeof cls === 'object') {\n Object.entries(cls).forEach(([key, value]) => {\n if (value) {\n result.push(key);\n }\n });\n }\n });\n\n return result.join(' ');\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"p-CvDc0yWN.js","sources":["src/utils/utils.ts"],"sourcesContent":["/**\n * Utility functions for le-kit components\n */\n\nimport { getMode } from '../global/app';\n\n/**\n * Generates a unique ID for component instances\n */\nexport function generateId(prefix: string = 'le'): string {\n return `${prefix}-${Math.random().toString(36).substring(2, 9)}`;\n}\n\n/**\n * Parses a comma-separated string into an array\n */\nexport function parseCommaSeparated(value: string | undefined): string[] {\n if (!value) return [];\n return value\n .split(',')\n .map(s => s.trim())\n .filter(Boolean);\n}\n\n/**\n * Checks if a slot has content\n */\nexport function slotHasContent(el: HTMLElement, slotName: string = ''): boolean {\n const selector = slotName ? `[slot=\"${slotName}\"]` : ':not([slot])';\n return el.querySelector(selector) !== null;\n}\n\n/**\n * Sets up a MutationObserver to track mode changes on ancestor elements.\n * Returns a cleanup function to disconnect the observer.\n * \n * If the element or any ancestor has an explicit `mode` attribute, that creates\n * a \"mode boundary\" - the mode is determined from that point, not from further up.\n * This allows components like le-popover to force default mode for their children.\n * \n * @param el - The component's host element\n * @param callback - Function to call when mode changes, receives the new mode\n * @returns Cleanup function to disconnect the observer\n * \n * @example\n * ```tsx\n * export class MyComponent {\n * @Element() el: HTMLElement;\n * @State() adminMode: boolean = false;\n * private disconnectModeObserver?: () => void;\n * \n * connectedCallback() {\n * this.disconnectModeObserver = observeModeChanges(this.el, (mode) => {\n * this.adminMode = mode === 'admin';\n * });\n * }\n * \n * disconnectedCallback() {\n * this.disconnectModeObserver?.();\n * }\n * }\n * ```\n */\nexport function observeModeChanges(\n el: HTMLElement,\n callback: (mode: string) => void\n): () => void {\n // Call immediately with current mode\n callback(getMode(el));\n\n // Set up observer for mode attribute changes\n const observer = new MutationObserver(() => {\n callback(getMode(el));\n });\n\n // Observe the element itself (for mode boundary changes)\n observer.observe(el, {\n attributes: true,\n attributeFilter: ['mode'],\n });\n\n // Observe document root\n observer.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['mode'],\n });\n\n // Traverse up, crossing shadow boundaries, and observe each element\n let current: Node | null = el;\n while (current) {\n if (current instanceof Element && current.parentElement) {\n current = current.parentElement;\n observer.observe(current, {\n attributes: true,\n attributeFilter: ['mode'],\n });\n // If this element has an explicit mode, it's a boundary\n if ((current as Element).hasAttribute('mode')) {\n break;\n }\n } else {\n // Check if we're in a shadow root\n const root = current.getRootNode();\n if (root instanceof ShadowRoot) {\n // Cross the shadow boundary and observe the host\n current = root.host;\n observer.observe(current, {\n attributes: true,\n attributeFilter: ['mode'],\n });\n // If the host has an explicit mode, it's a boundary\n if ((current as Element).hasAttribute('mode')) {\n break;\n }\n } else {\n break;\n }\n }\n }\n\n // Return cleanup function\n return () => observer.disconnect();\n}\n\n/**\n * Combines multiple class names into a single string, filtering out falsy values.\n * \n * @param classes - arguments of class names, undefined, arrays, objects with boolean values and nested combinations of these\n * @returns Combined class names string\n */\nexport function classnames(...classes: any[]): string {\n const result: string[] = [];\n\n classes.forEach(cls => {\n if (!cls) return;\n\n if (typeof cls === 'string') {\n result.push(cls);\n } else if (Array.isArray(cls)) {\n result.push(classnames(...cls));\n } else if (typeof cls === 'object') {\n Object.entries(cls).forEach(([key, value]) => {\n if (value) {\n result.push(key);\n }\n });\n }\n });\n\n return result.join(' ');\n}\n"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{r as e,f as o,h as t,i as p}from"./p-D71TXvJa.js";const a=":host{display:contents}.le-popup-dialog{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;padding:0;border:none;background:transparent;max-width:none;max-height:none;overflow:visible;--_popup-min-width:var(--le-popup-min-width, 320px);--_popup-max-width:var(--le-popup-max-width, min(500px, 90vw));--_popup-min-height:var(--le-popup-min-height, auto)}.le-popup-dialog::backdrop{background:var(--le-popup-backdrop-color, rgba(0, 0, 0, 0.5));animation:le-popup-backdrop-fade 0.2s ease-out}@keyframes le-popup-backdrop-fade{from{opacity:0}to{opacity:1}}.le-popup-position-center{margin:auto}.le-popup-position-top{margin:var(--le-space-2xl, 48px) auto auto auto}.le-popup-position-top-left{margin:var(--le-space-lg, 24px) auto auto var(--le-space-lg, 24px)}.le-popup-position-top-right{margin:var(--le-space-lg, 24px) var(--le-space-lg, 24px) auto auto}.le-popup-position-bottom{margin:auto auto var(--le-space-2xl, 48px) auto}.le-popup-position-bottom-left{margin:auto auto var(--le-space-lg, 24px) var(--le-space-lg, 24px)}.le-popup-position-bottom-right{margin:auto var(--le-space-lg, 24px) var(--le-space-lg, 24px) auto}.le-popup-container{display:flex;flex-direction:column;min-width:var(--_popup-min-width);max-width:var(--_popup-max-width);min-height:var(--_popup-min-height);max-height:calc(100vh - var(--le-space-2xl, 48px) * 2);background:var(--le-color-surface, #ffffff);border:1px solid var(--le-color-border, #e0e0e0);border-radius:var(--le-radius-lg, 12px);box-shadow:var(--le-shadow-xl, 0 8px 32px rgba(0, 0, 0, 0.15));overflow:hidden;font-family:var(--le-font-family, system-ui, -apple-system, sans-serif);color:var(--le-color-text, #333);animation:le-popup-appear 0.2s ease-out}@keyframes le-popup-appear{from{opacity:0;transform:scale(0.95) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}.le-popup-header{flex-shrink:0;padding:var(--le-space-md, 16px) var(--le-space-lg, 24px);border-bottom:1px solid var(--le-color-border, #e0e0e0);background:var(--le-color-surface-alt, #f9f9f9);font-size:var(--le-font-size-lg, 1.125rem);font-weight:var(--le-font-weight-semibold, 600);color:var(--le-color-text, #333)}.le-popup-body{flex:1;padding:var(--le-space-lg, 24px);overflow-y:auto}.le-popup-message{margin:0;font-size:var(--le-font-size-md, 1rem);line-height:var(--le-line-height-relaxed, 1.6);color:var(--le-color-text, #333)}.le-popup-message+::slotted(*){margin-top:var(--le-space-md, 16px)}.le-popup-input{display:block;width:100%;margin-top:var(--le-space-md, 16px);padding:var(--le-space-sm, 8px) var(--le-space-md, 16px);font-family:inherit;font-size:var(--le-font-size-md, 1rem);color:var(--le-color-text, #333);background:var(--le-color-background, #fff);border:1px solid var(--le-color-border, #e0e0e0);border-radius:var(--le-radius-md, 8px);outline:none;transition:border-color var(--le-transition-fast, 0.15s ease),\n box-shadow var(--le-transition-fast, 0.15s ease);box-sizing:border-box}.le-popup-input:focus{border-color:var(--le-color-primary, #2196f3);box-shadow:0 0 0 3px var(--le-color-primary-light, rgba(33, 150, 243, 0.2))}.le-popup-input::placeholder{color:var(--le-color-text-muted, #999)}.le-popup-footer{flex-shrink:0;display:flex;justify-content:flex-end;gap:var(--le-space-sm, 8px);padding:var(--le-space-md, 16px) var(--le-space-lg, 24px);border-top:1px solid var(--le-color-border, #e0e0e0);background:var(--le-color-surface-alt, #f9f9f9)}.le-popup-btn{min-width:80px}@media (max-width: 480px){.le-popup-container{min-width:calc(100vw - var(--le-space-md, 16px) * 2);max-width:calc(100vw - var(--le-space-md, 16px) * 2)}.le-popup-footer{flex-direction:column-reverse}.le-popup-btn{width:100%}}";const i=class{constructor(t){e(this,t);this.leConfirm=o(this,"leConfirm");this.leCancel=o(this,"leCancel");this.leOpen=o(this,"leOpen");this.leClose=o(this,"leClose")}get el(){return t(this)}open=false;type="alert";popupTitle;message;modal=true;position="center";confirmText="OK";cancelText="Cancel";placeholder="";defaultValue="";closeOnBackdrop=true;inputValue="";leConfirm;leCancel;leOpen;leClose;dialogEl;inputEl;resolvePromise;componentWillLoad(){this.inputValue=this.defaultValue}componentDidLoad(){this.dialogEl?.addEventListener("cancel",this.handleDialogCancel)}disconnectedCallback(){this.dialogEl?.removeEventListener("cancel",this.handleDialogCancel)}handleDialogCancel=e=>{e.preventDefault();this.handleCancel()};async show(){return new Promise((e=>{this.resolvePromise=e;this.inputValue=this.defaultValue;this.open=true;requestAnimationFrame((()=>{if(this.dialogEl){if(this.modal){this.dialogEl.showModal()}else{this.dialogEl.show()}this.leOpen.emit();if(this.type==="prompt"&&this.inputEl){this.inputEl.focus();this.inputEl.select()}}}))}))}async hide(e=false){const o={confirmed:e,value:this.type==="prompt"?this.inputValue:undefined};this.dialogEl?.close();this.open=false;this.leClose.emit(o);if(this.resolvePromise){this.resolvePromise(o);this.resolvePromise=undefined}}handleConfirm=()=>{const e={confirmed:true,value:this.type==="prompt"?this.inputValue:undefined};this.leConfirm.emit(e);this.hide(true)};handleCancel=()=>{const e={confirmed:false,value:undefined};this.leCancel.emit(e);this.hide(false)};handleBackdropClick=e=>{if(this.closeOnBackdrop&&e.target===this.dialogEl){const o=this.dialogEl.getBoundingClientRect();const t=e.clientX>=o.left&&e.clientX<=o.right&&e.clientY>=o.top&&e.clientY<=o.bottom;if(!t){this.handleCancel()}}};handleInputChange=e=>{this.inputValue=e.target.value};handleKeyDown=e=>{if(e.key==="Enter"&&this.type!=="custom"){e.preventDefault();this.handleConfirm()}};hasSlot(e){return!!this.el.querySelector(`[slot="${e}"]`)}renderHeader(){if(this.hasSlot("header")){return p("div",{class:"le-popup-header",part:"header"},p("slot",{name:"header"}))}if(this.popupTitle){return p("div",{class:"le-popup-header",part:"header"},this.popupTitle)}return null}renderBody(){return p("div",{class:"le-popup-body",part:"body"},this.message&&p("p",{class:"le-popup-message"},this.message),this.type==="prompt"&&p("input",{type:"text",class:"le-popup-input",part:"input",placeholder:this.placeholder,value:this.inputValue,onInput:this.handleInputChange,onKeyDown:this.handleKeyDown,ref:e=>this.inputEl=e}),p("le-slot",{name:"",tag:"div",description:"Custom popup content",type:"slot"},p("slot",null)))}renderFooter(){if(this.hasSlot("footer")){return p("div",{class:"le-popup-footer",part:"footer"},p("slot",{name:"footer"}))}if(this.type==="custom"){return null}return p("div",{class:"le-popup-footer",part:"footer"},(this.type==="confirm"||this.type==="prompt")&&p("le-button",{variant:"outlined",part:"button-cancel",class:"le-popup-btn",onClick:this.handleCancel},this.cancelText),p("le-button",{variant:"solid",part:"button-confirm",class:"le-popup-btn",onClick:this.handleConfirm},this.confirmText))}render(){const e=`le-popup-position-${this.position}`;return p("dialog",{key:"1c38c82d3f466449ff57f731fc22936a7e5af0eb",class:`le-popup-dialog ${e}`,part:"dialog",ref:e=>this.dialogEl=e,onClick:this.handleBackdropClick},p("le-component",{key:"8f82316129786f9fe17ae6cc5f5a8cf7cbc3a9b5",component:"le-popup"},p("div",{key:"e5fef42ae8b41ea52db123b4576849407be33c65",class:"le-popup-container",part:"container"},this.renderHeader(),this.renderBody(),this.renderFooter())))}};i.style=a;export{i as le_popup};
2
- //# sourceMappingURL=p-024a764e.entry.js.map
1
+ import{r as e,f as o,h as t,i as p}from"./p-CdjJ98OT.js";const a=":host{display:contents}.le-popup-dialog{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;padding:0;border:none;background:transparent;max-width:none;max-height:none;overflow:visible;--_popup-min-width:var(--le-popup-min-width, 320px);--_popup-max-width:var(--le-popup-max-width, min(500px, 90vw));--_popup-min-height:var(--le-popup-min-height, auto)}.le-popup-dialog::backdrop{background:var(--le-popup-backdrop-color, rgba(0, 0, 0, 0.5));animation:le-popup-backdrop-fade 0.2s ease-out}@keyframes le-popup-backdrop-fade{from{opacity:0}to{opacity:1}}.le-popup-position-center{margin:auto}.le-popup-position-top{margin:var(--le-space-2xl, 48px) auto auto auto}.le-popup-position-top-left{margin:var(--le-space-lg, 24px) auto auto var(--le-space-lg, 24px)}.le-popup-position-top-right{margin:var(--le-space-lg, 24px) var(--le-space-lg, 24px) auto auto}.le-popup-position-bottom{margin:auto auto var(--le-space-2xl, 48px) auto}.le-popup-position-bottom-left{margin:auto auto var(--le-space-lg, 24px) var(--le-space-lg, 24px)}.le-popup-position-bottom-right{margin:auto var(--le-space-lg, 24px) var(--le-space-lg, 24px) auto}.le-popup-container{display:flex;flex-direction:column;min-width:var(--_popup-min-width);max-width:var(--_popup-max-width);min-height:var(--_popup-min-height);max-height:calc(100vh - var(--le-space-2xl, 48px) * 2);background:var(--le-color-surface, #ffffff);border:1px solid var(--le-color-border, #e0e0e0);border-radius:var(--le-radius-lg, 12px);box-shadow:var(--le-shadow-xl, 0 8px 32px rgba(0, 0, 0, 0.15));overflow:hidden;font-family:var(--le-font-family, system-ui, -apple-system, sans-serif);color:var(--le-color-text, #333);animation:le-popup-appear 0.2s ease-out}@keyframes le-popup-appear{from{opacity:0;transform:scale(0.95) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}.le-popup-header{flex-shrink:0;padding:var(--le-space-md, 16px) var(--le-space-lg, 24px);border-bottom:1px solid var(--le-color-border, #e0e0e0);background:var(--le-color-surface-alt, #f9f9f9);font-size:var(--le-font-size-lg, 1.125rem);font-weight:var(--le-font-weight-semibold, 600);color:var(--le-color-text, #333)}.le-popup-body{flex:1;padding:var(--le-space-lg, 24px);overflow-y:auto}.le-popup-message{margin:0;font-size:var(--le-font-size-md, 1rem);line-height:var(--le-line-height-relaxed, 1.6);color:var(--le-color-text, #333)}.le-popup-message+::slotted(*){margin-top:var(--le-space-md, 16px)}.le-popup-input{display:block;width:100%;margin-top:var(--le-space-md, 16px);padding:var(--le-space-sm, 8px) var(--le-space-md, 16px);font-family:inherit;font-size:var(--le-font-size-md, 1rem);color:var(--le-color-text, #333);background:var(--le-color-background, #fff);border:1px solid var(--le-color-border, #e0e0e0);border-radius:var(--le-radius-md, 8px);outline:none;transition:border-color var(--le-transition-fast, 0.15s ease),\n box-shadow var(--le-transition-fast, 0.15s ease);box-sizing:border-box}.le-popup-input:focus{border-color:var(--le-color-primary, #2196f3);box-shadow:0 0 0 3px var(--le-color-primary-light, rgba(33, 150, 243, 0.2))}.le-popup-input::placeholder{color:var(--le-color-text-muted, #999)}.le-popup-footer{flex-shrink:0;display:flex;justify-content:flex-end;gap:var(--le-space-sm, 8px);padding:var(--le-space-md, 16px) var(--le-space-lg, 24px);border-top:1px solid var(--le-color-border, #e0e0e0);background:var(--le-color-surface-alt, #f9f9f9)}.le-popup-btn{min-width:80px}@media (max-width: 480px){.le-popup-container{min-width:calc(100vw - var(--le-space-md, 16px) * 2);max-width:calc(100vw - var(--le-space-md, 16px) * 2)}.le-popup-footer{flex-direction:column-reverse}.le-popup-btn{width:100%}}";const i=class{constructor(t){e(this,t);this.leConfirm=o(this,"leConfirm");this.leCancel=o(this,"leCancel");this.leOpen=o(this,"leOpen");this.leClose=o(this,"leClose")}get el(){return t(this)}open=false;type="alert";popupTitle;message;modal=true;position="center";confirmText="OK";cancelText="Cancel";placeholder="";defaultValue="";closeOnBackdrop=true;inputValue="";leConfirm;leCancel;leOpen;leClose;dialogEl;inputEl;resolvePromise;componentWillLoad(){this.inputValue=this.defaultValue}componentDidLoad(){this.dialogEl?.addEventListener("cancel",this.handleDialogCancel)}disconnectedCallback(){this.dialogEl?.removeEventListener("cancel",this.handleDialogCancel)}handleDialogCancel=e=>{e.preventDefault();this.handleCancel()};async show(){return new Promise((e=>{this.resolvePromise=e;this.inputValue=this.defaultValue;this.open=true;requestAnimationFrame((()=>{if(this.dialogEl){if(this.modal){this.dialogEl.showModal()}else{this.dialogEl.show()}this.leOpen.emit();if(this.type==="prompt"&&this.inputEl){this.inputEl.focus();this.inputEl.select()}}}))}))}async hide(e=false){const o={confirmed:e,value:this.type==="prompt"?this.inputValue:undefined};this.dialogEl?.close();this.open=false;this.leClose.emit(o);if(this.resolvePromise){this.resolvePromise(o);this.resolvePromise=undefined}}handleConfirm=()=>{const e={confirmed:true,value:this.type==="prompt"?this.inputValue:undefined};this.leConfirm.emit(e);this.hide(true)};handleCancel=()=>{const e={confirmed:false,value:undefined};this.leCancel.emit(e);this.hide(false)};handleBackdropClick=e=>{if(this.closeOnBackdrop&&e.target===this.dialogEl){const o=this.dialogEl.getBoundingClientRect();const t=e.clientX>=o.left&&e.clientX<=o.right&&e.clientY>=o.top&&e.clientY<=o.bottom;if(!t){this.handleCancel()}}};handleInputChange=e=>{this.inputValue=e.target.value};handleKeyDown=e=>{if(e.key==="Enter"&&this.type!=="custom"){e.preventDefault();this.handleConfirm()}};hasSlot(e){return!!this.el.querySelector(`[slot="${e}"]`)}renderHeader(){if(this.hasSlot("header")){return p("div",{class:"le-popup-header",part:"header"},p("slot",{name:"header"}))}if(this.popupTitle){return p("div",{class:"le-popup-header",part:"header"},this.popupTitle)}return null}renderBody(){return p("div",{class:"le-popup-body",part:"body"},this.message&&p("p",{class:"le-popup-message"},this.message),this.type==="prompt"&&p("input",{type:"text",class:"le-popup-input",part:"input",placeholder:this.placeholder,value:this.inputValue,onInput:this.handleInputChange,onKeyDown:this.handleKeyDown,ref:e=>this.inputEl=e}),p("le-slot",{name:"",tag:"div",description:"Custom popup content",type:"slot"},p("slot",null)))}renderFooter(){if(this.hasSlot("footer")){return p("div",{class:"le-popup-footer",part:"footer"},p("slot",{name:"footer"}))}if(this.type==="custom"){return null}return p("div",{class:"le-popup-footer",part:"footer"},(this.type==="confirm"||this.type==="prompt")&&p("le-button",{variant:"outlined",part:"button-cancel",class:"le-popup-btn",onClick:this.handleCancel},this.cancelText),p("le-button",{variant:"solid",part:"button-confirm",class:"le-popup-btn",onClick:this.handleConfirm},this.confirmText))}render(){const e=`le-popup-position-${this.position}`;return p("dialog",{key:"1c38c82d3f466449ff57f731fc22936a7e5af0eb",class:`le-popup-dialog ${e}`,part:"dialog",ref:e=>this.dialogEl=e,onClick:this.handleBackdropClick},p("le-component",{key:"8f82316129786f9fe17ae6cc5f5a8cf7cbc3a9b5",component:"le-popup"},p("div",{key:"e5fef42ae8b41ea52db123b4576849407be33c65",class:"le-popup-container",part:"container"},this.renderHeader(),this.renderBody(),this.renderFooter())))}};i.style=a;export{i as le_popup};
2
+ //# sourceMappingURL=p-bc20e30d.entry.js.map
@@ -1,2 +1,2 @@
1
- import{r as t,h as e,i,H as l}from"./p-D71TXvJa.js";import{o}from"./p-qIai5-eB.js";const n=":host{display:block}:host([hidden]){display:none}.le-text{margin:0;color:var(--le-text-color, var(--le-color-text));font-family:var(--le-font-family);line-height:var(--le-text-line-height, 1.5)}.variant-p{font-size:var(--le-font-size-base, 1rem);font-weight:var(--le-font-weight-normal, 400);color:var(--le-color-text)}.variant-h1{font-size:var(--le-font-size-4xl, 2.5rem);font-weight:var(--le-font-weight-bold, 700);line-height:1.2;color:var(--le-color-text);letter-spacing:-0.02em}.variant-h2{font-size:var(--le-font-size-3xl, 2rem);font-weight:var(--le-font-weight-bold, 700);line-height:1.25;color:var(--le-color-text);letter-spacing:-0.01em}.variant-h3{font-size:var(--le-font-size-2xl, 1.5rem);font-weight:var(--le-font-weight-semibold, 600);line-height:1.3;color:var(--le-color-text)}.variant-h4{font-size:var(--le-font-size-xl, 1.25rem);font-weight:var(--le-font-weight-semibold, 600);line-height:1.35;color:var(--le-color-text)}.variant-h5{font-size:var(--le-font-size-lg, 1.125rem);font-weight:var(--le-font-weight-medium, 500);line-height:1.4;color:var(--le-color-text)}.variant-h6{font-size:var(--le-font-size-base, 1rem);font-weight:var(--le-font-weight-medium, 500);line-height:1.45;color:var(--le-color-text);text-transform:uppercase;letter-spacing:0.05em}.variant-code{font-family:var(--le-font-family-mono, 'SF Mono', 'Fira Code', 'Consolas', monospace);font-size:var(--le-font-size-sm, 0.875rem);background:var(--le-color-surface-alt, #f5f5f5);padding:var(--le-space-md);border-radius:var(--le-radius-md);overflow-x:auto;white-space:pre-wrap;color:var(--le-color-text)}.variant-quote{font-size:var(--le-font-size-lg, 1.125rem);font-style:italic;color:var(--le-color-text-secondary);border-left:4px solid var(--le-color-primary);padding-left:var(--le-space-lg);margin-left:0;margin-right:0}.variant-label{font-size:var(--le-font-size-sm, 0.875rem);font-weight:var(--le-font-weight-medium, 500);color:var(--le-color-text-secondary);text-transform:uppercase;letter-spacing:0.05em}.variant-small{font-size:var(--le-font-size-sm, 0.875rem);color:var(--le-color-text-secondary)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.truncate.max-lines-2,.truncate.max-lines-3,.truncate.max-lines-4,.truncate.max-lines-5{white-space:normal;display:-webkit-box;-webkit-box-orient:vertical}.truncate.max-lines-2{-webkit-line-clamp:2;line-clamp:2}.truncate.max-lines-3{-webkit-line-clamp:3;line-clamp:3}.truncate.max-lines-4{-webkit-line-clamp:4;line-clamp:4}.truncate.max-lines-5{-webkit-line-clamp:5;line-clamp:5}:host([align=\"center\"]) .le-text{text-align:center}:host([align=\"right\"]) .le-text{text-align:right}:host([align=\"justify\"]) .le-text{text-align:justify}.le-text a{color:var(--le-color-primary);text-decoration:underline}.le-text a:hover{color:var(--le-color-primary-dark)}.le-text strong,.le-text b{font-weight:var(--le-font-weight-bold, 700)}.le-text em,.le-text i{font-style:italic}.le-text u{text-decoration:underline}.le-text s,.le-text strike{text-decoration:line-through}";const s=class{constructor(e){t(this,e)}get el(){return e(this)}variant="p";align="left";color;truncate=false;maxLines;adminMode=false;content="";isFocused=false;selectionState={isBold:false,isItalic:false,isUnderline:false,isStrikethrough:false,isLink:false,blockType:"p"};editorRef;slotRef;disconnectModeObserver;connectedCallback(){this.disconnectModeObserver=o(this.el,(t=>{const e=this.adminMode;this.adminMode=t==="admin";if(this.adminMode&&!e){requestAnimationFrame((()=>this.readSlottedContent()))}else if(!this.adminMode&&e){this.syncContentToSlot()}}))}disconnectedCallback(){this.disconnectModeObserver?.()}onVariantChange(){if(this.adminMode&&this.editorRef){this.syncContentToSlot()}}readSlottedContent(){if(!this.slotRef)return;const t=this.slotRef.assignedNodes({flatten:true});let e="";t.forEach((t=>{if(t.nodeType===Node.TEXT_NODE){e+=t.textContent}else if(t.nodeType===Node.ELEMENT_NODE){e+=t.innerHTML||t.textContent}}));this.content=e.trim()}syncContentToSlot(){if(!this.editorRef)return;const t=this.editorRef.innerHTML;const e=this.slotRef;if(e){const i=e.assignedNodes({flatten:true});if(i.length>0){const e=i[0];if(e.nodeType===Node.ELEMENT_NODE){e.innerHTML=t}else if(e.nodeType===Node.TEXT_NODE){const i=e.parentNode;if(i){const l=document.createElement("span");l.innerHTML=t;i.replaceChild(l,e);if(l.childNodes.length===1&&l.firstChild?.nodeType===Node.TEXT_NODE){i.replaceChild(l.firstChild,l)}}}}else{this.el.innerHTML=t}}}handleInput=()=>{if(this.editorRef){this.content=this.editorRef.innerHTML;this.updateSelectionState()}};handleFocus=()=>{this.isFocused=true;this.updateSelectionState()};handleBlur=t=>{const e=t.relatedTarget;const i=this.el.shadowRoot?.querySelector(".le-text-toolbar");if(i?.contains(e)){return}setTimeout((()=>{if(!this.el.shadowRoot?.activeElement){this.isFocused=false;this.syncContentToSlot()}}),150)};handleSelectionChange=()=>{this.updateSelectionState()};updateSelectionState(){const t=window.getSelection();if(!t||t.rangeCount===0)return;this.selectionState={isBold:document.queryCommandState("bold"),isItalic:document.queryCommandState("italic"),isUnderline:document.queryCommandState("underline"),isStrikethrough:document.queryCommandState("strikeThrough"),isLink:this.isSelectionInLink(t),blockType:this.variant}}isSelectionInLink(t){if(!t.anchorNode)return false;let e=t.anchorNode;while(e&&e!==this.editorRef){if(e.nodeName==="A")return true;e=e.parentNode}return false}execCommand(t,e){this.editorRef?.focus();document.execCommand(t,false,e);this.handleInput();this.updateSelectionState()}toggleBold=t=>{t.preventDefault();this.execCommand("bold")};toggleItalic=t=>{t.preventDefault();this.execCommand("italic")};toggleUnderline=t=>{t.preventDefault();this.execCommand("underline")};toggleStrikethrough=t=>{t.preventDefault();this.execCommand("strikeThrough")};toggleLink=t=>{t.preventDefault();if(this.selectionState.isLink){this.execCommand("unlink")}else{const t=prompt("Enter URL:","https://");if(t){this.execCommand("createLink",t)}}};changeVariant=t=>{const e=t.target;this.variant=e.value};renderToolbar(){return i("div",{class:"le-text-toolbar"},i("select",{class:"le-text-toolbar-select",onChange:this.changeVariant,onMouseDown:t=>t.preventDefault()},i("option",{value:"p",selected:this.variant==="p"},"Paragraph"),i("option",{value:"h1",selected:this.variant==="h1"},"Heading 1"),i("option",{value:"h2",selected:this.variant==="h2"},"Heading 2"),i("option",{value:"h3",selected:this.variant==="h3"},"Heading 3"),i("option",{value:"h4",selected:this.variant==="h4"},"Heading 4"),i("option",{value:"h5",selected:this.variant==="h5"},"Heading 5"),i("option",{value:"h6",selected:this.variant==="h6"},"Heading 6"),i("option",{value:"quote",selected:this.variant==="quote"},"Quote"),i("option",{value:"code",selected:this.variant==="code"},"Code"),i("option",{value:"label",selected:this.variant==="label"},"Label"),i("option",{value:"small",selected:this.variant==="small"},"Small")),i("div",{class:"le-text-toolbar-divider"}),i("button",{type:"button",class:{"le-text-toolbar-btn":true,active:this.selectionState.isBold},onMouseDown:this.toggleBold,title:"Bold (Ctrl+B)"},i("strong",null,"B")),i("button",{type:"button",class:{"le-text-toolbar-btn":true,active:this.selectionState.isItalic},onMouseDown:this.toggleItalic,title:"Italic (Ctrl+I)"},i("em",null,"I")),i("button",{type:"button",class:{"le-text-toolbar-btn":true,active:this.selectionState.isUnderline},onMouseDown:this.toggleUnderline,title:"Underline (Ctrl+U)"},i("span",{style:{textDecoration:"underline"}},"U")),i("button",{type:"button",class:{"le-text-toolbar-btn":true,active:this.selectionState.isStrikethrough},onMouseDown:this.toggleStrikethrough,title:"Strikethrough"},i("span",{style:{textDecoration:"line-through"}},"S")),i("div",{class:"le-text-toolbar-divider"}),i("button",{type:"button",class:{"le-text-toolbar-btn":true,active:this.selectionState.isLink},onMouseDown:this.toggleLink,title:this.selectionState.isLink?"Remove link":"Add link"},"🔗"))}getTag(){switch(this.variant){case"quote":return"blockquote";case"code":return"pre";case"label":return"label";case"small":return"small";default:return this.variant}}render(){const t=this.getTag();const e={};if(this.color){e.color=this.color}if(this.align){e.textAlign=this.align}const o={"le-text":true,[`variant-${this.variant}`]:true,truncate:this.truncate,[`max-lines-${this.maxLines}`]:this.truncate&&this.maxLines};if(this.adminMode){return i(l,{class:"admin-mode"},i("le-component",{component:"le-text"},i("div",{class:"le-text-editor-wrapper"},this.isFocused&&this.renderToolbar(),i(t,{class:o,part:"text",style:e},i("div",{ref:t=>this.editorRef=t,class:"le-text-editor",contentEditable:true,onInput:this.handleInput,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeyUp:this.handleSelectionChange,onMouseUp:this.handleSelectionChange,innerHTML:this.content})),i("div",{class:"hidden-slot"},i("slot",{ref:t=>this.slotRef=t,onSlotchange:()=>this.readSlottedContent()})))))}return i(l,null,i(t,{class:o,part:"text",style:e},i("slot",{ref:t=>this.slotRef=t})))}static get watchers(){return{variant:["onVariantChange"]}}};s.style=n;export{s as le_text};
2
- //# sourceMappingURL=p-4b1d3b6d.entry.js.map
1
+ import{r as t,h as e,i,H as l}from"./p-CdjJ98OT.js";import{o}from"./p-CvDc0yWN.js";const n=":host{display:block}:host([hidden]){display:none}.le-text{margin:0;color:var(--le-text-color, var(--le-color-text));font-family:var(--le-font-family);line-height:var(--le-text-line-height, 1.5)}.variant-p{font-size:var(--le-font-size-base, 1rem);font-weight:var(--le-font-weight-normal, 400);color:var(--le-color-text)}.variant-h1{font-size:var(--le-font-size-4xl, 2.5rem);font-weight:var(--le-font-weight-bold, 700);line-height:1.2;color:var(--le-color-text);letter-spacing:-0.02em}.variant-h2{font-size:var(--le-font-size-3xl, 2rem);font-weight:var(--le-font-weight-bold, 700);line-height:1.25;color:var(--le-color-text);letter-spacing:-0.01em}.variant-h3{font-size:var(--le-font-size-2xl, 1.5rem);font-weight:var(--le-font-weight-semibold, 600);line-height:1.3;color:var(--le-color-text)}.variant-h4{font-size:var(--le-font-size-xl, 1.25rem);font-weight:var(--le-font-weight-semibold, 600);line-height:1.35;color:var(--le-color-text)}.variant-h5{font-size:var(--le-font-size-lg, 1.125rem);font-weight:var(--le-font-weight-medium, 500);line-height:1.4;color:var(--le-color-text)}.variant-h6{font-size:var(--le-font-size-base, 1rem);font-weight:var(--le-font-weight-medium, 500);line-height:1.45;color:var(--le-color-text);text-transform:uppercase;letter-spacing:0.05em}.variant-code{font-family:var(--le-font-family-mono, 'SF Mono', 'Fira Code', 'Consolas', monospace);font-size:var(--le-font-size-sm, 0.875rem);background:var(--le-color-surface-alt, #f5f5f5);padding:var(--le-space-md);border-radius:var(--le-radius-md);overflow-x:auto;white-space:pre-wrap;color:var(--le-color-text)}.variant-quote{font-size:var(--le-font-size-lg, 1.125rem);font-style:italic;color:var(--le-color-text-secondary);border-left:4px solid var(--le-color-primary);padding-left:var(--le-space-lg);margin-left:0;margin-right:0}.variant-label{font-size:var(--le-font-size-sm, 0.875rem);font-weight:var(--le-font-weight-medium, 500);color:var(--le-color-text-secondary);text-transform:uppercase;letter-spacing:0.05em}.variant-small{font-size:var(--le-font-size-sm, 0.875rem);color:var(--le-color-text-secondary)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.truncate.max-lines-2,.truncate.max-lines-3,.truncate.max-lines-4,.truncate.max-lines-5{white-space:normal;display:-webkit-box;-webkit-box-orient:vertical}.truncate.max-lines-2{-webkit-line-clamp:2;line-clamp:2}.truncate.max-lines-3{-webkit-line-clamp:3;line-clamp:3}.truncate.max-lines-4{-webkit-line-clamp:4;line-clamp:4}.truncate.max-lines-5{-webkit-line-clamp:5;line-clamp:5}:host([align=\"center\"]) .le-text{text-align:center}:host([align=\"right\"]) .le-text{text-align:right}:host([align=\"justify\"]) .le-text{text-align:justify}.le-text a{color:var(--le-color-primary);text-decoration:underline}.le-text a:hover{color:var(--le-color-primary-dark)}.le-text strong,.le-text b{font-weight:var(--le-font-weight-bold, 700)}.le-text em,.le-text i{font-style:italic}.le-text u{text-decoration:underline}.le-text s,.le-text strike{text-decoration:line-through}";const s=class{constructor(e){t(this,e)}get el(){return e(this)}variant="p";align="left";color;truncate=false;maxLines;adminMode=false;content="";isFocused=false;selectionState={isBold:false,isItalic:false,isUnderline:false,isStrikethrough:false,isLink:false,blockType:"p"};editorRef;slotRef;disconnectModeObserver;connectedCallback(){this.disconnectModeObserver=o(this.el,(t=>{const e=this.adminMode;this.adminMode=t==="admin";if(this.adminMode&&!e){requestAnimationFrame((()=>this.readSlottedContent()))}else if(!this.adminMode&&e){this.syncContentToSlot()}}))}disconnectedCallback(){this.disconnectModeObserver?.()}onVariantChange(){if(this.adminMode&&this.editorRef){this.syncContentToSlot()}}readSlottedContent(){if(!this.slotRef)return;const t=this.slotRef.assignedNodes({flatten:true});let e="";t.forEach((t=>{if(t.nodeType===Node.TEXT_NODE){e+=t.textContent}else if(t.nodeType===Node.ELEMENT_NODE){e+=t.innerHTML||t.textContent}}));this.content=e.trim()}syncContentToSlot(){if(!this.editorRef)return;const t=this.editorRef.innerHTML;const e=this.slotRef;if(e){const i=e.assignedNodes({flatten:true});if(i.length>0){const e=i[0];if(e.nodeType===Node.ELEMENT_NODE){e.innerHTML=t}else if(e.nodeType===Node.TEXT_NODE){const i=e.parentNode;if(i){const l=document.createElement("span");l.innerHTML=t;i.replaceChild(l,e);if(l.childNodes.length===1&&l.firstChild?.nodeType===Node.TEXT_NODE){i.replaceChild(l.firstChild,l)}}}}else{this.el.innerHTML=t}}}handleInput=()=>{if(this.editorRef){this.content=this.editorRef.innerHTML;this.updateSelectionState()}};handleFocus=()=>{this.isFocused=true;this.updateSelectionState()};handleBlur=t=>{const e=t.relatedTarget;const i=this.el.shadowRoot?.querySelector(".le-text-toolbar");if(i?.contains(e)){return}setTimeout((()=>{if(!this.el.shadowRoot?.activeElement){this.isFocused=false;this.syncContentToSlot()}}),150)};handleSelectionChange=()=>{this.updateSelectionState()};updateSelectionState(){const t=window.getSelection();if(!t||t.rangeCount===0)return;this.selectionState={isBold:document.queryCommandState("bold"),isItalic:document.queryCommandState("italic"),isUnderline:document.queryCommandState("underline"),isStrikethrough:document.queryCommandState("strikeThrough"),isLink:this.isSelectionInLink(t),blockType:this.variant}}isSelectionInLink(t){if(!t.anchorNode)return false;let e=t.anchorNode;while(e&&e!==this.editorRef){if(e.nodeName==="A")return true;e=e.parentNode}return false}execCommand(t,e){this.editorRef?.focus();document.execCommand(t,false,e);this.handleInput();this.updateSelectionState()}toggleBold=t=>{t.preventDefault();this.execCommand("bold")};toggleItalic=t=>{t.preventDefault();this.execCommand("italic")};toggleUnderline=t=>{t.preventDefault();this.execCommand("underline")};toggleStrikethrough=t=>{t.preventDefault();this.execCommand("strikeThrough")};toggleLink=t=>{t.preventDefault();if(this.selectionState.isLink){this.execCommand("unlink")}else{const t=prompt("Enter URL:","https://");if(t){this.execCommand("createLink",t)}}};changeVariant=t=>{const e=t.target;this.variant=e.value};renderToolbar(){return i("div",{class:"le-text-toolbar"},i("select",{class:"le-text-toolbar-select",onChange:this.changeVariant,onMouseDown:t=>t.preventDefault()},i("option",{value:"p",selected:this.variant==="p"},"Paragraph"),i("option",{value:"h1",selected:this.variant==="h1"},"Heading 1"),i("option",{value:"h2",selected:this.variant==="h2"},"Heading 2"),i("option",{value:"h3",selected:this.variant==="h3"},"Heading 3"),i("option",{value:"h4",selected:this.variant==="h4"},"Heading 4"),i("option",{value:"h5",selected:this.variant==="h5"},"Heading 5"),i("option",{value:"h6",selected:this.variant==="h6"},"Heading 6"),i("option",{value:"quote",selected:this.variant==="quote"},"Quote"),i("option",{value:"code",selected:this.variant==="code"},"Code"),i("option",{value:"label",selected:this.variant==="label"},"Label"),i("option",{value:"small",selected:this.variant==="small"},"Small")),i("div",{class:"le-text-toolbar-divider"}),i("button",{type:"button",class:{"le-text-toolbar-btn":true,active:this.selectionState.isBold},onMouseDown:this.toggleBold,title:"Bold (Ctrl+B)"},i("strong",null,"B")),i("button",{type:"button",class:{"le-text-toolbar-btn":true,active:this.selectionState.isItalic},onMouseDown:this.toggleItalic,title:"Italic (Ctrl+I)"},i("em",null,"I")),i("button",{type:"button",class:{"le-text-toolbar-btn":true,active:this.selectionState.isUnderline},onMouseDown:this.toggleUnderline,title:"Underline (Ctrl+U)"},i("span",{style:{textDecoration:"underline"}},"U")),i("button",{type:"button",class:{"le-text-toolbar-btn":true,active:this.selectionState.isStrikethrough},onMouseDown:this.toggleStrikethrough,title:"Strikethrough"},i("span",{style:{textDecoration:"line-through"}},"S")),i("div",{class:"le-text-toolbar-divider"}),i("button",{type:"button",class:{"le-text-toolbar-btn":true,active:this.selectionState.isLink},onMouseDown:this.toggleLink,title:this.selectionState.isLink?"Remove link":"Add link"},"🔗"))}getTag(){switch(this.variant){case"quote":return"blockquote";case"code":return"pre";case"label":return"label";case"small":return"small";default:return this.variant}}render(){const t=this.getTag();const e={};if(this.color){e.color=this.color}if(this.align){e.textAlign=this.align}const o={"le-text":true,[`variant-${this.variant}`]:true,truncate:this.truncate,[`max-lines-${this.maxLines}`]:this.truncate&&this.maxLines};if(this.adminMode){return i(l,{class:"admin-mode"},i("le-component",{component:"le-text"},i("div",{class:"le-text-editor-wrapper"},this.isFocused&&this.renderToolbar(),i(t,{class:o,part:"text",style:e},i("div",{ref:t=>this.editorRef=t,class:"le-text-editor",contentEditable:true,onInput:this.handleInput,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeyUp:this.handleSelectionChange,onMouseUp:this.handleSelectionChange,innerHTML:this.content})),i("div",{class:"hidden-slot"},i("slot",{ref:t=>this.slotRef=t,onSlotchange:()=>this.readSlottedContent()})))))}return i(l,null,i(t,{class:o,part:"text",style:e},i("slot",{ref:t=>this.slotRef=t})))}static get watchers(){return{variant:["onVariantChange"]}}};s.style=n;export{s as le_text};
2
+ //# sourceMappingURL=p-d32eddad.entry.js.map
@@ -248,7 +248,7 @@ export namespace Components {
248
248
  }
249
249
  /**
250
250
  * Component wrapper for admin mode editing.
251
- * This component is used internally by other components to provide admin-mode
251
+ * This component is used internally by other components to provide admin-mode
252
252
  * editing capabilities. It wraps the component's rendered output and shows
253
253
  * a settings popover for editing properties.
254
254
  * In default mode, it acts as a simple passthrough (display: contents).
@@ -872,7 +872,7 @@ declare global {
872
872
  };
873
873
  /**
874
874
  * Component wrapper for admin mode editing.
875
- * This component is used internally by other components to provide admin-mode
875
+ * This component is used internally by other components to provide admin-mode
876
876
  * editing capabilities. It wraps the component's rendered output and shows
877
877
  * a settings popover for editing properties.
878
878
  * In default mode, it acts as a simple passthrough (display: contents).
@@ -1343,7 +1343,7 @@ declare namespace LocalJSX {
1343
1343
  }
1344
1344
  /**
1345
1345
  * Component wrapper for admin mode editing.
1346
- * This component is used internally by other components to provide admin-mode
1346
+ * This component is used internally by other components to provide admin-mode
1347
1347
  * editing capabilities. It wraps the component's rendered output and shows
1348
1348
  * a settings popover for editing properties.
1349
1349
  * In default mode, it acts as a simple passthrough (display: contents).
@@ -1940,7 +1940,7 @@ declare module "@stencil/core" {
1940
1940
  "le-checkbox": LocalJSX.LeCheckbox & JSXBase.HTMLAttributes<HTMLLeCheckboxElement>;
1941
1941
  /**
1942
1942
  * Component wrapper for admin mode editing.
1943
- * This component is used internally by other components to provide admin-mode
1943
+ * This component is used internally by other components to provide admin-mode
1944
1944
  * editing capabilities. It wraps the component's rendered output and shows
1945
1945
  * a settings popover for editing properties.
1946
1946
  * In default mode, it acts as a simple passthrough (display: contents).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "le-kit",
3
- "version": "0.1.4",
3
+ "version": "0.1.6",
4
4
  "description": "Themable web components library with CMS admin mode support",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.js",