kritzel-stencil 0.3.11 → 0.3.13

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 (178) hide show
  1. package/dist/cjs/{index-CFnj_FXt.js → index-Xav9JFHg.js} +1 -1
  2. package/dist/cjs/index.cjs.js +41 -3
  3. package/dist/cjs/kritzel-active-users_42.cjs.entry.js +344 -138
  4. package/dist/cjs/kritzel-brush-style.cjs.entry.js +1 -1
  5. package/dist/cjs/loader.cjs.js +2 -2
  6. package/dist/cjs/{schema.constants-BNMNpzvA.js → schema.constants-CMFOYyBj.js} +26 -43
  7. package/dist/cjs/stencil.cjs.js +3 -3
  8. package/dist/collection/classes/core/viewport.class.js +16 -8
  9. package/dist/collection/classes/objects/shape.class.js +3 -2
  10. package/dist/collection/classes/tools/base-tool.class.js +2 -0
  11. package/dist/collection/classes/tools/brush-tool.class.js +1 -0
  12. package/dist/collection/classes/tools/eraser-tool.class.js +1 -0
  13. package/dist/collection/classes/tools/image-tool.class.js +1 -0
  14. package/dist/collection/classes/tools/line-tool.class.js +1 -0
  15. package/dist/collection/classes/tools/selection-tool.class.js +1 -0
  16. package/dist/collection/classes/tools/shape-tool.class.js +1 -0
  17. package/dist/collection/classes/tools/text-tool.class.js +1 -0
  18. package/dist/collection/collection-manifest.json +1 -1
  19. package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +166 -22
  20. package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +408 -37
  21. package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.css +3 -3
  22. package/dist/collection/components/shared/kritzel-input/kritzel-input.css +1 -1
  23. package/dist/collection/components/shared/kritzel-numeric-input/kritzel-numeric-input.css +2 -2
  24. package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.css +7 -0
  25. package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js +7 -1
  26. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js +27 -6
  27. package/dist/collection/components/ui/kritzel-export/kritzel-export.css +1 -1
  28. package/dist/collection/components/ui/kritzel-tool-config/kritzel-tool-config.js +2 -2
  29. package/dist/collection/configs/default-asset-storage.config.js +1 -2
  30. package/dist/collection/configs/default-brush-tool.config.js +1 -0
  31. package/dist/collection/configs/default-line-tool.config.js +1 -0
  32. package/dist/collection/configs/default-shape-tool.config.js +1 -0
  33. package/dist/collection/configs/default-sync.config.js +2 -5
  34. package/dist/collection/configs/default-text-tool.config.js +1 -0
  35. package/dist/collection/constants/version.js +1 -1
  36. package/dist/collection/helpers/tool-config.helper.js +58 -65
  37. package/dist/collection/interfaces/tool-type.interface.js +1 -0
  38. package/dist/collection/themes/dark-theme.js +5 -0
  39. package/dist/collection/themes/light-theme.js +5 -0
  40. package/dist/components/index.js +1 -1
  41. package/dist/components/kritzel-active-users.js +1 -1
  42. package/dist/components/kritzel-avatar.js +1 -1
  43. package/dist/components/kritzel-awareness-cursors.js +1 -1
  44. package/dist/components/kritzel-back-to-content.js +1 -1
  45. package/dist/components/kritzel-brush-style.js +1 -1
  46. package/dist/components/kritzel-button.js +1 -1
  47. package/dist/components/kritzel-color-palette.js +1 -1
  48. package/dist/components/kritzel-color.js +1 -1
  49. package/dist/components/kritzel-context-menu.js +1 -1
  50. package/dist/components/kritzel-controls.js +1 -1
  51. package/dist/components/kritzel-current-user-dialog.js +1 -1
  52. package/dist/components/kritzel-current-user.js +1 -1
  53. package/dist/components/kritzel-cursor-trail.js +1 -1
  54. package/dist/components/kritzel-dialog.js +1 -1
  55. package/dist/components/kritzel-dropdown.js +1 -1
  56. package/dist/components/kritzel-editor.js +1 -1
  57. package/dist/components/kritzel-engine.js +1 -1
  58. package/dist/components/kritzel-export.js +1 -1
  59. package/dist/components/kritzel-font-family.js +1 -1
  60. package/dist/components/kritzel-font-size.js +1 -1
  61. package/dist/components/kritzel-font.js +1 -1
  62. package/dist/components/kritzel-icon.js +1 -1
  63. package/dist/components/kritzel-input.js +1 -1
  64. package/dist/components/kritzel-line-endings.js +1 -1
  65. package/dist/components/kritzel-login-dialog.js +1 -1
  66. package/dist/components/kritzel-master-detail.js +1 -1
  67. package/dist/components/kritzel-menu-item.js +1 -1
  68. package/dist/components/kritzel-menu.js +1 -1
  69. package/dist/components/kritzel-more-menu.js +1 -1
  70. package/dist/components/kritzel-numeric-input.js +1 -1
  71. package/dist/components/kritzel-opacity-slider.js +1 -1
  72. package/dist/components/kritzel-pill-tabs.js +1 -1
  73. package/dist/components/kritzel-portal.js +1 -1
  74. package/dist/components/kritzel-settings.js +1 -1
  75. package/dist/components/kritzel-shape-fill.js +1 -1
  76. package/dist/components/kritzel-share-dialog.js +1 -1
  77. package/dist/components/kritzel-slide-toggle.js +1 -1
  78. package/dist/components/kritzel-split-button.js +1 -1
  79. package/dist/components/kritzel-stroke-size.js +1 -1
  80. package/dist/components/kritzel-tool-config.js +1 -1
  81. package/dist/components/kritzel-tooltip.js +1 -1
  82. package/dist/components/kritzel-utility-panel.js +1 -1
  83. package/dist/components/kritzel-workspace-manager.js +1 -1
  84. package/dist/components/p-2xYAGd0I.js +1 -0
  85. package/dist/components/{p-DdmJquQr.js → p-B2Os1ya_.js} +1 -1
  86. package/dist/components/p-B2w8X7vn.js +1 -0
  87. package/dist/components/{p-DRB3TZzI.js → p-B4b6TDxp.js} +1 -1
  88. package/dist/components/p-B5xxfwKF.js +1 -0
  89. package/dist/components/p-B9hLySCl.js +1 -0
  90. package/dist/components/{p-D0aom7Yu.js → p-BFYtCsZu.js} +1 -1
  91. package/dist/components/{p-CARNM9pf.js → p-BFoK4W--.js} +1 -1
  92. package/dist/components/{p-x38RbGJA.js → p-BYmp9Ovv.js} +1 -1
  93. package/dist/components/{p-KVG5rztB.js → p-BbactVA0.js} +1 -1
  94. package/dist/components/{p-B_JH91jB.js → p-BfNHpqQ8.js} +1 -1
  95. package/dist/components/{p-DXgUuzXW.js → p-BiG1dxPS.js} +1 -1
  96. package/dist/components/{p-Dov3qOAR.js → p-Bj2laX89.js} +1 -1
  97. package/dist/components/{p-Cr7xOsIZ.js → p-BqwqGFQY.js} +1 -1
  98. package/dist/components/{p-DmTG0Y5h.js → p-BzYU3-MJ.js} +1 -1
  99. package/dist/components/p-C-aFOO5p.js +1 -0
  100. package/dist/components/p-C0TN5IAi.js +1 -0
  101. package/dist/components/{p-RnuCSIt-.js → p-C2SX-XRr.js} +1 -1
  102. package/dist/components/{p-guqEWGgV.js → p-CFgkUYoO.js} +1 -1
  103. package/dist/components/{p-BTSOqHMI.js → p-CHrSFOSI.js} +1 -1
  104. package/dist/components/p-CJOhfMU5.js +1 -0
  105. package/dist/components/{p-DJLJfKY2.js → p-COLHjboZ.js} +1 -1
  106. package/dist/components/{p-CKY7AvGR.js → p-COgo9OWy.js} +1 -1
  107. package/dist/components/p-CVzH1Oil.js +1 -0
  108. package/dist/components/{p-DhAM4qeQ.js → p-CXpv9Rxe.js} +1 -1
  109. package/dist/components/{p-Bp3kdH4l.js → p-CcyIAi9S.js} +1 -1
  110. package/dist/components/{p-COIxq81R.js → p-CmuNn1Tc.js} +1 -1
  111. package/dist/components/{p-DfH7YY2C.js → p-D-sRVAbQ.js} +1 -1
  112. package/dist/components/{p-ZgZqbJ58.js → p-DDYoDSrm.js} +1 -1
  113. package/dist/components/{p-u0b2RJAn.js → p-DEy7zJCe.js} +1 -1
  114. package/dist/components/{p-BPEn0_hr.js → p-DM11KXUT.js} +1 -1
  115. package/dist/components/{p-CJERvHdy.js → p-DbB730vO.js} +1 -1
  116. package/dist/components/{p-C8ggg-5h.js → p-Df3BwVGy.js} +1 -1
  117. package/dist/components/{p-Dx_xz_El.js → p-DlwYHzSj.js} +1 -1
  118. package/dist/components/p-DplAQ6jk.js +9 -0
  119. package/dist/components/{p-CJ2V42sz.js → p-FK7b3BGt.js} +1 -1
  120. package/dist/components/{p-CxtTuKCy.js → p-JhOYwUOj.js} +1 -1
  121. package/dist/components/{p-Dw9sKOsb.js → p-SptaSMno.js} +1 -1
  122. package/dist/components/{p-KjtNlFTl.js → p-UoPj5QjH.js} +1 -1
  123. package/dist/components/{p-CYR9wbJg.js → p-dcAernE1.js} +1 -1
  124. package/dist/components/{p-B0VnbmWu.js → p-ijIqLY9g.js} +1 -1
  125. package/dist/components/{p-BI_UUiTr.js → p-skWUIStn.js} +1 -1
  126. package/dist/components/{p-DgtrNOWm.js → p-x6doYeiI.js} +1 -1
  127. package/dist/esm/{index-D9HaikfQ.js → index-Dhio9uis.js} +1 -1
  128. package/dist/esm/index.js +42 -4
  129. package/dist/esm/kritzel-active-users_42.entry.js +344 -138
  130. package/dist/esm/kritzel-brush-style.entry.js +1 -1
  131. package/dist/esm/loader.js +3 -3
  132. package/dist/esm/{schema.constants-CqBoZbmA.js → schema.constants-NrtFvKER.js} +27 -43
  133. package/dist/esm/stencil.js +4 -4
  134. package/dist/stencil/index.esm.js +1 -1
  135. package/dist/stencil/p-9adee165.entry.js +9 -0
  136. package/dist/stencil/p-NrtFvKER.js +1 -0
  137. package/dist/stencil/{p-69298b5f.entry.js → p-fb32cd8f.entry.js} +1 -1
  138. package/dist/stencil/stencil.esm.js +1 -1
  139. package/dist/types/classes/core/viewport.class.d.ts +8 -0
  140. package/dist/types/classes/objects/base-object.class.d.ts +1 -1
  141. package/dist/types/classes/objects/shape.class.d.ts +1 -1
  142. package/dist/types/classes/tools/base-tool.class.d.ts +3 -0
  143. package/dist/types/classes/tools/brush-tool.class.d.ts +1 -0
  144. package/dist/types/classes/tools/eraser-tool.class.d.ts +1 -0
  145. package/dist/types/classes/tools/image-tool.class.d.ts +1 -0
  146. package/dist/types/classes/tools/line-tool.class.d.ts +1 -0
  147. package/dist/types/classes/tools/selection-tool.class.d.ts +1 -0
  148. package/dist/types/classes/tools/shape-tool.class.d.ts +1 -0
  149. package/dist/types/classes/tools/text-tool.class.d.ts +1 -0
  150. package/dist/types/components/core/kritzel-editor/kritzel-editor.d.ts +5 -0
  151. package/dist/types/components/core/kritzel-engine/kritzel-engine.d.ts +48 -0
  152. package/dist/types/components/ui/kritzel-context-menu/kritzel-context-menu.d.ts +1 -0
  153. package/dist/types/components/ui/kritzel-controls/kritzel-controls.d.ts +1 -0
  154. package/dist/types/components.d.ts +69 -14
  155. package/dist/types/configs/default-asset-storage.config.d.ts +1 -1
  156. package/dist/types/configs/default-sync.config.d.ts +1 -1
  157. package/dist/types/constants/version.d.ts +1 -1
  158. package/dist/types/interfaces/object.interface.d.ts +1 -1
  159. package/dist/types/interfaces/theme.interface.d.ts +8 -3
  160. package/dist/types/interfaces/tool-config.interface.d.ts +3 -6
  161. package/dist/types/interfaces/tool-type.interface.d.ts +1 -0
  162. package/dist/types/interfaces/tool.interface.d.ts +1 -0
  163. package/dist/types/interfaces/toolbar-control.interface.d.ts +4 -0
  164. package/dist/types/stencil-public-runtime.d.ts +1 -0
  165. package/package.json +1 -1
  166. package/dist/components/p-BFgWBbpu.js +0 -1
  167. package/dist/components/p-C0wFAtT_.js +0 -1
  168. package/dist/components/p-CB7ynHtI.js +0 -1
  169. package/dist/components/p-CWgI1dA0.js +0 -1
  170. package/dist/components/p-D15NO5kE.js +0 -1
  171. package/dist/components/p-DH-H7om7.js +0 -1
  172. package/dist/components/p-DLlIaDNn.js +0 -9
  173. package/dist/components/p-IiG44Unz.js +0 -1
  174. package/dist/components/p-K7ySy791.js +0 -1
  175. package/dist/stencil/p-94992a11.entry.js +0 -9
  176. package/dist/stencil/p-CqBoZbmA.js +0 -1
  177. /package/dist/components/{p-BWj1eE2b.js → p-B43upypT.js} +0 -0
  178. /package/dist/stencil/{p-D9HaikfQ.js → p-Dhio9uis.js} +0 -0
@@ -0,0 +1 @@
1
+ import{p as e,H as t,c as i,h as n,d as s,t as o}from"./p-B43upypT.js";import{d as r}from"./p-DbB730vO.js";const a=e(class extends t{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow(),this.actionSelected=i(this,"actionSelected"),this.close=i(this,"close")}get host(){return this}items;onItemsChanged(){this.updateMenuItems()}objects;actionSelected;close;processedItems=[];openSubmenuPath="";submenuPositions={};submenuTimer=null;submenuRefs=new Map;menuItemWrapperRefs=new Map;handleOutsideClick(e){e.composedPath().includes(this.host)||this.close.emit()}componentWillLoad(){this.updateMenuItems()}componentDidLoad(){this.adjustPositionToViewport()}componentDidUpdate(){this.adjustPositionToViewport(),this.adjustSubmenuPositions(),this.pruneStaleRefs()}disconnectedCallback(){this.submenuTimer&&clearTimeout(this.submenuTimer)}adjustPositionToViewport(){const e=this.host.getBoundingClientRect(),t=window.innerWidth,i=window.innerHeight,n=parseFloat(this.host.style.left)||0,s=parseFloat(this.host.style.top)||0;let o=n,r=s;e.right>t-8&&(o=t-e.width-8),e.bottom>i-8&&(r=i-e.height-8),o<8&&(o=8),r<8&&(r=8),o===n&&r===s||(this.host.style.left=`${o}px`,this.host.style.top=`${r}px`)}adjustSubmenuPositions(){if(!this.openSubmenuPath)return;const e=window.innerHeight;for(const t of this.getOpenSubmenuPaths()){const i=this.submenuRefs.get(t),n=this.menuItemWrapperRefs.get(t);if(!i||!n)continue;const s=n.getBoundingClientRect(),o=s.top+i.offsetHeight;if(o>e-8){let t=o-(e-8);s.top-t<8&&(t=s.top-8),i.style.top=-t+"px"}else i.style.top="0px"}}getOpenSubmenuPaths(){if(!this.openSubmenuPath)return[];const e=this.openSubmenuPath.split("."),t=[];for(let i=1;i<=e.length;i++)t.push(e.slice(0,i).join("."));return t}isSubmenuOpen(e){return this.openSubmenuPath===e||this.openSubmenuPath.startsWith(e+".")}getParentPath(e){const t=e.lastIndexOf(".");return-1===t?"":e.substring(0,t)}getMenuDepth(e){return e?e.split(".").length:0}pruneStaleRefs(){const e=new Set(this.getOpenSubmenuPaths());for(const t of Array.from(this.submenuRefs.keys()))e.has(t)||this.submenuRefs.delete(t);for(const t of Array.from(this.menuItemWrapperRefs.keys())){const i=this.getParentPath(t);""===i||e.has(i)||this.menuItemWrapperRefs.delete(t)}}handleItemClick(e,t,i){t||i||e.action&&this.actionSelected.emit(e)}handleItemMouseEnter(e,t){this.submenuTimer&&(clearTimeout(this.submenuTimer),this.submenuTimer=null);const i=this.getParentPath(e);this.submenuTimer=t?setTimeout((()=>{const t=this.menuItemWrapperRefs.get(e);let i="right";if(t){const e=t.getBoundingClientRect(),n=window.innerWidth;i=e.right+160>n-8?"left":"right"}this.submenuPositions={...this.submenuPositions,[e]:i},this.openSubmenuPath=e}),150):setTimeout((()=>{this.openSubmenuPath=i}),150)}handleSubmenuMouseEnter(){this.submenuTimer&&(clearTimeout(this.submenuTimer),this.submenuTimer=null)}handleSubmenuMouseLeave(e){const t=this.getParentPath(e);this.submenuTimer=setTimeout((()=>{this.openSubmenuPath=t}),150)}async updateMenuItems(){this.processedItems=await this.processItems(this.items)}async processItems(e){const t=[];for(const i of e)if(await this.evaluateProperty(i.visible,!0)){const e=await this.evaluateProperty(i.disabled,!1);let n;i.children&&i.children.length>0&&(n=await this.processItems(i.children)),t.push({item:i,isDisabled:e,processedChildren:n})}return t}async evaluateProperty(e,t){return"boolean"==typeof e?e:"function"==typeof e?await Promise.resolve(e(null,this.objects)):t}renderItems(e,t){return e.map((({item:i,isDisabled:s,processedChildren:o},r)=>{const a=""===t?String(r):`${t}.${r}`,l=r>0?e[r-1].item:null,u=l&&l.group!==i.group,c=!!o&&o.length>0,m=c&&this.isSubmenuOpen(a);return[u&&n("div",{class:"menu-divider",key:`divider-${a}`}),n("div",{class:"menu-item-wrapper",key:`wrapper-${a}`,ref:e=>e&&this.menuItemWrapperRefs.set(a,e),onMouseEnter:()=>this.handleItemMouseEnter(a,c)},n("button",{key:`${i.label}-${a}`,class:{"menu-item":!0,disabled:s,"has-children":c,"submenu-open":m},onClick:()=>this.handleItemClick(i,s,c),disabled:s&&!c},i.icon&&n("kritzel-icon",{name:i.icon,size:16}),n("span",{class:"label"},i.label),c&&n("kritzel-icon",{name:"chevron-right",size:12,class:"submenu-arrow"})),c&&m&&this.renderSubmenu(o,a))]}))}renderSubmenu(e,t){const i="left"===this.submenuPositions[t]?"left":"right",s=this.getMenuDepth(t)+1;return n("div",{class:{"submenu-container":!0,"position-left":"left"===i},key:`submenu-${t}`,style:{zIndex:String(s)},ref:e=>e&&this.submenuRefs.set(t,e),onMouseEnter:()=>this.handleSubmenuMouseEnter(),onMouseLeave:()=>this.handleSubmenuMouseLeave(t)},this.renderItems(e,t))}render(){return this.processedItems&&0!==this.processedItems.length?n(s,null,n("div",{class:"menu-container"},this.renderItems(this.processedItems,""))):null}static get watchers(){return{items:[{onItemsChanged:0}]}}static get style(){return":host{display:block}.menu-container{position:relative;z-index:1;display:flex;flex-direction:column;gap:var(--kritzel-context-menu-item-spacing, 2px);background-color:var(--kritzel-context-menu-background-color, #ffffff);border-radius:var(--kritzel-context-menu-border-radius, 12px);box-shadow:var(--kritzel-context-menu-box-shadow, 0 1px 6px rgba(0, 0, 0, 0.12));border:var(--kritzel-context-menu-border, 1px solid #ebebeb);padding:var(--kritzel-context-menu-padding, 4px);min-width:var(--kritzel-context-menu-min-width, 140px)}.menu-item-wrapper{position:relative}.menu-item{display:flex;align-items:center;gap:var(--kritzel-context-menu-item-gap, 8px);background:none;border:none;text-align:left;padding:var(--kritzel-context-menu-item-padding, 8px);border-radius:var(--kritzel-context-menu-item-border-radius, 12px);cursor:var(--kritzel-global-pointer-cursor, pointer);font-size:var(--kritzel-context-menu-item-font-size, 14px);color:var(--kritzel-context-menu-item-color, #333333);white-space:nowrap;-webkit-tap-highlight-color:transparent;width:100%;min-width:0}.menu-item:not(.disabled):hover,.menu-item.submenu-open{background-color:var(--kritzel-context-menu-item-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.menu-item:not(.disabled):active{background-color:var(--kritzel-context-menu-item-active-background-color, hsl(0, 0%, 0%, 8.6%))}.menu-item.disabled{color:var(--kritzel-context-menu-item-disabled-color, #aaaaaa)}.menu-item.has-children.disabled{cursor:var(--kritzel-global-pointer-cursor, pointer);color:var(--kritzel-context-menu-item-color, #333333)}.menu-item kritzel-icon{opacity:0.8;flex-shrink:0}.menu-item.disabled kritzel-icon{opacity:0.4}.menu-item.has-children.disabled kritzel-icon{opacity:0.8}.label{flex-grow:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.submenu-arrow{margin-left:auto;opacity:0.5}.menu-divider{height:1px;background-color:var(--kritzel-context-menu-divider-color, rgba(0, 0, 0, 0.1));margin:var(--kritzel-context-menu-divider-margin, 4px 8px)}.submenu-container{position:absolute;top:0;left:100%;z-index:2;margin-left:4px;display:flex;flex-direction:column;gap:var(--kritzel-context-menu-item-spacing, 2px);background-color:var(--kritzel-context-menu-background-color, #ffffff);border-radius:var(--kritzel-context-menu-border-radius, 12px);box-shadow:var(--kritzel-context-menu-box-shadow, 0 1px 6px rgba(0, 0, 0, 0.12));border:var(--kritzel-context-menu-border, 1px solid #ebebeb);padding:var(--kritzel-context-menu-padding, 4px);min-width:120px}.submenu-container.position-left{left:auto;right:100%;margin-left:0;margin-right:4px}"}},[513,"kritzel-context-menu",{items:[16],objects:[16],processedItems:[32],openSubmenuPath:[32],submenuPositions:[32]},[[9,"pointerdown","handleOutsideClick"]],{items:[{onItemsChanged:0}]}]);function l(){"undefined"!=typeof customElements&&["kritzel-context-menu","kritzel-icon"].forEach((e=>{switch(e){case"kritzel-context-menu":customElements.get(o(e))||customElements.define(o(e),a);break;case"kritzel-icon":customElements.get(o(e))||r()}}))}export{a as K,l as d}
@@ -1 +1 @@
1
- import{p as t,H as e,h as s,d as i,t as o}from"./p-BWj1eE2b.js";import{K as r}from"./p-D8W6LE-c.js";const n=t(class extends e{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow()}core;cursorTrailPoints=[];isLeftButtonDown=!1;handleMouseDown(t){"mouse"===t.pointerType&&t.button===r.Left&&(this.isLeftButtonDown=!0,this.cursorTrailPoints=[]),"touch"===t.pointerType&&1===this.core.store.state.pointers.size&&(this.isLeftButtonDown=!0,this.cursorTrailPoints=[])}handlePointerMove(t){if(!this.isLeftButtonDown)return;const e=[{x:t.clientX,y:t.clientY,timestamp:Date.now()},...this.cursorTrailPoints];this.cursorTrailPoints=e.length>this.MAX_TRAIL_POINTS?e.slice(0,this.MAX_TRAIL_POINTS):e}handlePointerUp(t){"mouse"===t.pointerType&&t.button===r.Left&&(this.isLeftButtonDown=!1,this.cursorTrailPoints=[]),"touch"===t.pointerType&&0===this.core.store.state.pointers.size&&(this.isLeftButtonDown=!1,this.cursorTrailPoints=[])}trailCleanupIntervalId;TRAIL_DURATION_MS=100;MAX_TRAIL_POINTS=50;componentDidLoad(){this.trailCleanupIntervalId=window.setInterval((()=>{const t=Date.now(),e=this.cursorTrailPoints.filter((e=>t-e.timestamp<this.TRAIL_DURATION_MS));e.length!==this.cursorTrailPoints.length&&(this.cursorTrailPoints=e)}),50)}disconnectedCallback(){this.trailCleanupIntervalId&&window.clearInterval(this.trailCleanupIntervalId)}render(){return s(i,{key:"b427550b19a3e172cb25d05e34635121b82a61c5"},this.cursorTrailPoints.length>1&&s("svg",{key:"9685b563497e110f36c0feffbfde04ebeb38024b",class:"cursor-trail-svg",xmlns:"http://www.w3.org/2000/svg",style:{position:"absolute",left:"0",top:"0",width:"100%",height:"100%",pointerEvents:"none",opacity:"var(--kritzel-cursor-trail-opacity, 0.6)",zIndex:"9000"}},this.cursorTrailPoints.slice(1).map(((t,e)=>{const i=this.cursorTrailPoints[e],o=Date.now(),r=Math.max(0,Math.min(1,(o-t.timestamp)/this.TRAIL_DURATION_MS));if(r>=1)return null;const n=Math.max(2,15*(1-r));return s("line",{key:`trail-segment-${t.timestamp}`,x1:i.x.toString(),y1:i.y.toString(),x2:t.x.toString(),y2:t.y.toString(),stroke:"var(--kritzel-cursor-trail-color, rgb(228, 228, 228))","stroke-width":n.toString(),"stroke-linecap":"round"})}))))}static get style(){return":host{display:block;position:fixed;top:0;left:0;width:100vw;height:100vh;pointer-events:none;z-index:9000}"}},[513,"kritzel-cursor-trail",{core:[16],cursorTrailPoints:[32],isLeftButtonDown:[32]},[[9,"pointerdown","handleMouseDown"],[9,"pointermove","handlePointerMove"],[9,"pointerup","handlePointerUp"]]]);function h(){"undefined"!=typeof customElements&&["kritzel-cursor-trail"].forEach((t=>{"kritzel-cursor-trail"===t&&(customElements.get(o(t))||customElements.define(o(t),n))}))}export{n as K,h as d}
1
+ import{p as t,H as e,h as s,d as i,t as o}from"./p-B43upypT.js";import{K as r}from"./p-D8W6LE-c.js";const n=t(class extends e{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow()}core;cursorTrailPoints=[];isLeftButtonDown=!1;handleMouseDown(t){"mouse"===t.pointerType&&t.button===r.Left&&(this.isLeftButtonDown=!0,this.cursorTrailPoints=[]),"touch"===t.pointerType&&1===this.core.store.state.pointers.size&&(this.isLeftButtonDown=!0,this.cursorTrailPoints=[])}handlePointerMove(t){if(!this.isLeftButtonDown)return;const e=[{x:t.clientX,y:t.clientY,timestamp:Date.now()},...this.cursorTrailPoints];this.cursorTrailPoints=e.length>this.MAX_TRAIL_POINTS?e.slice(0,this.MAX_TRAIL_POINTS):e}handlePointerUp(t){"mouse"===t.pointerType&&t.button===r.Left&&(this.isLeftButtonDown=!1,this.cursorTrailPoints=[]),"touch"===t.pointerType&&0===this.core.store.state.pointers.size&&(this.isLeftButtonDown=!1,this.cursorTrailPoints=[])}trailCleanupIntervalId;TRAIL_DURATION_MS=100;MAX_TRAIL_POINTS=50;componentDidLoad(){this.trailCleanupIntervalId=window.setInterval((()=>{const t=Date.now(),e=this.cursorTrailPoints.filter((e=>t-e.timestamp<this.TRAIL_DURATION_MS));e.length!==this.cursorTrailPoints.length&&(this.cursorTrailPoints=e)}),50)}disconnectedCallback(){this.trailCleanupIntervalId&&window.clearInterval(this.trailCleanupIntervalId)}render(){return s(i,{key:"b427550b19a3e172cb25d05e34635121b82a61c5"},this.cursorTrailPoints.length>1&&s("svg",{key:"9685b563497e110f36c0feffbfde04ebeb38024b",class:"cursor-trail-svg",xmlns:"http://www.w3.org/2000/svg",style:{position:"absolute",left:"0",top:"0",width:"100%",height:"100%",pointerEvents:"none",opacity:"var(--kritzel-cursor-trail-opacity, 0.6)",zIndex:"9000"}},this.cursorTrailPoints.slice(1).map(((t,e)=>{const i=this.cursorTrailPoints[e],o=Date.now(),r=Math.max(0,Math.min(1,(o-t.timestamp)/this.TRAIL_DURATION_MS));if(r>=1)return null;const n=Math.max(2,15*(1-r));return s("line",{key:`trail-segment-${t.timestamp}`,x1:i.x.toString(),y1:i.y.toString(),x2:t.x.toString(),y2:t.y.toString(),stroke:"var(--kritzel-cursor-trail-color, rgb(228, 228, 228))","stroke-width":n.toString(),"stroke-linecap":"round"})}))))}static get style(){return":host{display:block;position:fixed;top:0;left:0;width:100vw;height:100vh;pointer-events:none;z-index:9000}"}},[513,"kritzel-cursor-trail",{core:[16],cursorTrailPoints:[32],isLeftButtonDown:[32]},[[9,"pointerdown","handleMouseDown"],[9,"pointermove","handlePointerMove"],[9,"pointerup","handlePointerUp"]]]);function h(){"undefined"!=typeof customElements&&["kritzel-cursor-trail"].forEach((t=>{"kritzel-cursor-trail"===t&&(customElements.get(o(t))||customElements.define(o(t),n))}))}export{n as K,h as d}
@@ -0,0 +1 @@
1
+ import{p as e,H as i,c as t,h as n,d as r,t as o}from"./p-B43upypT.js";const a=e(class extends i{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow(),this.valueChange=t(this,"valueChange")}value;min=Number.MIN_SAFE_INTEGER;max=Number.MAX_SAFE_INTEGER;step=1;label="";placeholder="";valueChange;inputValue="";onValueChange(e){this.inputValue=this.shouldShowEmpty(e)?"":String(e)}componentWillLoad(){this.inputValue=this.shouldShowEmpty(this.value)?"":String(this.value)}shouldShowEmpty(e){return void 0===e||e===1/0||e===-1/0}normalizeValue(e){return isNaN(e)?this.value??0:Math.min(this.max,Math.max(this.min,e))}getDecimalPlaces(){const e=String(this.step),i=e.indexOf(".");return-1===i?0:e.length-i-1}roundToStep(e){const i=this.getDecimalPlaces(),t=Math.pow(10,i);return Math.round(e*t)/t}handleInput=e=>{this.inputValue=e.target.value};handleBlur=()=>{this.commitValue()};handleKeyDown=e=>{"Enter"===e.key&&this.commitValue()};handleInvalid=e=>{e.preventDefault()};commitValue(){if(""===this.inputValue.trim())return this.value=void 0,void this.valueChange.emit(void 0);const e=parseFloat(this.inputValue),i=this.normalizeValue(e);this.value=i,this.inputValue=String(i),this.valueChange.emit(i)}handleIncrement=()=>{const e=parseFloat(this.inputValue),i=isNaN(e)?this.value??0:e,t=this.normalizeValue(this.roundToStep(i+this.step));this.value=t,this.inputValue=String(t),this.valueChange.emit(t)};handleDecrement=()=>{const e=parseFloat(this.inputValue),i=isNaN(e)?this.value??0:e,t=this.normalizeValue(this.roundToStep(i-this.step));this.value=t,this.inputValue=String(t),this.valueChange.emit(t)};render(){return n(r,{key:"18cd66a764c334a78e2dccd444f448235b41c38c"},n("div",{key:"73305950e3e840e51466d720a2ef4f834a16adc1",class:"input-container"},this.label&&n("label",{key:"f9521cb0137f5f8c676ced5c76989d8d03256f68",class:"input-label"},this.label),n("div",{key:"07581a242db247a833cfa879b90c6da5dd06b116",class:"input-wrapper"},n("input",{key:"7faa7a9a2c8923e2b2a24c435bc47a03998ac8ad",type:"number",class:"numeric-input",title:"",min:this.min===Number.MIN_SAFE_INTEGER?void 0:this.min,max:this.max===Number.MAX_SAFE_INTEGER?void 0:this.max,step:this.step,value:this.inputValue,placeholder:this.placeholder,onInput:this.handleInput,onBlur:this.handleBlur,onKeyDown:this.handleKeyDown,onInvalid:this.handleInvalid}),n("div",{key:"d3920c978a4d97032f5aec550e6ca7e74c9c2e94",class:"spinner-buttons"},n("button",{key:"ae27375f0ba66a9ca6cf53fe4a05fa219bf47711",type:"button",class:"spinner-button spinner-up",onClick:this.handleIncrement,tabIndex:-1,"aria-label":"Increase value"},n("svg",{key:"8a6e40c12468bb44400c1ad015463c830d0af13e",viewBox:"0 0 10 6",class:"spinner-icon"},n("path",{key:"70b8ee3cc3b00d7f83822078f73e0437e24a98aa",d:"M1 5L5 1L9 5",stroke:"currentColor","stroke-width":"1.5",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"}))),n("button",{key:"e26968c85480cbf4cd0f3bd9d6db59f1d6ade88c",type:"button",class:"spinner-button spinner-down",onClick:this.handleDecrement,tabIndex:-1,"aria-label":"Decrease value"},n("svg",{key:"a8c72dd2909b89ceb3797d0a77e531d0b5374e1d",viewBox:"0 0 10 6",class:"spinner-icon"},n("path",{key:"16c95c8cbc90c9d49d081745384c3920620591fb",d:"M1 1L5 5L9 1",stroke:"currentColor","stroke-width":"1.5",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"})))))))}static get watchers(){return{value:[{onValueChange:0}]}}static get style(){return":host{display:block}.input-container{display:flex;flex-direction:column;gap:6px}.input-label{font-size:14px;font-weight:500;color:var(--kritzel-numeric-input-label-color, #333333)}.input-wrapper{display:flex;position:relative}.numeric-input{flex:1;padding:8px 36px 8px 12px;border:1px solid var(--kritzel-numeric-input-border-color, #ebebeb);border-radius:var(--kritzel-numeric-input-border-radius, 6px);font-size:14px;color:var(--kritzel-numeric-input-text-color, #333333);background-color:var(--kritzel-numeric-input-input-background, #ffffff);outline:none;transition:border-color 150ms ease;box-sizing:border-box}.numeric-input::-webkit-outer-spin-button,.numeric-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.numeric-input[type='number']{-moz-appearance:textfield}.numeric-input::selection{background-color:var(--kritzel-numeric-input-selection-background, #007AFF);color:var(--kritzel-numeric-input-selection-color, #ffffff)}.numeric-input:hover{border-color:var(--kritzel-numeric-input-hover-border-color, #cccccc)}.numeric-input:focus{border-color:var(--kritzel-numeric-input-focus-border-color, #0066ff);border-width:2px;padding:7px 35px 7px 11px}.spinner-buttons{position:absolute;right:1px;top:1px;bottom:1px;display:flex;flex-direction:column;border-left:1px solid var(--kritzel-numeric-input-border-color, #ebebeb);border-radius:0 var(--kritzel-numeric-input-spinner-border-radius, 5px) var(--kritzel-numeric-input-spinner-border-radius, 5px) 0;overflow:hidden}.spinner-button{flex:1;display:flex;align-items:center;justify-content:center;width:24px;padding:0;border:none;background-color:var(--kritzel-numeric-input-spinner-background, #f5f5f5);color:var(--kritzel-numeric-input-spinner-color, #666666);cursor:pointer;transition:background-color 150ms ease}.spinner-button:hover{background-color:var(--kritzel-numeric-input-spinner-hover-background, #ebebeb)}.spinner-button:active{background-color:var(--kritzel-numeric-input-spinner-active-background, #dddddd)}.spinner-up{border-bottom:1px solid var(--kritzel-numeric-input-border-color, #ebebeb)}.spinner-icon{width:10px;height:6px}"}},[513,"kritzel-numeric-input",{value:[1026],min:[2],max:[2],step:[2],label:[1],placeholder:[1],inputValue:[32]},void 0,{value:[{onValueChange:0}]}]);function s(){"undefined"!=typeof customElements&&["kritzel-numeric-input"].forEach((e=>{"kritzel-numeric-input"===e&&(customElements.get(o(e))||customElements.define(o(e),a))}))}export{a as K,s as d}