le-kit 0.3.3 → 0.3.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.
Files changed (102) hide show
  1. package/dist/cjs/{index-BDXkMiZB.js → index-BPF04Jvb.js} +23 -37
  2. package/dist/cjs/index-BPF04Jvb.js.map +1 -0
  3. package/dist/cjs/index.cjs.js +2 -2
  4. package/dist/cjs/le-bar_16.cjs.entry.js +2 -2
  5. package/dist/cjs/le-box.cjs.entry.js +2 -2
  6. package/dist/cjs/le-card.cjs.entry.js +2 -2
  7. package/dist/cjs/le-combobox.cjs.entry.js +1 -1
  8. package/dist/cjs/le-header-placeholder.cjs.entry.js +1 -1
  9. package/dist/cjs/le-kit.cjs.js +1 -1
  10. package/dist/cjs/le-multiselect.cjs.entry.js +1 -1
  11. package/dist/cjs/le-number-input.cjs.entry.js +2 -2
  12. package/dist/cjs/le-round-progress.cjs.entry.js +1 -1
  13. package/dist/cjs/le-segmented-control.cjs.entry.js +1 -1
  14. package/dist/cjs/le-stack.cjs.entry.js +2 -2
  15. package/dist/cjs/le-tab-bar.cjs.entry.js +1 -1
  16. package/dist/cjs/le-tab-panel.cjs.entry.js +1 -1
  17. package/dist/cjs/le-tab.cjs.entry.js +2 -2
  18. package/dist/cjs/le-tabs.cjs.entry.js +2 -2
  19. package/dist/cjs/le-tag.cjs.entry.js +1 -1
  20. package/dist/cjs/le-text.cjs.entry.js +2 -2
  21. package/dist/cjs/le-turntable.cjs.entry.js +1 -1
  22. package/dist/cjs/loader.cjs.js +1 -1
  23. package/dist/cjs/{utils-Co3xnkR-.js → utils-BYsLPHN1.js} +3 -3
  24. package/dist/cjs/{utils-Co3xnkR-.js.map → utils-BYsLPHN1.js.map} +1 -1
  25. package/dist/collection/dist/components/assets/custom-elements.json +734 -734
  26. package/dist/collection/global/app.js +21 -35
  27. package/dist/collection/global/app.js.map +1 -1
  28. package/dist/components/app.js +21 -35
  29. package/dist/components/app.js.map +1 -1
  30. package/dist/components/assets/custom-elements.json +734 -734
  31. package/dist/docs.json +1 -1
  32. package/dist/esm/{index-Bb6rgQY0.js → index-C-Chwj1b.js} +24 -38
  33. package/dist/esm/index-C-Chwj1b.js.map +1 -0
  34. package/dist/esm/index.js +2 -2
  35. package/dist/esm/le-bar_16.entry.js +2 -2
  36. package/dist/esm/le-box.entry.js +2 -2
  37. package/dist/esm/le-card.entry.js +2 -2
  38. package/dist/esm/le-combobox.entry.js +1 -1
  39. package/dist/esm/le-header-placeholder.entry.js +1 -1
  40. package/dist/esm/le-kit.js +2 -2
  41. package/dist/esm/le-multiselect.entry.js +1 -1
  42. package/dist/esm/le-number-input.entry.js +2 -2
  43. package/dist/esm/le-round-progress.entry.js +1 -1
  44. package/dist/esm/le-segmented-control.entry.js +1 -1
  45. package/dist/esm/le-stack.entry.js +2 -2
  46. package/dist/esm/le-tab-bar.entry.js +1 -1
  47. package/dist/esm/le-tab-panel.entry.js +1 -1
  48. package/dist/esm/le-tab.entry.js +2 -2
  49. package/dist/esm/le-tabs.entry.js +2 -2
  50. package/dist/esm/le-tag.entry.js +1 -1
  51. package/dist/esm/le-text.entry.js +2 -2
  52. package/dist/esm/le-turntable.entry.js +1 -1
  53. package/dist/esm/loader.js +2 -2
  54. package/dist/esm/{utils-CDrgAR8V.js → utils-B3alHV04.js} +3 -3
  55. package/dist/esm/{utils-CDrgAR8V.js.map → utils-B3alHV04.js.map} +1 -1
  56. package/dist/le-kit/dist/components/assets/custom-elements.json +734 -734
  57. package/dist/le-kit/index.esm.js +1 -1
  58. package/dist/le-kit/le-kit.esm.js +1 -1
  59. package/dist/le-kit/{p-bb7a199f.entry.js → p-05ccab91.entry.js} +2 -2
  60. package/dist/le-kit/{p-166d31fd.entry.js → p-06d2d79c.entry.js} +2 -2
  61. package/dist/le-kit/{p-cb392b4b.entry.js → p-2230ecd7.entry.js} +2 -2
  62. package/dist/le-kit/{p-52cc2518.entry.js → p-33c2168a.entry.js} +2 -2
  63. package/dist/le-kit/{p-a44540d7.entry.js → p-3d22aeb2.entry.js} +2 -2
  64. package/dist/le-kit/{p-c8a9e104.entry.js → p-3d873cdb.entry.js} +2 -2
  65. package/dist/le-kit/{p-5e7e2d06.entry.js → p-4a45ff67.entry.js} +2 -2
  66. package/dist/le-kit/{p-84a778b1.entry.js → p-5d72c894.entry.js} +2 -2
  67. package/dist/le-kit/{p-5ad31bd2.entry.js → p-68d836a3.entry.js} +2 -2
  68. package/dist/le-kit/{p-f45d86de.entry.js → p-923828fe.entry.js} +2 -2
  69. package/dist/le-kit/{p-5a0efabf.entry.js → p-9880466c.entry.js} +2 -2
  70. package/dist/le-kit/{p-5a0efabf.entry.js.map → p-9880466c.entry.js.map} +1 -1
  71. package/dist/le-kit/p-C-Chwj1b.js +3 -0
  72. package/dist/le-kit/p-C-Chwj1b.js.map +1 -0
  73. package/dist/le-kit/{p-DG6SMiyr.js → p-DFr88Szp.js} +2 -2
  74. package/dist/le-kit/{p-DG6SMiyr.js.map → p-DFr88Szp.js.map} +1 -1
  75. package/dist/le-kit/{p-ca766522.entry.js → p-be2a7276.entry.js} +2 -2
  76. package/dist/le-kit/{p-eb4b678f.entry.js → p-d161946c.entry.js} +2 -2
  77. package/dist/le-kit/{p-957f50aa.entry.js → p-e1846fc2.entry.js} +2 -2
  78. package/dist/le-kit/{p-68d94a06.entry.js → p-e6b2cf9a.entry.js} +2 -2
  79. package/dist/le-kit/{p-43a17d84.entry.js → p-ea71f22c.entry.js} +2 -2
  80. package/dist/le-kit/{p-1d4f84f6.entry.js → p-f8034500.entry.js} +2 -2
  81. package/dist/types/global/app.d.ts +7 -6
  82. package/package.json +1 -1
  83. package/dist/cjs/index-BDXkMiZB.js.map +0 -1
  84. package/dist/esm/index-Bb6rgQY0.js.map +0 -1
  85. package/dist/le-kit/p-Bb6rgQY0.js +0 -3
  86. package/dist/le-kit/p-Bb6rgQY0.js.map +0 -1
  87. /package/dist/le-kit/{p-bb7a199f.entry.js.map → p-05ccab91.entry.js.map} +0 -0
  88. /package/dist/le-kit/{p-166d31fd.entry.js.map → p-06d2d79c.entry.js.map} +0 -0
  89. /package/dist/le-kit/{p-cb392b4b.entry.js.map → p-2230ecd7.entry.js.map} +0 -0
  90. /package/dist/le-kit/{p-52cc2518.entry.js.map → p-33c2168a.entry.js.map} +0 -0
  91. /package/dist/le-kit/{p-a44540d7.entry.js.map → p-3d22aeb2.entry.js.map} +0 -0
  92. /package/dist/le-kit/{p-c8a9e104.entry.js.map → p-3d873cdb.entry.js.map} +0 -0
  93. /package/dist/le-kit/{p-5e7e2d06.entry.js.map → p-4a45ff67.entry.js.map} +0 -0
  94. /package/dist/le-kit/{p-84a778b1.entry.js.map → p-5d72c894.entry.js.map} +0 -0
  95. /package/dist/le-kit/{p-5ad31bd2.entry.js.map → p-68d836a3.entry.js.map} +0 -0
  96. /package/dist/le-kit/{p-f45d86de.entry.js.map → p-923828fe.entry.js.map} +0 -0
  97. /package/dist/le-kit/{p-ca766522.entry.js.map → p-be2a7276.entry.js.map} +0 -0
  98. /package/dist/le-kit/{p-eb4b678f.entry.js.map → p-d161946c.entry.js.map} +0 -0
  99. /package/dist/le-kit/{p-957f50aa.entry.js.map → p-e1846fc2.entry.js.map} +0 -0
  100. /package/dist/le-kit/{p-68d94a06.entry.js.map → p-e6b2cf9a.entry.js.map} +0 -0
  101. /package/dist/le-kit/{p-43a17d84.entry.js.map → p-ea71f22c.entry.js.map} +0 -0
  102. /package/dist/le-kit/{p-1d4f84f6.entry.js.map → p-f8034500.entry.js.map} +0 -0
@@ -1,2 +1,2 @@
1
- import{a as t}from"./p-Bb6rgQY0.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-DG6SMiyr.js.map
1
+ import{a as t}from"./p-C-Chwj1b.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-DFr88Szp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"p-DG6SMiyr.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-DFr88Szp.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 t,c as s,h as e}from"./p-Bb6rgQY0.js";const i=()=>`:host{display:block;cursor:grab}div.turntable{width:100%;height:100%;padding:1px}`;const h=class{constructor(s){t(this,s)}get el(){return s(this)}center="center";value=0;updateValue(t){if(!this.rotating){this.currentAngle=parseFloat(t);this.setAngle(this.currentAngle)}}rotating=false;centerX;centerY;pageX;pageY;currentAngle=0;startAngle;handleMouseDown(t){this.rotating=true;this.startAngle=this.getAngle(t.pageX,t.pageY);t.preventDefault();t.stopPropagation();return false}handleMouseMove(t){if(this.rotating){this.setAngle(this.currentAngle+(this.getAngle(t.pageX,t.pageY)-this.startAngle));return false}}handleMouseUp(t){if(this.rotating){const s=this.currentAngle+(this.getAngle(t.pageX,t.pageY)-this.startAngle);this.setAngle(s);this.currentAngle=s;this.rotating=false;return false}}handleWindowResize(){this.getTransformOrigin()}componentDidLoad(){this.el.style.transformOrigin=this.center;this.currentAngle=this.value;this.getTransformOrigin();this.setAngle(this.currentAngle)}componentDidUpdate(){this.getTransformOrigin()}getTransformOrigin(){[this.centerX,this.centerY]=window.getComputedStyle(this.el,null).transformOrigin.split(" ").map((t=>Math.round(parseFloat(t))));let t=null;const s=((t=document.documentElement)||(t=document.body.parentNode))&&typeof t.scrollLeft==="number"?t:document.body;const e=this.el.getBoundingClientRect();this.pageX=Math.round(e.left+s.scrollLeft);this.pageY=Math.round(e.top+s.scrollTop)}getAngle(t,s){const e=t-this.pageX-this.centerX;const i=s-this.pageY-this.centerY;const h=Math.round(Math.atan2(i,e)*180/Math.PI*100)/100;return h}setAngle(t){this.el.style.transform=`rotate(${t}deg)`}render(){return e("div",{key:"044fa1f42a2052032b2c5f910670dbd16d0d83c2",class:"turntable",onMouseDown:this.handleMouseDown.bind(this)},e("slot",{key:"9b121701301205bb9182be89736ba64c4fd74373"}))}static get watchers(){return{value:["updateValue"]}}};h.style=i();export{h as le_turntable};
2
- //# sourceMappingURL=p-ca766522.entry.js.map
1
+ import{r as t,c as s,h as e}from"./p-C-Chwj1b.js";const i=()=>`:host{display:block;cursor:grab}div.turntable{width:100%;height:100%;padding:1px}`;const h=class{constructor(s){t(this,s)}get el(){return s(this)}center="center";value=0;updateValue(t){if(!this.rotating){this.currentAngle=parseFloat(t);this.setAngle(this.currentAngle)}}rotating=false;centerX;centerY;pageX;pageY;currentAngle=0;startAngle;handleMouseDown(t){this.rotating=true;this.startAngle=this.getAngle(t.pageX,t.pageY);t.preventDefault();t.stopPropagation();return false}handleMouseMove(t){if(this.rotating){this.setAngle(this.currentAngle+(this.getAngle(t.pageX,t.pageY)-this.startAngle));return false}}handleMouseUp(t){if(this.rotating){const s=this.currentAngle+(this.getAngle(t.pageX,t.pageY)-this.startAngle);this.setAngle(s);this.currentAngle=s;this.rotating=false;return false}}handleWindowResize(){this.getTransformOrigin()}componentDidLoad(){this.el.style.transformOrigin=this.center;this.currentAngle=this.value;this.getTransformOrigin();this.setAngle(this.currentAngle)}componentDidUpdate(){this.getTransformOrigin()}getTransformOrigin(){[this.centerX,this.centerY]=window.getComputedStyle(this.el,null).transformOrigin.split(" ").map((t=>Math.round(parseFloat(t))));let t=null;const s=((t=document.documentElement)||(t=document.body.parentNode))&&typeof t.scrollLeft==="number"?t:document.body;const e=this.el.getBoundingClientRect();this.pageX=Math.round(e.left+s.scrollLeft);this.pageY=Math.round(e.top+s.scrollTop)}getAngle(t,s){const e=t-this.pageX-this.centerX;const i=s-this.pageY-this.centerY;const h=Math.round(Math.atan2(i,e)*180/Math.PI*100)/100;return h}setAngle(t){this.el.style.transform=`rotate(${t}deg)`}render(){return e("div",{key:"044fa1f42a2052032b2c5f910670dbd16d0d83c2",class:"turntable",onMouseDown:this.handleMouseDown.bind(this)},e("slot",{key:"9b121701301205bb9182be89736ba64c4fd74373"}))}static get watchers(){return{value:["updateValue"]}}};h.style=i();export{h as le_turntable};
2
+ //# sourceMappingURL=p-be2a7276.entry.js.map
@@ -1,2 +1,2 @@
1
- import{r as s,c as r,h as t}from"./p-Bb6rgQY0.js";const e=()=>`.round-progress--container{position:relative}.round-progress{position:absolute;top:0;left:0;right:0;bottom:0;display:block}.round-progress--progress{filter:drop-shadow(var(--progress-shadow))}.round-progress--circle{fill:none;stroke:var(--progress-color, #999);stroke-width:var(--progress-width, 4);stroke-linecap:var(--progress-linecap, round);animation:progress--circle 0.5s ease-out forwards;transition:stroke-dasharray 0.5s ease-out}@keyframes progress--circle{0%{stroke-dasharray:0 1000}}.round-progress--path{fill:none;stroke-linecap:round}`;const o=class{constructor(r){s(this,r)}get el(){return r(this)}value=0;updateValue(s){this.value=parseFloat(s)}padding=0;updatePadding(s){this.padding=parseFloat(s);this.calcParams()}paths;updateProgressBackgrounds(s){this.progressPaths=JSON.parse(s)}progressPaths;params;componentWillLoad(){if(typeof this.paths==="string"){this.updateProgressBackgrounds(this.paths)}this.calcParams()}calcParams(){const s=this.el.getBoundingClientRect().width;const r=s-this.padding;const t=Math.PI*r;this.params={width:s,diameter:r,circumference:t}}getViewBox(){return"0 0 "+this.params.width+" "+this.params.width}getPath(){return"M"+this.params.width/2+" "+(this.params.width-this.params.diameter)/2+" a "+this.params.diameter/2+" "+this.params.diameter/2+" 0 0 1 0 "+this.params.diameter+" a "+this.params.diameter/2+" "+this.params.diameter/2+" 0 0 1 0 -"+this.params.diameter}getStrokeDashArray(){return this.value/100*this.params.circumference+", "+this.params.circumference}getPaths(){if(!this.progressPaths||!this.progressPaths.length){return null}let s=[];this.progressPaths.forEach((r=>{s.push(t("path",{class:"round-progress--path",d:this.getPath(),stroke:r.color,"stroke-width":r.width,"stroke-dasharray":r.dasharray,"stroke-linecap":r.linecap}))}));return t("svg",{viewBox:this.getViewBox(),class:"round-progress"},s)}render(){return t("div",{key:"6379320fd320009f649c11d58f2e918c733de68d",class:"round-progress--container"},this.getPaths(),t("svg",{key:"af63bb6fdf93e2d0d8060be60fcd41b4f74c294e",viewBox:this.getViewBox(),class:"round-progress round-progress--progress"},t("path",{key:"7b8e0b41a9487b6ba02ef90b1f0a0177aac058f6",class:"round-progress--circle","stroke-dasharray":this.getStrokeDashArray(),d:this.getPath()})),t("slot",{key:"659336629730730ba96f5fbc788dc01e4f280fed"}))}static get watchers(){return{value:["updateValue"],padding:["updatePadding"],paths:["updateProgressBackgrounds"]}}};o.style=e();export{o as le_round_progress};
2
- //# sourceMappingURL=p-eb4b678f.entry.js.map
1
+ import{r as s,c as r,h as t}from"./p-C-Chwj1b.js";const e=()=>`.round-progress--container{position:relative}.round-progress{position:absolute;top:0;left:0;right:0;bottom:0;display:block}.round-progress--progress{filter:drop-shadow(var(--progress-shadow))}.round-progress--circle{fill:none;stroke:var(--progress-color, #999);stroke-width:var(--progress-width, 4);stroke-linecap:var(--progress-linecap, round);animation:progress--circle 0.5s ease-out forwards;transition:stroke-dasharray 0.5s ease-out}@keyframes progress--circle{0%{stroke-dasharray:0 1000}}.round-progress--path{fill:none;stroke-linecap:round}`;const o=class{constructor(r){s(this,r)}get el(){return r(this)}value=0;updateValue(s){this.value=parseFloat(s)}padding=0;updatePadding(s){this.padding=parseFloat(s);this.calcParams()}paths;updateProgressBackgrounds(s){this.progressPaths=JSON.parse(s)}progressPaths;params;componentWillLoad(){if(typeof this.paths==="string"){this.updateProgressBackgrounds(this.paths)}this.calcParams()}calcParams(){const s=this.el.getBoundingClientRect().width;const r=s-this.padding;const t=Math.PI*r;this.params={width:s,diameter:r,circumference:t}}getViewBox(){return"0 0 "+this.params.width+" "+this.params.width}getPath(){return"M"+this.params.width/2+" "+(this.params.width-this.params.diameter)/2+" a "+this.params.diameter/2+" "+this.params.diameter/2+" 0 0 1 0 "+this.params.diameter+" a "+this.params.diameter/2+" "+this.params.diameter/2+" 0 0 1 0 -"+this.params.diameter}getStrokeDashArray(){return this.value/100*this.params.circumference+", "+this.params.circumference}getPaths(){if(!this.progressPaths||!this.progressPaths.length){return null}let s=[];this.progressPaths.forEach((r=>{s.push(t("path",{class:"round-progress--path",d:this.getPath(),stroke:r.color,"stroke-width":r.width,"stroke-dasharray":r.dasharray,"stroke-linecap":r.linecap}))}));return t("svg",{viewBox:this.getViewBox(),class:"round-progress"},s)}render(){return t("div",{key:"6379320fd320009f649c11d58f2e918c733de68d",class:"round-progress--container"},this.getPaths(),t("svg",{key:"af63bb6fdf93e2d0d8060be60fcd41b4f74c294e",viewBox:this.getViewBox(),class:"round-progress round-progress--progress"},t("path",{key:"7b8e0b41a9487b6ba02ef90b1f0a0177aac058f6",class:"round-progress--circle","stroke-dasharray":this.getStrokeDashArray(),d:this.getPath()})),t("slot",{key:"659336629730730ba96f5fbc788dc01e4f280fed"}))}static get watchers(){return{value:["updateValue"],padding:["updatePadding"],paths:["updateProgressBackgrounds"]}}};o.style=e();export{o as le_round_progress};
2
+ //# sourceMappingURL=p-d161946c.entry.js.map
@@ -1,2 +1,2 @@
1
- import{r as e,c as a,h as t}from"./p-Bb6rgQY0.js";const n=()=>`:host{display:contents;--le-tab-panel-radius:var(--le-radius-md);--le-tab-panel-padding:var(--le-spacing-4)}.tab-panel{margin-top:4px;display:none;border-radius:var(--le-tab-panel-radius);padding:var(--le-tab-panel-padding)}.tab-panel.active{display:block}.tab-panel:focus-visible{outline:2px solid var(--le-color-focus);outline-offset:2px}.tab-panel.lazy-hidden{display:none}`;const s=class{constructor(a){e(this,a)}get el(){return a(this)}label;value;iconStart;iconEnd;disabled=false;lazy=false;active=false;hasBeenActive=false;activeChanged(e){if(e&&!this.hasBeenActive){this.hasBeenActive=true}}async getValue(){return this.value??this.label}async getTabConfig(){return{label:this.label,value:this.value??this.label,iconStart:this.iconStart,iconEnd:this.iconEnd,disabled:this.disabled}}async setActive(e){this.active=e}shouldRenderContent(){if(!this.lazy)return true;return this.hasBeenActive}render(){const e=this.shouldRenderContent();return t("le-component",{key:"0e3a7a052446c3643c09b24ef00f75e8510a5222",component:"le-tab-panel"},t("div",{key:"4ee30fa55177f3957195b403ad764808a5df5cf0",class:{"tab-panel":true,active:this.active,"lazy-hidden":this.lazy&&!this.active},role:"tabpanel","aria-hidden":!this.active?"true":undefined,tabIndex:this.active?0:-1},t("le-slot",{key:"825f30d9cf743243ace0555d48f634feafaefe6a",name:"",description:"Tab panel content",type:"slot"},e&&t("slot",{key:"92e6ade3fa4c97ac0579cba0f78f55ddf00f0fba"}))))}static get watchers(){return{active:["activeChanged"]}}};s.style=n();export{s as le_tab_panel};
2
- //# sourceMappingURL=p-957f50aa.entry.js.map
1
+ import{r as e,c as a,h as t}from"./p-C-Chwj1b.js";const n=()=>`:host{display:contents;--le-tab-panel-radius:var(--le-radius-md);--le-tab-panel-padding:var(--le-spacing-4)}.tab-panel{margin-top:4px;display:none;border-radius:var(--le-tab-panel-radius);padding:var(--le-tab-panel-padding)}.tab-panel.active{display:block}.tab-panel:focus-visible{outline:2px solid var(--le-color-focus);outline-offset:2px}.tab-panel.lazy-hidden{display:none}`;const s=class{constructor(a){e(this,a)}get el(){return a(this)}label;value;iconStart;iconEnd;disabled=false;lazy=false;active=false;hasBeenActive=false;activeChanged(e){if(e&&!this.hasBeenActive){this.hasBeenActive=true}}async getValue(){return this.value??this.label}async getTabConfig(){return{label:this.label,value:this.value??this.label,iconStart:this.iconStart,iconEnd:this.iconEnd,disabled:this.disabled}}async setActive(e){this.active=e}shouldRenderContent(){if(!this.lazy)return true;return this.hasBeenActive}render(){const e=this.shouldRenderContent();return t("le-component",{key:"0e3a7a052446c3643c09b24ef00f75e8510a5222",component:"le-tab-panel"},t("div",{key:"4ee30fa55177f3957195b403ad764808a5df5cf0",class:{"tab-panel":true,active:this.active,"lazy-hidden":this.lazy&&!this.active},role:"tabpanel","aria-hidden":!this.active?"true":undefined,tabIndex:this.active?0:-1},t("le-slot",{key:"825f30d9cf743243ace0555d48f634feafaefe6a",name:"",description:"Tab panel content",type:"slot"},e&&t("slot",{key:"92e6ade3fa4c97ac0579cba0f78f55ddf00f0fba"}))))}static get watchers(){return{active:["activeChanged"]}}};s.style=n();export{s as le_tab_panel};
2
+ //# sourceMappingURL=p-e1846fc2.entry.js.map
@@ -1,2 +1,2 @@
1
- import{r as e,d as t,c as i,h as n}from"./p-Bb6rgQY0.js";import{c as r}from"./p-DG6SMiyr.js";const l=()=>`:host{display:block;--le-input-bg:var(--le-color-surface, #ffffff);--le-input-color:var(--le-color-text-primary, #333333);--le-input-border:var(--le-border-width, 2px) solid var(--le-color-border-input, #007bff);--le-input-radius:var(--le-radius-sm, 4px);--le-input-padding:2px 6px;--le-input-height:1.5rem;--le-input-label-color:var(--le-color-text-primary, #333333);--le-input-desc-color:var(--le-color-text-secondary, #666666);--le-input-placeholder-color:#999999;--le-input-border-error:2px solid var(--le-color-danger, #dc3545);--le-input-error-color:var(--le-color-danger, #dc3545)}.le-input-wrapper{display:flex;flex-direction:column;gap:2px}.le-input-label{display:block;font-size:0.9em;font-weight:500;color:var(--le-input-label-color);margin-bottom:2px}.le-input-container{position:relative;display:flex;align-items:center;background:var(--le-input-bg);border:var(--le-input-border);border-radius:var(--le-input-radius);transition:border-color 0.2s}.le-input-container:focus-within{outline:2px solid var(--le-color-focus);outline-offset:2px}.le-input-container.has-error{border:var(--le-input-border-error)}:host([disabled]) .le-input-container{opacity:0.6;background-color:rgba(0,0,0,0.05);cursor:not-allowed}input{flex:1;width:100%;height:calc(var(--le-input-height) - 2px);padding:var(--le-input-padding);border:none;background:transparent;color:var(--le-input-color);font-family:inherit;font-size:inherit;outline:none;text-align:right;-moz-appearance:textfield;}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input::placeholder{color:var(--le-input-placeholder-color)}.icon-start,.icon-end{display:flex;align-items:center;justify-content:center;padding:0 8px;color:var(--le-input-desc-color)}.le-input-controls{display:flex;flex-direction:column;border-left:1px solid var(--le-color-border, #cccccc);height:100%}.le-input-control-btn{--le-button-border-radius:0;--le-button-padding-x:0;--le-button-padding-y:0;--le-button-small-font-size:9.5px;--le-button-small-padding:0 0.2rem;--le-button-icon-aspect-ratio:2;display:flex;align-items:center;justify-content:center;height:50%;cursor:pointer;background:none;border:none;color:var(--le-input-desc-color);font-size:10px;line-height:1}.le-input-control-btn:hover{background-color:rgba(0,0,0,0.05);color:var(--le-color-primary, #007bff)}.le-input-control-btn:active{background-color:rgba(0,0,0,0.1)}.le-input-description{font-size:0.85em;color:var(--le-input-desc-color);margin-top:2px}.le-input-error{font-size:0.85em;color:var(--le-input-error-color);margin-top:2px}`;const s=class{constructor(i){e(this,i);this.leChange=t(this,"leChange");this.leInput=t(this,"leInput")}get el(){return i(this)}value;name;label;placeholder;min;max;step=1;required=false;disabled=false;readonly=false;iconStart;showSpinners=true;externalId;isValid=true;validationMessage="";leChange;leInput;valueChanged(){this.validate()}validate(){if(this.required&&(this.value===undefined||this.value===null||isNaN(this.value))){this.isValid=false;this.validationMessage="This field is required";return}if(this.value!==undefined&&this.value!==null&&!isNaN(this.value)){if(this.min!==undefined&&this.value<this.min){this.isValid=false;this.validationMessage=`Value must be at least ${this.min}`;return}if(this.max!==undefined&&this.value>this.max){this.isValid=false;this.validationMessage=`Value must be at most ${this.max}`;return}}this.isValid=true;this.validationMessage=""}emitChange(){this.leChange.emit({value:this.value,name:this.name,externalId:this.externalId,isValid:this.isValid})}emitInput(){this.leInput.emit({value:this.value,name:this.name,externalId:this.externalId,isValid:this.isValid})}updateValue(e){if(this.disabled||this.readonly)return;const t=this.step.toString().split(".")[1]?.length||0;const i=parseFloat(e.toFixed(t));this.value=i;this.validate();this.emitInput()}handleInput=e=>{const t=e.target;const i=parseFloat(t.value);if(t.value===""){this.value=undefined}else if(!isNaN(i)){this.value=i}this.validate();this.emitInput()};handleChange=()=>{this.validate();this.emitChange()};handleKeyDown=e=>{if(this.disabled||this.readonly)return;let t=1;if(e.shiftKey)t=10;if(e.altKey)t=.1;const i=this.value||0;if(e.key==="ArrowUp"){e.preventDefault();this.updateValue(i+this.step*t)}else if(e.key==="ArrowDown"){e.preventDefault();this.updateValue(i-this.step*t)}};handleWheel=e=>{if(this.disabled||this.readonly)return;if(document.activeElement!==e.target)return;e.preventDefault();const t=this.value||0;if(e.deltaY<0){this.updateValue(t+this.step)}else{this.updateValue(t-this.step)}};increment=e=>{e.preventDefault();const t=this.value||0;this.updateValue(t+this.step);this.emitChange()};decrement=e=>{e.preventDefault();const t=this.value||0;this.updateValue(t-this.step);this.emitChange()};render(){return n("le-component",{key:"c6c327cad4a4df50aa270efcc203449f2c15d36c",component:"le-number-input",hostClass:r({disabled:this.disabled})},n("div",{key:"3745bd8a915fcfc6909c96afa882c22b2fea7e87",class:"le-input-wrapper"},this.label&&n("label",{key:"557aa7702fab5ff75d9f547a677b3bc2e72ef8aa",class:"le-input-label",htmlFor:this.name},this.label),n("div",{key:"5e5f68aaabba117db7680f0680e67dffcc15dc7c",class:r("le-input-container",{"has-error":!this.isValid})},this.iconStart&&n("span",{key:"ff47ad75a59cc6a35758eead376afcb3dd10ba59",class:"icon-start"},this.iconStart),n("input",{key:"ec214ea43b6cb94d7e73129c53e55506c5b0b890",id:this.name,type:"number",name:this.name,placeholder:this.placeholder,min:this.min,max:this.max,step:this.step,value:this.value,disabled:this.disabled,readOnly:this.readonly,required:this.required,onInput:this.handleInput,onChange:this.handleChange,onKeyDown:this.handleKeyDown,onWheel:this.handleWheel}),this.showSpinners&&n("div",{key:"e2fe4db81e51ff88447b8c27b83d0e7227516153",class:"le-input-controls"},n("le-button",{key:"91c3d862066fbd13c222eebe043f89be5de39acd",mode:"default",variant:"clear",size:"small","icon-only":true,class:"le-input-control-btn",onClick:this.increment,disabled:this.disabled||this.readonly||this.max!==undefined&&this.value>=this.max,tabindex:"-1"},n("span",{key:"a7008c7bcee858324ae75eaf2a9eff0c818dc521",slot:"icon-only"},"↑")),n("le-button",{key:"bd075538967672ec669287682e21d832bf0732f4",mode:"default",variant:"clear",size:"small","icon-only":true,class:"le-input-control-btn",onClick:this.decrement,disabled:this.disabled||this.readonly||this.min!==undefined&&this.value<=this.min,tabindex:"-1"},n("span",{key:"915fbe4bcec150360f1f857a08675b00182a7ea3",slot:"icon-only"},"↓")))),!this.isValid&&n("div",{key:"3a6b6c39aa89ad1295a6277f5b1d7b0b27ed8c4b",class:"le-input-error"},this.validationMessage),n("div",{key:"2124de657df8f114fbcbf62dfcb878177d255274",class:"le-input-description"},n("le-slot",{key:"d5547bee7220cfedefe52b56f4c51a8eefde3b0e",name:"description",type:"text",tag:"p",label:"Description"},n("slot",{key:"643326ec71aa2b527fc7ac0baa75f329d9b460dd",name:"description"})))))}static get watchers(){return{value:["valueChanged"]}}};s.style=l();export{s as le_number_input};
2
- //# sourceMappingURL=p-68d94a06.entry.js.map
1
+ import{r as e,d as t,c as i,h as n}from"./p-C-Chwj1b.js";import{c as r}from"./p-DFr88Szp.js";const l=()=>`:host{display:block;--le-input-bg:var(--le-color-surface, #ffffff);--le-input-color:var(--le-color-text-primary, #333333);--le-input-border:var(--le-border-width, 2px) solid var(--le-color-border-input, #007bff);--le-input-radius:var(--le-radius-sm, 4px);--le-input-padding:2px 6px;--le-input-height:1.5rem;--le-input-label-color:var(--le-color-text-primary, #333333);--le-input-desc-color:var(--le-color-text-secondary, #666666);--le-input-placeholder-color:#999999;--le-input-border-error:2px solid var(--le-color-danger, #dc3545);--le-input-error-color:var(--le-color-danger, #dc3545)}.le-input-wrapper{display:flex;flex-direction:column;gap:2px}.le-input-label{display:block;font-size:0.9em;font-weight:500;color:var(--le-input-label-color);margin-bottom:2px}.le-input-container{position:relative;display:flex;align-items:center;background:var(--le-input-bg);border:var(--le-input-border);border-radius:var(--le-input-radius);transition:border-color 0.2s}.le-input-container:focus-within{outline:2px solid var(--le-color-focus);outline-offset:2px}.le-input-container.has-error{border:var(--le-input-border-error)}:host([disabled]) .le-input-container{opacity:0.6;background-color:rgba(0,0,0,0.05);cursor:not-allowed}input{flex:1;width:100%;height:calc(var(--le-input-height) - 2px);padding:var(--le-input-padding);border:none;background:transparent;color:var(--le-input-color);font-family:inherit;font-size:inherit;outline:none;text-align:right;-moz-appearance:textfield;}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input::placeholder{color:var(--le-input-placeholder-color)}.icon-start,.icon-end{display:flex;align-items:center;justify-content:center;padding:0 8px;color:var(--le-input-desc-color)}.le-input-controls{display:flex;flex-direction:column;border-left:1px solid var(--le-color-border, #cccccc);height:100%}.le-input-control-btn{--le-button-border-radius:0;--le-button-padding-x:0;--le-button-padding-y:0;--le-button-small-font-size:9.5px;--le-button-small-padding:0 0.2rem;--le-button-icon-aspect-ratio:2;display:flex;align-items:center;justify-content:center;height:50%;cursor:pointer;background:none;border:none;color:var(--le-input-desc-color);font-size:10px;line-height:1}.le-input-control-btn:hover{background-color:rgba(0,0,0,0.05);color:var(--le-color-primary, #007bff)}.le-input-control-btn:active{background-color:rgba(0,0,0,0.1)}.le-input-description{font-size:0.85em;color:var(--le-input-desc-color);margin-top:2px}.le-input-error{font-size:0.85em;color:var(--le-input-error-color);margin-top:2px}`;const s=class{constructor(i){e(this,i);this.leChange=t(this,"leChange");this.leInput=t(this,"leInput")}get el(){return i(this)}value;name;label;placeholder;min;max;step=1;required=false;disabled=false;readonly=false;iconStart;showSpinners=true;externalId;isValid=true;validationMessage="";leChange;leInput;valueChanged(){this.validate()}validate(){if(this.required&&(this.value===undefined||this.value===null||isNaN(this.value))){this.isValid=false;this.validationMessage="This field is required";return}if(this.value!==undefined&&this.value!==null&&!isNaN(this.value)){if(this.min!==undefined&&this.value<this.min){this.isValid=false;this.validationMessage=`Value must be at least ${this.min}`;return}if(this.max!==undefined&&this.value>this.max){this.isValid=false;this.validationMessage=`Value must be at most ${this.max}`;return}}this.isValid=true;this.validationMessage=""}emitChange(){this.leChange.emit({value:this.value,name:this.name,externalId:this.externalId,isValid:this.isValid})}emitInput(){this.leInput.emit({value:this.value,name:this.name,externalId:this.externalId,isValid:this.isValid})}updateValue(e){if(this.disabled||this.readonly)return;const t=this.step.toString().split(".")[1]?.length||0;const i=parseFloat(e.toFixed(t));this.value=i;this.validate();this.emitInput()}handleInput=e=>{const t=e.target;const i=parseFloat(t.value);if(t.value===""){this.value=undefined}else if(!isNaN(i)){this.value=i}this.validate();this.emitInput()};handleChange=()=>{this.validate();this.emitChange()};handleKeyDown=e=>{if(this.disabled||this.readonly)return;let t=1;if(e.shiftKey)t=10;if(e.altKey)t=.1;const i=this.value||0;if(e.key==="ArrowUp"){e.preventDefault();this.updateValue(i+this.step*t)}else if(e.key==="ArrowDown"){e.preventDefault();this.updateValue(i-this.step*t)}};handleWheel=e=>{if(this.disabled||this.readonly)return;if(document.activeElement!==e.target)return;e.preventDefault();const t=this.value||0;if(e.deltaY<0){this.updateValue(t+this.step)}else{this.updateValue(t-this.step)}};increment=e=>{e.preventDefault();const t=this.value||0;this.updateValue(t+this.step);this.emitChange()};decrement=e=>{e.preventDefault();const t=this.value||0;this.updateValue(t-this.step);this.emitChange()};render(){return n("le-component",{key:"c6c327cad4a4df50aa270efcc203449f2c15d36c",component:"le-number-input",hostClass:r({disabled:this.disabled})},n("div",{key:"3745bd8a915fcfc6909c96afa882c22b2fea7e87",class:"le-input-wrapper"},this.label&&n("label",{key:"557aa7702fab5ff75d9f547a677b3bc2e72ef8aa",class:"le-input-label",htmlFor:this.name},this.label),n("div",{key:"5e5f68aaabba117db7680f0680e67dffcc15dc7c",class:r("le-input-container",{"has-error":!this.isValid})},this.iconStart&&n("span",{key:"ff47ad75a59cc6a35758eead376afcb3dd10ba59",class:"icon-start"},this.iconStart),n("input",{key:"ec214ea43b6cb94d7e73129c53e55506c5b0b890",id:this.name,type:"number",name:this.name,placeholder:this.placeholder,min:this.min,max:this.max,step:this.step,value:this.value,disabled:this.disabled,readOnly:this.readonly,required:this.required,onInput:this.handleInput,onChange:this.handleChange,onKeyDown:this.handleKeyDown,onWheel:this.handleWheel}),this.showSpinners&&n("div",{key:"e2fe4db81e51ff88447b8c27b83d0e7227516153",class:"le-input-controls"},n("le-button",{key:"91c3d862066fbd13c222eebe043f89be5de39acd",mode:"default",variant:"clear",size:"small","icon-only":true,class:"le-input-control-btn",onClick:this.increment,disabled:this.disabled||this.readonly||this.max!==undefined&&this.value>=this.max,tabindex:"-1"},n("span",{key:"a7008c7bcee858324ae75eaf2a9eff0c818dc521",slot:"icon-only"},"↑")),n("le-button",{key:"bd075538967672ec669287682e21d832bf0732f4",mode:"default",variant:"clear",size:"small","icon-only":true,class:"le-input-control-btn",onClick:this.decrement,disabled:this.disabled||this.readonly||this.min!==undefined&&this.value<=this.min,tabindex:"-1"},n("span",{key:"915fbe4bcec150360f1f857a08675b00182a7ea3",slot:"icon-only"},"↓")))),!this.isValid&&n("div",{key:"3a6b6c39aa89ad1295a6277f5b1d7b0b27ed8c4b",class:"le-input-error"},this.validationMessage),n("div",{key:"2124de657df8f114fbcbf62dfcb878177d255274",class:"le-input-description"},n("le-slot",{key:"d5547bee7220cfedefe52b56f4c51a8eefde3b0e",name:"description",type:"text",tag:"p",label:"Description"},n("slot",{key:"643326ec71aa2b527fc7ac0baa75f329d9b460dd",name:"description"})))))}static get watchers(){return{value:["valueChanged"]}}};s.style=l();export{s as le_number_input};
2
+ //# sourceMappingURL=p-e6b2cf9a.entry.js.map
@@ -1,2 +1,2 @@
1
- import{r as t,c as e,h as i,H as s}from"./p-Bb6rgQY0.js";import{c as n}from"./p-DG6SMiyr.js";const r=()=>`:host{display:block;box-sizing:border-box}:host([hidden]){display:none}.box{width:100%;height:100%;box-sizing:border-box}.content{width:100%;height:100%;box-sizing:border-box;background:var(--le-box-bg, transparent);border-radius:var(--le-box-border-radius, 0);padding:var(--le-box-padding, 0)}:host(.display-flex) .content{min-height:100%}`;const a=class{constructor(e){t(this,e)}get el(){return e(this)}grow=0;shrink=1;basis="auto";width;height;minWidth;maxWidth;minHeight;maxHeight;background;borderRadius;border;alignSelf="auto";alignContent="stretch";justifyContent="start";padding;order;displayFlex=false;innerDirection="vertical";innerGap;getAlignSelf(){const t={auto:"auto",start:"flex-start",center:"center",end:"flex-end",stretch:"stretch",baseline:"baseline"};return t[this.alignSelf]||"auto"}getContentAlign(){const t={start:"flex-start",center:"center",end:"flex-end",stretch:"stretch"};return t[this.alignContent]||"stretch"}getContentJustify(){const t={start:"flex-start",center:"center",end:"flex-end",stretch:"stretch"};return t[this.justifyContent]||"flex-start"}render(){const t={flexGrow:String(this.grow),flexShrink:String(this.shrink),flexBasis:this.basis,alignSelf:this.getAlignSelf()};if(this.width)t.width=this.width;if(this.height)t.height=this.height;if(this.minWidth)t.minWidth=this.minWidth;if(this.maxWidth)t.maxWidth=this.maxWidth;if(this.minHeight)t.minHeight=this.minHeight;if(this.maxHeight)t.maxHeight=this.maxHeight;if(this.order!==undefined)t.order=String(this.order);const e={};if(this.padding){e.padding=this.padding}if(this.background){e.background=this.background}if(this.borderRadius){e.borderRadius=this.borderRadius}if(this.border){e.border=this.border}if(this.displayFlex){e.display="flex";e.flexDirection=this.innerDirection==="vertical"?"column":"row";e.alignItems=this.getContentAlign();e.justifyContent=this.getContentJustify();if(this.innerGap){e.gap=this.innerGap}}const r=n({"has-grow":this.grow>0,"display-flex":this.displayFlex,[`inner-${this.innerDirection}`]:this.displayFlex});return i(s,{key:"2d64b5a59e9eb12701ffd68ee2db293868b232a1",style:t,class:r},i("le-component",{key:"3b4c73ad636e9a884a212d6ca06ffbe55b3c438f",component:"le-box"},i("div",{key:"00f1a922ba7d8c2c070d8254da9d4b9335e82bff",class:"box",part:"box"},i("div",{key:"bd974a033501e5b99d56892329017b95c95e753c",class:"content",part:"content",style:e},i("le-slot",{key:"62ddce60dc17d6da11c033b2b94f1a3ce69f69da",name:"",description:"Content inside this flex item",type:"slot","allowed-components":"le-text,le-card,le-button,le-stack,le-box"},i("slot",{key:"780fdfd1873ad3a629d1afbfcd0d5ca60cd4c679"}))))))}};a.style=r();export{a as le_box};
2
- //# sourceMappingURL=p-43a17d84.entry.js.map
1
+ import{r as t,c as e,h as i,H as s}from"./p-C-Chwj1b.js";import{c as n}from"./p-DFr88Szp.js";const r=()=>`:host{display:block;box-sizing:border-box}:host([hidden]){display:none}.box{width:100%;height:100%;box-sizing:border-box}.content{width:100%;height:100%;box-sizing:border-box;background:var(--le-box-bg, transparent);border-radius:var(--le-box-border-radius, 0);padding:var(--le-box-padding, 0)}:host(.display-flex) .content{min-height:100%}`;const a=class{constructor(e){t(this,e)}get el(){return e(this)}grow=0;shrink=1;basis="auto";width;height;minWidth;maxWidth;minHeight;maxHeight;background;borderRadius;border;alignSelf="auto";alignContent="stretch";justifyContent="start";padding;order;displayFlex=false;innerDirection="vertical";innerGap;getAlignSelf(){const t={auto:"auto",start:"flex-start",center:"center",end:"flex-end",stretch:"stretch",baseline:"baseline"};return t[this.alignSelf]||"auto"}getContentAlign(){const t={start:"flex-start",center:"center",end:"flex-end",stretch:"stretch"};return t[this.alignContent]||"stretch"}getContentJustify(){const t={start:"flex-start",center:"center",end:"flex-end",stretch:"stretch"};return t[this.justifyContent]||"flex-start"}render(){const t={flexGrow:String(this.grow),flexShrink:String(this.shrink),flexBasis:this.basis,alignSelf:this.getAlignSelf()};if(this.width)t.width=this.width;if(this.height)t.height=this.height;if(this.minWidth)t.minWidth=this.minWidth;if(this.maxWidth)t.maxWidth=this.maxWidth;if(this.minHeight)t.minHeight=this.minHeight;if(this.maxHeight)t.maxHeight=this.maxHeight;if(this.order!==undefined)t.order=String(this.order);const e={};if(this.padding){e.padding=this.padding}if(this.background){e.background=this.background}if(this.borderRadius){e.borderRadius=this.borderRadius}if(this.border){e.border=this.border}if(this.displayFlex){e.display="flex";e.flexDirection=this.innerDirection==="vertical"?"column":"row";e.alignItems=this.getContentAlign();e.justifyContent=this.getContentJustify();if(this.innerGap){e.gap=this.innerGap}}const r=n({"has-grow":this.grow>0,"display-flex":this.displayFlex,[`inner-${this.innerDirection}`]:this.displayFlex});return i(s,{key:"2d64b5a59e9eb12701ffd68ee2db293868b232a1",style:t,class:r},i("le-component",{key:"3b4c73ad636e9a884a212d6ca06ffbe55b3c438f",component:"le-box"},i("div",{key:"00f1a922ba7d8c2c070d8254da9d4b9335e82bff",class:"box",part:"box"},i("div",{key:"bd974a033501e5b99d56892329017b95c95e753c",class:"content",part:"content",style:e},i("le-slot",{key:"62ddce60dc17d6da11c033b2b94f1a3ce69f69da",name:"",description:"Content inside this flex item",type:"slot","allowed-components":"le-text,le-card,le-button,le-stack,le-box"},i("slot",{key:"780fdfd1873ad3a629d1afbfcd0d5ca60cd4c679"}))))))}};a.style=r();export{a as le_box};
2
+ //# sourceMappingURL=p-ea71f22c.entry.js.map
@@ -1,2 +1,2 @@
1
- import{r as t,d as e,c as a,h as i,H as s}from"./p-Bb6rgQY0.js";const r=()=>`:host{display:block;--le-tab-bar-background:var(--le-color-surface);--le-tab-bar-border-color:var(--le-color-border);--le-tab-bar-gap:var(--le-spacing-2);--le-tab-bar-padding-y:var(--le-spacing-2);--le-tab-bar-padding-x:var(--le-spacing-1);background:var(--le-tab-bar-background);padding:var(--le-tab-bar-padding-y) var(--le-tab-bar-padding-x)}:host([full-width]){width:100%}:host(.bordered.position-top){border-bottom:1px solid var(--le-tab-bar-border-color)}:host(.bordered.position-bottom){border-top:1px solid var(--le-tab-bar-border-color)}.tablist{display:flex;flex-direction:row;align-items:flex-end;justify-content:space-around;gap:var(--le-tab-bar-gap, var(--le-spacing-1));width:100%}.tab{display:inline-flex;align-items:flex-start;justify-content:space-around;gap:var(--le-spacing-2);position:relative;background:transparent;border:none;cursor:pointer}.tab-disabled{opacity:0.5;cursor:not-allowed}.tab-icon{display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em;font-size:1.1em}.tab-icon img{width:100%;height:100%;object-fit:contain}.tab-description{font-size:var(--le-font-size-xs);font-weight:var(--le-font-weight-normal);color:var(--le-text-tertiary);margin-left:var(--le-spacing-1)}`;const n=class{constructor(a){t(this,a);this.leTabChange=e(this,"leTabChange")}get el(){return a(this)}tabs=[];selected;fullWidth=true;showLabels=false;position="top";size="medium";bordered=true;tabConfigs=[];isDeclarativeMode=false;focusedIndex=0;leTabChange;mutationObserver;selectedChanged(t){const e=this.tabConfigs.findIndex((e=>e.value===t));if(e>=0){this.focusedIndex=e}}tabsChanged(){if(!this.isDeclarativeMode){this.buildTabConfigs()}}handleSlotChange(){this.buildTabConfigs()}componentWillLoad(){this.buildTabConfigs();if(this.selected===undefined&&this.tabs.length>0){const t=this.tabs.find((t=>!t.disabled));if(t){this.selected=this.getTabValue(t)}}if(this.selected!==undefined){const t=this.getTabIndex(this.selected);if(t>=0){this.focusedIndex=t}}}connectedCallback(){this.mutationObserver=new MutationObserver((()=>{this.buildTabConfigs()}));this.mutationObserver.observe(this.el,{attributes:true,childList:true,subtree:true})}disconnectedCallback(){this.mutationObserver?.disconnect()}async buildTabConfigs(){const t=Array.from(this.el.querySelectorAll(":scope > le-tab"));if(t.length>0){this.isDeclarativeMode=true;const e=[];for(const a of t){const t=await a.getTabConfig();e.push({...t})}this.tabConfigs=e}else if(this.tabs.length>0){this.isDeclarativeMode=false;this.tabConfigs=this.tabs.map((t=>({label:t.label,value:t.value!==undefined?t.value:t.label,iconStart:t.iconStart,iconEnd:t.iconEnd,disabled:t.disabled??false})))}else{this.tabConfigs=[]}if(this.selected===undefined&&this.tabConfigs.length>0){const t=this.tabConfigs.find((t=>!t.disabled));if(t){this.selected=t.value}}if(this.selected!==undefined){const t=this.tabConfigs.findIndex((t=>t.value===this.selected));if(t>=0){this.focusedIndex=t}}}getTabValue(t){return t.value!==undefined?t.value:t.label}getTabIndex(t){return this.tabs.findIndex((e=>this.getTabValue(e)===t))}selectTab(t){if(t.disabled)return;const e=this.getTabValue(t);this.selected=e;this.leTabChange.emit({value:e,option:t})}handleTabClick=t=>{this.selectTab(t)};handleKeyDown=t=>{const{tabConfigs:e}=this;let a=this.focusedIndex;switch(t.key){case"ArrowLeft":t.preventDefault();a=this.findNextEnabledTab(-1);break;case"ArrowRight":t.preventDefault();a=this.findNextEnabledTab(1);break;case"Home":t.preventDefault();a=this.findFirstEnabledTab();break;case"End":t.preventDefault();a=this.findLastEnabledTab();break;case"Enter":case" ":t.preventDefault();if(e[this.focusedIndex]){this.selectTab(e[this.focusedIndex])}return;default:return}if(a!==this.focusedIndex){this.focusedIndex=a;if(e[a]){this.selectTab(e[a])}}};findNextEnabledTab(t){const{tabConfigs:e}=this;let a=this.focusedIndex;const i=e.length;for(let s=0;s<i;s++){a=(a+t+i)%i;if(!e[a].disabled){return a}}return this.focusedIndex}findFirstEnabledTab(){return this.tabConfigs.findIndex((t=>!t.disabled))}findLastEnabledTab(){for(let t=this.tabConfigs.length-1;t>=0;t--){if(!this.tabConfigs[t].disabled)return t}return 0}render(){const{tabConfigs:t,selected:e,size:a,bordered:r}=this;const n={"le-tab-bar":true,bordered:r,"position-top":this.position==="top","position-bottom":this.position==="bottom"};return i(s,{key:"45acb7c7c2c2676f1b7040d59dc56e3ef762a5fb",class:n},i("le-component",{key:"ed3b7eaf5163ebe676b3c830039f689782d6c58b",component:"le-tab-bar"},i("div",{key:"ba0d8f8a6adb511671ab540e7c1f3cdcda86dc05",class:"tablist",role:"tablist","aria-orientation":"horizontal",part:"tablist",onKeyDown:this.handleKeyDown},i("le-slot",{key:"11e4cb848cfb6ede8f65d2d35732f9d7702def26",name:"",type:"slot",allowedComponents:"le-tab"},t.map((t=>{const s=this.getTabValue(t);const r=s===e;return i("le-tab",{key:s,class:"tab",role:"tab",variant:"icon-only",label:t.label,value:t.value,icon:t.icon,href:t.href,selected:r,disabled:t.disabled,showLabel:this.showLabels,size:a,part:r?"tab tab-active":"tab","aria-selected":r?"true":"false","aria-disabled":t.disabled?"true":undefined,tabIndex:-1,onClick:()=>this.handleTabClick(t)},i("span",{class:"tab-label"},t.label))}))))))}static get watchers(){return{selected:["selectedChanged"],tabs:["tabsChanged"]}}};n.style=r();export{n as le_tab_bar};
2
- //# sourceMappingURL=p-1d4f84f6.entry.js.map
1
+ import{r as t,d as e,c as a,h as i,H as s}from"./p-C-Chwj1b.js";const n=()=>`:host{display:block;--le-tab-bar-background:var(--le-color-surface);--le-tab-bar-border-color:var(--le-color-border);--le-tab-bar-gap:var(--le-spacing-2);--le-tab-bar-padding-y:var(--le-spacing-2);--le-tab-bar-padding-x:var(--le-spacing-1);background:var(--le-tab-bar-background);padding:var(--le-tab-bar-padding-y) var(--le-tab-bar-padding-x)}:host([full-width]){width:100%}:host(.bordered.position-top){border-bottom:1px solid var(--le-tab-bar-border-color)}:host(.bordered.position-bottom){border-top:1px solid var(--le-tab-bar-border-color)}.tablist{display:flex;flex-direction:row;align-items:flex-end;justify-content:space-around;gap:var(--le-tab-bar-gap, var(--le-spacing-1));width:100%}.tab{display:inline-flex;align-items:flex-start;justify-content:space-around;gap:var(--le-spacing-2);position:relative;background:transparent;border:none;cursor:pointer}.tab-disabled{opacity:0.5;cursor:not-allowed}.tab-icon{display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em;font-size:1.1em}.tab-icon img{width:100%;height:100%;object-fit:contain}.tab-description{font-size:var(--le-font-size-xs);font-weight:var(--le-font-weight-normal);color:var(--le-text-tertiary);margin-left:var(--le-spacing-1)}`;const r=class{constructor(a){t(this,a);this.leTabChange=e(this,"leTabChange")}get el(){return a(this)}tabs=[];selected;fullWidth=true;showLabels=false;position="top";size="medium";bordered=true;tabConfigs=[];isDeclarativeMode=false;focusedIndex=0;leTabChange;mutationObserver;selectedChanged(t){const e=this.tabConfigs.findIndex((e=>e.value===t));if(e>=0){this.focusedIndex=e}}tabsChanged(){if(!this.isDeclarativeMode){this.buildTabConfigs()}}handleSlotChange(){this.buildTabConfigs()}componentWillLoad(){this.buildTabConfigs();if(this.selected===undefined&&this.tabs.length>0){const t=this.tabs.find((t=>!t.disabled));if(t){this.selected=this.getTabValue(t)}}if(this.selected!==undefined){const t=this.getTabIndex(this.selected);if(t>=0){this.focusedIndex=t}}}connectedCallback(){this.mutationObserver=new MutationObserver((()=>{this.buildTabConfigs()}));this.mutationObserver.observe(this.el,{attributes:true,childList:true,subtree:true})}disconnectedCallback(){this.mutationObserver?.disconnect()}async buildTabConfigs(){const t=Array.from(this.el.querySelectorAll(":scope > le-tab"));if(t.length>0){this.isDeclarativeMode=true;const e=[];for(const a of t){const t=await a.getTabConfig();e.push({...t})}this.tabConfigs=e}else if(this.tabs.length>0){this.isDeclarativeMode=false;this.tabConfigs=this.tabs.map((t=>({label:t.label,value:t.value!==undefined?t.value:t.label,iconStart:t.iconStart,iconEnd:t.iconEnd,disabled:t.disabled??false})))}else{this.tabConfigs=[]}if(this.selected===undefined&&this.tabConfigs.length>0){const t=this.tabConfigs.find((t=>!t.disabled));if(t){this.selected=t.value}}if(this.selected!==undefined){const t=this.tabConfigs.findIndex((t=>t.value===this.selected));if(t>=0){this.focusedIndex=t}}}getTabValue(t){return t.value!==undefined?t.value:t.label}getTabIndex(t){return this.tabs.findIndex((e=>this.getTabValue(e)===t))}selectTab(t){if(t.disabled)return;const e=this.getTabValue(t);this.selected=e;this.leTabChange.emit({value:e,option:t})}handleTabClick=t=>{this.selectTab(t)};handleKeyDown=t=>{const{tabConfigs:e}=this;let a=this.focusedIndex;switch(t.key){case"ArrowLeft":t.preventDefault();a=this.findNextEnabledTab(-1);break;case"ArrowRight":t.preventDefault();a=this.findNextEnabledTab(1);break;case"Home":t.preventDefault();a=this.findFirstEnabledTab();break;case"End":t.preventDefault();a=this.findLastEnabledTab();break;case"Enter":case" ":t.preventDefault();if(e[this.focusedIndex]){this.selectTab(e[this.focusedIndex])}return;default:return}if(a!==this.focusedIndex){this.focusedIndex=a;if(e[a]){this.selectTab(e[a])}}};findNextEnabledTab(t){const{tabConfigs:e}=this;let a=this.focusedIndex;const i=e.length;for(let s=0;s<i;s++){a=(a+t+i)%i;if(!e[a].disabled){return a}}return this.focusedIndex}findFirstEnabledTab(){return this.tabConfigs.findIndex((t=>!t.disabled))}findLastEnabledTab(){for(let t=this.tabConfigs.length-1;t>=0;t--){if(!this.tabConfigs[t].disabled)return t}return 0}render(){const{tabConfigs:t,selected:e,size:a,bordered:n}=this;const r={"le-tab-bar":true,bordered:n,"position-top":this.position==="top","position-bottom":this.position==="bottom"};return i(s,{key:"45acb7c7c2c2676f1b7040d59dc56e3ef762a5fb",class:r},i("le-component",{key:"ed3b7eaf5163ebe676b3c830039f689782d6c58b",component:"le-tab-bar"},i("div",{key:"ba0d8f8a6adb511671ab540e7c1f3cdcda86dc05",class:"tablist",role:"tablist","aria-orientation":"horizontal",part:"tablist",onKeyDown:this.handleKeyDown},i("le-slot",{key:"11e4cb848cfb6ede8f65d2d35732f9d7702def26",name:"",type:"slot",allowedComponents:"le-tab"},t.map((t=>{const s=this.getTabValue(t);const n=s===e;return i("le-tab",{key:s,class:"tab",role:"tab",variant:"icon-only",label:t.label,value:t.value,icon:t.icon,href:t.href,selected:n,disabled:t.disabled,showLabel:this.showLabels,size:a,part:n?"tab tab-active":"tab","aria-selected":n?"true":"false","aria-disabled":t.disabled?"true":undefined,tabIndex:-1,onClick:()=>this.handleTabClick(t)},i("span",{class:"tab-label"},t.label))}))))))}static get watchers(){return{selected:["selectedChanged"],tabs:["tabsChanged"]}}};r.style=n();export{r as le_tab_bar};
2
+ //# sourceMappingURL=p-f8034500.entry.js.map
@@ -39,9 +39,9 @@ export declare function setGlobalMode(mode: LeKitMode): void;
39
39
  */
40
40
  export declare function setGlobalTheme(theme: LeKitTheme): void;
41
41
  /**
42
- * Global configuration for le-kit
42
+ * Type definition for le-kit configuration
43
43
  */
44
- declare let leKitConfig: {
44
+ export interface LeKitConfig {
45
45
  /**
46
46
  * URL to the custom-elements.json manifest.
47
47
  * Used by admin components (le-component, le-slot) to load component metadata.
@@ -70,7 +70,7 @@ declare let leKitConfig: {
70
70
  * ```
71
71
  */
72
72
  assetBasePath: string;
73
- };
73
+ }
74
74
  /**
75
75
  * Configure le-kit global settings.
76
76
  *
@@ -79,15 +79,16 @@ declare let leKitConfig: {
79
79
  * import { configureLeKit } from 'le-kit';
80
80
  *
81
81
  * configureLeKit({
82
- * manifestFile: 'custom-elements.json'
82
+ * manifestFile: 'custom-elements.json',
83
+ * assetBasePath: '/le-kit-assets'
83
84
  * });
84
85
  * ```
85
86
  */
86
- export declare function configureLeKit(config: Partial<typeof leKitConfig>): void;
87
+ export declare function configureLeKit(config: Partial<LeKitConfig>): void;
87
88
  /**
88
89
  * Get the current le-kit configuration.
89
90
  */
90
- export declare function getLeKitConfig(): typeof leKitConfig;
91
+ export declare function getLeKitConfig(): LeKitConfig;
91
92
  /**
92
93
  * Get the configured asset base path.
93
94
  * Used internally by components that load assets.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "le-kit",
3
- "version": "0.3.3",
3
+ "version": "0.3.4",
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",