@auvyx/ui 0.1.0 → 0.1.1

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 (73) hide show
  1. package/README.md +2 -2
  2. package/dist/auvyx.bundle.css +8 -8
  3. package/dist/auvyx.chart.min.js +2 -2
  4. package/dist/auvyx.js +27 -26
  5. package/dist/auvyx.min.css +1 -1
  6. package/dist/auvyx.min.js +3 -3
  7. package/dist/custom-elements.json +1 -1
  8. package/dist/elements/calendar.min.js +1 -1
  9. package/dist/elements/context-menu.min.js +1 -1
  10. package/dist/elements/data-table.min.js +1 -1
  11. package/dist/elements/date-picker.min.js +1 -1
  12. package/dist/elements/index.min.js +1 -1
  13. package/dist/elements/menu.min.js +1 -1
  14. package/dist/elements/resizable.min.js +1 -1
  15. package/dist/js/accordion.min.js +2 -2
  16. package/dist/js/calendar.min.js +1 -1
  17. package/dist/js/combobox.min.js +2 -2
  18. package/dist/js/command.min.js +2 -2
  19. package/dist/js/context-menu.min.js +1 -1
  20. package/dist/js/copy.min.js +1 -1
  21. package/dist/js/data-table.min.js +1 -1
  22. package/dist/js/date-picker.min.js +1 -1
  23. package/dist/js/drawer.min.js +2 -2
  24. package/dist/js/dropdown-menu.min.js +2 -2
  25. package/dist/js/manifest.json +18 -18
  26. package/dist/js/menu.min.js +1 -1
  27. package/dist/js/popover.min.js +2 -2
  28. package/dist/js/resizable.min.js +1 -1
  29. package/dist/js/select.min.js +2 -2
  30. package/dist/js/sidebar.min.js +2 -2
  31. package/dist/js/slider.min.js +2 -2
  32. package/dist/js/tabs.min.js +2 -2
  33. package/dist/js/toast.min.js +6 -6
  34. package/dist/styles/auvyx-luma.min.css +1 -1
  35. package/dist/styles/auvyx-lyra.min.css +1 -1
  36. package/dist/styles/auvyx-maia.min.css +1 -1
  37. package/dist/styles/auvyx-mira.min.css +1 -1
  38. package/dist/styles/auvyx-nova.min.css +1 -1
  39. package/dist/styles/auvyx-rhea.min.css +1 -1
  40. package/dist/styles/auvyx-sera.min.css +1 -1
  41. package/dist/styles/auvyx-vega.min.css +1 -1
  42. package/dist/types/elements.d.ts +23 -0
  43. package/dist/ui/accordion.js +9 -8
  44. package/dist/ui/calendar.js +1 -1
  45. package/dist/ui/combobox.js +9 -8
  46. package/dist/ui/command.js +9 -8
  47. package/dist/ui/context-menu.js +1 -1
  48. package/dist/ui/copy.js +1 -1
  49. package/dist/ui/data-table.js +1 -1
  50. package/dist/ui/date-picker.js +1 -1
  51. package/dist/ui/drawer.js +9 -8
  52. package/dist/ui/dropdown-menu.js +9 -8
  53. package/dist/ui/menu.js +1 -1
  54. package/dist/ui/popover.js +9 -8
  55. package/dist/ui/resizable.js +1 -1
  56. package/dist/ui/select.js +9 -8
  57. package/dist/ui/sidebar.js +9 -8
  58. package/dist/ui/slider.js +9 -8
  59. package/dist/ui/tabs.js +9 -8
  60. package/dist/ui/toast.js +10 -9
  61. package/dist/wc/accordion.min.js +2 -2
  62. package/dist/wc/combobox.min.js +2 -2
  63. package/dist/wc/command.min.js +2 -2
  64. package/dist/wc/drawer.min.js +2 -2
  65. package/dist/wc/dropdown-menu.min.js +2 -2
  66. package/dist/wc/manifest.json +11 -11
  67. package/dist/wc/popover.min.js +2 -2
  68. package/dist/wc/select.min.js +2 -2
  69. package/dist/wc/sidebar.min.js +2 -2
  70. package/dist/wc/slider.min.js +2 -2
  71. package/dist/wc/tabs.min.js +2 -2
  72. package/dist/wc/toast.min.js +5 -5
  73. package/package.json +4 -4
@@ -1,2 +1,2 @@
1
- /*! @auvyx/ui v0.1.0 | MIT | based on Basecoat (MIT) */
2
- window.basecoat||(()=>{const d={};let u=null;const E=(t,r,o)=>{const c=typeof r=="object"?r:{selector:r,init:o};d[t]={selector:c.selector,init:c.init,refresh:c.refresh}},p=(t,r)=>{const o=d[r];if(o)try{o.init(t),t.hasAttribute(`data-${r}-initialized`)&&(t.dataset.basecoatComponent=r)}catch(c){if(console.error(`Failed to initialize ${r}:`,c),typeof t._destroy=="function")try{t._destroy()}catch(y){console.error(`Failed to clean up ${r} after initialization error:`,y)}delete t._destroy,t.removeAttribute(`data-${r}-initialized`),delete t.dataset.basecoatComponent}},s=t=>{if(!t||t.nodeType!==Node.ELEMENT_NODE)return;const r=t.dataset?.basecoatComponent;if(typeof t._destroy=="function")try{t._destroy()}catch(o){console.error("Failed to destroy Basecoat component:",o)}delete t._destroy,r&&t.removeAttribute(`data-${r}-initialized`),delete t.dataset.basecoatComponent},e=t=>{t.nodeType===Node.ELEMENT_NODE&&(t.isConnected||(t.dataset?.basecoatComponent&&s(t),t.querySelectorAll("[data-basecoat-component]").forEach(s)))},i=t=>Array.from(new Set(t)),h=(t,r,o=!1)=>{const c=Array.from(document.querySelectorAll(r));return o&&c.push(...document.querySelectorAll(`[data-basecoat-component="${t}"]`)),i(c)},l=(t={})=>{const r=t.force===!0;Object.entries(d).forEach(([o,{selector:c}])=>{h(o,c,r).forEach(y=>{const C=y.dataset?.basecoatComponent===o;r&&s(y),(C||y.matches(c))&&p(y,o)})})},m=t=>{t.nodeType===Node.ELEMENT_NODE&&Object.entries(d).forEach(([r,{selector:o}])=>{t.matches(o)&&p(t,r),t.querySelectorAll(o).forEach(c=>p(c,r))})},n=t=>{if(!t)return;if(typeof t.refresh=="function"){t.refresh();return}const r=t.dataset?.basecoatComponent,o=r?d[r]:null;o?.refresh&&o.refresh(t)},g=()=>{u||(u=new MutationObserver(t=>{t.forEach(r=>{r.addedNodes.forEach(m),r.removedNodes.forEach(e)})}),u.observe(document.body,{childList:!0,subtree:!0}))},a=()=>{u&&(u.disconnect(),u=null)},f=(t,r={})=>{const o=d[t];if(!o){console.warn(`Component '${t}' not found in registry`);return}const c=r.force===!0;h(t,o.selector,c).forEach(y=>{const C=y.dataset?.basecoatComponent===t;c&&s(y),(C||y.matches(o.selector))&&p(y,t)})},v=(t={})=>{l(t)},b=t=>{const r=t==="dark";document.documentElement.classList.toggle("dark",r);try{localStorage.setItem("themeMode",r?"dark":"light")}catch{}document.dispatchEvent(new CustomEvent("basecoat:themechange",{detail:{mode:r?"dark":"light"}}))},w=()=>document.documentElement.classList.contains("dark")?"dark":"light";window.basecoat={register:E,init:f,initAll:v,refresh:n,start:g,stop:a,theme:{get:w,set:b,toggle:()=>b(w()==="dark"?"light":"dark")}},document.addEventListener("DOMContentLoaded",()=>{l(),g()})})(),(()=>{const d=new WeakMap,u=e=>e.disabled||e.getAttribute("aria-disabled")==="true",E=e=>{const i=e.querySelector('[role="tablist"]'),h=i?Array.from(i.querySelectorAll('[role="tab"]')):[],l=h.map(m=>document.getElementById(m.getAttribute("aria-controls"))).filter(Boolean);return{tablist:i,tabs:h,panels:l}},p=e=>{const i=d.get(e);if(!i||(Object.assign(i,E(e)),!i.tablist))return;const h=i.tabs.find(l=>l.getAttribute("aria-selected")==="true"&&!u(l))||i.tabs.find(l=>!u(l));h&&e.select(h,!1)},s=e=>{if(e.dataset.tabsInitialized)return;const i={};d.set(e,i),e.refresh=()=>p(e);const h=(n,g=!1)=>{if(!n||u(n))return;i.tabs.forEach(f=>{f.setAttribute("aria-selected","false"),f.setAttribute("tabindex","-1");const v=document.getElementById(f.getAttribute("aria-controls"));v&&(v.hidden=!0)}),n.setAttribute("aria-selected","true"),n.setAttribute("tabindex","0");const a=document.getElementById(n.getAttribute("aria-controls"));a&&(a.hidden=!1),g&&n.focus()};if(e.select=h,p(e),!i.tablist){d.delete(e),delete e.refresh,delete e.select;return}const l=n=>{const g=n.target.closest('[role="tab"]');g&&e.select(g)},m=n=>{const g=n.target;if(!i.tabs.includes(g))return;const a=i.tabs.filter(w=>!u(w)),f=a.indexOf(g),v=i.tablist.getAttribute("aria-orientation")||"horizontal";if(f===-1)return;let b;n.key==="ArrowRight"&&v==="horizontal"&&(b=a[(f+1)%a.length]),n.key==="ArrowLeft"&&v==="horizontal"&&(b=a[(f-1+a.length)%a.length]),n.key==="ArrowDown"&&v==="vertical"&&(b=a[(f+1)%a.length]),n.key==="ArrowUp"&&v==="vertical"&&(b=a[(f-1+a.length)%a.length]),n.key==="Home"&&(b=a[0]),n.key==="End"&&(b=a[a.length-1]),b&&(n.preventDefault(),e.select(b,!0))};i.tablist.addEventListener("click",l),i.tablist.addEventListener("keydown",m),e._destroy=()=>{i.tablist.removeEventListener("click",l),i.tablist.removeEventListener("keydown",m),d.delete(e),delete e.refresh,delete e.select},e.dataset.tabsInitialized="true",e.dispatchEvent(new CustomEvent("basecoat:initialized"))};window.basecoat&&window.basecoat.register("tabs",{selector:".tabs:not([data-tabs-initialized])",init:s,refresh:p})})(),(()=>{var d=class extends HTMLElement{static observedAttributes=["value"];static relayed=["change"];static relayNative=!1;connectedCallback(){if(document.readyState==="loading"){document.addEventListener("DOMContentLoaded",()=>this.isConnected&&this.connectedCallback(),{once:!0});return}this.setup(),this._children=new MutationObserver(()=>{if(this.querySelector(`:scope > ${this.constructor.rootSelector}`)===this.root)return;const s=this.root?this.snapshot():void 0;this.teardown(),this.setup(s)}),this._children.observe(this,{childList:!0})}disconnectedCallback(){this._children?.disconnect(),this.teardown()}setup(s){if(this.root=this.querySelector(`:scope > ${this.constructor.rootSelector}`),!!this.root){window.basecoat?.init(this.constructor.component),this._relay=e=>{e.target!==this.root||!this.constructor.relayNative&&!(e instanceof CustomEvent)||(e.stopPropagation(),this._silent||this.emit(e.type,{value:this.value}))};for(const e of this.constructor.relayed)this.root.addEventListener(e,this._relay);this.attach?.(),s!==void 0?this.restore(s):this.applyInitial()}}teardown(){if(this.detach?.(),!!this.root){for(const s of this.constructor.relayed)this.root.removeEventListener(s,this._relay);this.root._destroy?.(),delete this.root.dataset[`${this.constructor.component.replace(/-(\w)/g,(s,e)=>e.toUpperCase())}Initialized`],this.root=null}}applyInitial(){const s=this._pending!==void 0?this._pending:this.getAttribute("value");this._pending=void 0,s!==null&&(this.value=s)}snapshot(){return this.value}restore(s){s!==null&&(this.value=s)}attributeChangedCallback(s,e,i){s==="value"&&this.root&&i!==null&&i!==this.value&&(this.value=i)}defer(s){return this.root?!1:(this._pending=s,!0)}silently(s){this._silent=!0;try{s()}finally{this._silent=!1}}emit(s,e){this.dispatchEvent(new CustomEvent(s,{detail:e,bubbles:!0}))}reportValue(){const s=this.value;JSON.stringify(s)!==JSON.stringify(this._last)&&(this._last=s,this._silent||this.emit("change",{value:s}))}};function u(s,e,i,h=!0){const l=new MutationObserver(i);return l.observe(s,{attributes:!0,attributeFilter:e,subtree:h}),()=>l.disconnect()}var E=s=>s.dataset.value??s.id,p=class extends d{static component="tabs";static rootSelector=".tabs";attach(){this._last=this.value,this._unwatch=u(this.root,["aria-selected"],()=>this.reportValue())}detach(){this._unwatch?.()}get value(){const s=this.root?.querySelector('[role="tab"][aria-selected="true"]');return s?E(s):null}set value(s){if(this.defer(s))return;const e=[...this.root.querySelectorAll('[role="tab"]')].find(i=>E(i)===String(s));!e||!this.root.select||(this.root.select(e),this._last=this.value)}};customElements.get("auvyx-tabs")||customElements.define("auvyx-tabs",p)})();
1
+ /*! @auvyx/ui v0.1.1 | MIT License | see LICENSE */
2
+ window.auvyx||(()=>{const d={};let u=null;const E=(t,r,o)=>{const c=typeof r=="object"?r:{selector:r,init:o};d[t]={selector:c.selector,init:c.init,refresh:c.refresh}},p=(t,r)=>{const o=d[r];if(o)try{o.init(t),t.hasAttribute(`data-${r}-initialized`)&&(t.dataset.basecoatComponent=r)}catch(c){if(console.error(`Failed to initialize ${r}:`,c),typeof t._destroy=="function")try{t._destroy()}catch(y){console.error(`Failed to clean up ${r} after initialization error:`,y)}delete t._destroy,t.removeAttribute(`data-${r}-initialized`),delete t.dataset.basecoatComponent}},s=t=>{if(!t||t.nodeType!==Node.ELEMENT_NODE)return;const r=t.dataset?.basecoatComponent;if(typeof t._destroy=="function")try{t._destroy()}catch(o){console.error("Failed to destroy component:",o)}delete t._destroy,r&&t.removeAttribute(`data-${r}-initialized`),delete t.dataset.basecoatComponent},e=t=>{t.nodeType===Node.ELEMENT_NODE&&(t.isConnected||(t.dataset?.basecoatComponent&&s(t),t.querySelectorAll("[data-basecoat-component]").forEach(s)))},i=t=>Array.from(new Set(t)),h=(t,r,o=!1)=>{const c=Array.from(document.querySelectorAll(r));return o&&c.push(...document.querySelectorAll(`[data-basecoat-component="${t}"]`)),i(c)},l=(t={})=>{const r=t.force===!0;Object.entries(d).forEach(([o,{selector:c}])=>{h(o,c,r).forEach(y=>{const C=y.dataset?.basecoatComponent===o;r&&s(y),(C||y.matches(c))&&p(y,o)})})},m=t=>{t.nodeType===Node.ELEMENT_NODE&&Object.entries(d).forEach(([r,{selector:o}])=>{t.matches(o)&&p(t,r),t.querySelectorAll(o).forEach(c=>p(c,r))})},n=t=>{if(!t)return;if(typeof t.refresh=="function"){t.refresh();return}const r=t.dataset?.basecoatComponent,o=r?d[r]:null;o?.refresh&&o.refresh(t)},v=()=>{u||(u=new MutationObserver(t=>{t.forEach(r=>{r.addedNodes.forEach(m),r.removedNodes.forEach(e)})}),u.observe(document.body,{childList:!0,subtree:!0}))},a=()=>{u&&(u.disconnect(),u=null)},f=(t,r={})=>{const o=d[t];if(!o){console.warn(`Component '${t}' not found in registry`);return}const c=r.force===!0;h(t,o.selector,c).forEach(y=>{const C=y.dataset?.basecoatComponent===t;c&&s(y),(C||y.matches(o.selector))&&p(y,t)})},g=(t={})=>{l(t)},b=t=>{const r=t==="dark";document.documentElement.classList.toggle("dark",r);try{localStorage.setItem("themeMode",r?"dark":"light")}catch{}document.dispatchEvent(new CustomEvent("basecoat:themechange",{detail:{mode:r?"dark":"light"}}))},w=()=>document.documentElement.classList.contains("dark")?"dark":"light";window.auvyx=window.basecoat={register:E,init:f,initAll:g,refresh:n,start:v,stop:a,theme:{get:w,set:b,toggle:()=>b(w()==="dark"?"light":"dark")}},document.addEventListener("DOMContentLoaded",()=>{l(),v()})})(),(()=>{const d=new WeakMap,u=e=>e.disabled||e.getAttribute("aria-disabled")==="true",E=e=>{const i=e.querySelector('[role="tablist"]'),h=i?Array.from(i.querySelectorAll('[role="tab"]')):[],l=h.map(m=>document.getElementById(m.getAttribute("aria-controls"))).filter(Boolean);return{tablist:i,tabs:h,panels:l}},p=e=>{const i=d.get(e);if(!i||(Object.assign(i,E(e)),!i.tablist))return;const h=i.tabs.find(l=>l.getAttribute("aria-selected")==="true"&&!u(l))||i.tabs.find(l=>!u(l));h&&e.select(h,!1)},s=e=>{if(e.dataset.tabsInitialized)return;const i={};d.set(e,i),e.refresh=()=>p(e);const h=(n,v=!1)=>{if(!n||u(n))return;i.tabs.forEach(f=>{f.setAttribute("aria-selected","false"),f.setAttribute("tabindex","-1");const g=document.getElementById(f.getAttribute("aria-controls"));g&&(g.hidden=!0)}),n.setAttribute("aria-selected","true"),n.setAttribute("tabindex","0");const a=document.getElementById(n.getAttribute("aria-controls"));a&&(a.hidden=!1),v&&n.focus()};if(e.select=h,p(e),!i.tablist){d.delete(e),delete e.refresh,delete e.select;return}const l=n=>{const v=n.target.closest('[role="tab"]');v&&e.select(v)},m=n=>{const v=n.target;if(!i.tabs.includes(v))return;const a=i.tabs.filter(w=>!u(w)),f=a.indexOf(v),g=i.tablist.getAttribute("aria-orientation")||"horizontal";if(f===-1)return;let b;n.key==="ArrowRight"&&g==="horizontal"&&(b=a[(f+1)%a.length]),n.key==="ArrowLeft"&&g==="horizontal"&&(b=a[(f-1+a.length)%a.length]),n.key==="ArrowDown"&&g==="vertical"&&(b=a[(f+1)%a.length]),n.key==="ArrowUp"&&g==="vertical"&&(b=a[(f-1+a.length)%a.length]),n.key==="Home"&&(b=a[0]),n.key==="End"&&(b=a[a.length-1]),b&&(n.preventDefault(),e.select(b,!0))};i.tablist.addEventListener("click",l),i.tablist.addEventListener("keydown",m),e._destroy=()=>{i.tablist.removeEventListener("click",l),i.tablist.removeEventListener("keydown",m),d.delete(e),delete e.refresh,delete e.select},e.dataset.tabsInitialized="true",e.dispatchEvent(new CustomEvent("basecoat:initialized"))};window.auvyx&&window.auvyx.register("tabs",{selector:".tabs:not([data-tabs-initialized])",init:s,refresh:p})})(),(()=>{var d=class extends HTMLElement{static observedAttributes=["value"];static relayed=["change"];static relayNative=!1;connectedCallback(){if(document.readyState==="loading"){document.addEventListener("DOMContentLoaded",()=>this.isConnected&&this.connectedCallback(),{once:!0});return}this.setup(),this._children=new MutationObserver(()=>{if(this.querySelector(`:scope > ${this.constructor.rootSelector}`)===this.root)return;const s=this.root?this.snapshot():void 0;this.teardown(),this.setup(s)}),this._children.observe(this,{childList:!0})}disconnectedCallback(){this._children?.disconnect(),this.teardown()}setup(s){if(this.root=this.querySelector(`:scope > ${this.constructor.rootSelector}`),!!this.root){window.auvyx?.init(this.constructor.component),this._relay=e=>{e.target!==this.root||!this.constructor.relayNative&&!(e instanceof CustomEvent)||(e.stopPropagation(),this._silent||this.emit(e.type,{value:this.value}))};for(const e of this.constructor.relayed)this.root.addEventListener(e,this._relay);this.attach?.(),s!==void 0?this.restore(s):this.applyInitial()}}teardown(){if(this.detach?.(),!!this.root){for(const s of this.constructor.relayed)this.root.removeEventListener(s,this._relay);this.root._destroy?.(),delete this.root.dataset[`${this.constructor.component.replace(/-(\w)/g,(s,e)=>e.toUpperCase())}Initialized`],this.root=null}}applyInitial(){const s=this._pending!==void 0?this._pending:this.getAttribute("value");this._pending=void 0,s!==null&&(this.value=s)}snapshot(){return this.value}restore(s){s!==null&&(this.value=s)}attributeChangedCallback(s,e,i){s==="value"&&this.root&&i!==null&&i!==this.value&&(this.value=i)}defer(s){return this.root?!1:(this._pending=s,!0)}silently(s){this._silent=!0;try{s()}finally{this._silent=!1}}emit(s,e){this.dispatchEvent(new CustomEvent(s,{detail:e,bubbles:!0}))}reportValue(){const s=this.value;JSON.stringify(s)!==JSON.stringify(this._last)&&(this._last=s,this._silent||this.emit("change",{value:s}))}};function u(s,e,i,h=!0){const l=new MutationObserver(i);return l.observe(s,{attributes:!0,attributeFilter:e,subtree:h}),()=>l.disconnect()}var E=s=>s.dataset.value??s.id,p=class extends d{static component="tabs";static rootSelector=".tabs";attach(){this._last=this.value,this._unwatch=u(this.root,["aria-selected"],()=>this.reportValue())}detach(){this._unwatch?.()}get value(){const s=this.root?.querySelector('[role="tab"][aria-selected="true"]');return s?E(s):null}set value(s){if(this.defer(s))return;const e=[...this.root.querySelectorAll('[role="tab"]')].find(i=>E(i)===String(s));!e||!this.root.select||(this.root.select(e),this._last=this.value)}};customElements.get("auvyx-tabs")||customElements.define("auvyx-tabs",p)})();
@@ -1,5 +1,5 @@
1
- /*! @auvyx/ui v0.1.0 | MIT | based on Basecoat (MIT) */
2
- window.basecoat||(()=>{const r={};let c=null;const o=(t,i,n)=>{const a=typeof i=="object"?i:{selector:i,init:n};r[t]={selector:a.selector,init:a.init,refresh:a.refresh}},d=(t,i)=>{const n=r[i];if(n)try{n.init(t),t.hasAttribute(`data-${i}-initialized`)&&(t.dataset.basecoatComponent=i)}catch(a){if(console.error(`Failed to initialize ${i}:`,a),typeof t._destroy=="function")try{t._destroy()}catch(h){console.error(`Failed to clean up ${i} after initialization error:`,h)}delete t._destroy,t.removeAttribute(`data-${i}-initialized`),delete t.dataset.basecoatComponent}},p=t=>{if(!t||t.nodeType!==Node.ELEMENT_NODE)return;const i=t.dataset?.basecoatComponent;if(typeof t._destroy=="function")try{t._destroy()}catch(n){console.error("Failed to destroy Basecoat component:",n)}delete t._destroy,i&&t.removeAttribute(`data-${i}-initialized`),delete t.dataset.basecoatComponent},y=t=>{t.nodeType===Node.ELEMENT_NODE&&(t.isConnected||(t.dataset?.basecoatComponent&&p(t),t.querySelectorAll("[data-basecoat-component]").forEach(p)))},E=t=>Array.from(new Set(t)),b=(t,i,n=!1)=>{const a=Array.from(document.querySelectorAll(i));return n&&a.push(...document.querySelectorAll(`[data-basecoat-component="${t}"]`)),E(a)},v=(t={})=>{const i=t.force===!0;Object.entries(r).forEach(([n,{selector:a}])=>{b(n,a,i).forEach(h=>{const w=h.dataset?.basecoatComponent===n;i&&p(h),(w||h.matches(a))&&d(h,n)})})},g=t=>{t.nodeType===Node.ELEMENT_NODE&&Object.entries(r).forEach(([i,{selector:n}])=>{t.matches(n)&&d(t,i),t.querySelectorAll(n).forEach(a=>d(a,i))})},C=t=>{if(!t)return;if(typeof t.refresh=="function"){t.refresh();return}const i=t.dataset?.basecoatComponent,n=i?r[i]:null;n?.refresh&&n.refresh(t)},e=()=>{c||(c=new MutationObserver(t=>{t.forEach(i=>{i.addedNodes.forEach(g),i.removedNodes.forEach(y)})}),c.observe(document.body,{childList:!0,subtree:!0}))},s=()=>{c&&(c.disconnect(),c=null)},l=(t,i={})=>{const n=r[t];if(!n){console.warn(`Component '${t}' not found in registry`);return}const a=i.force===!0;b(t,n.selector,a).forEach(h=>{const w=h.dataset?.basecoatComponent===t;a&&p(h),(w||h.matches(n.selector))&&d(h,t)})},u=(t={})=>{v(t)},f=t=>{const i=t==="dark";document.documentElement.classList.toggle("dark",i);try{localStorage.setItem("themeMode",i?"dark":"light")}catch{}document.dispatchEvent(new CustomEvent("basecoat:themechange",{detail:{mode:i?"dark":"light"}}))},m=()=>document.documentElement.classList.contains("dark")?"dark":"light";window.basecoat={register:o,init:l,initAll:u,refresh:C,start:e,stop:s,theme:{get:m,set:f,toggle:()=>f(m()==="dark"?"light":"dark")}},document.addEventListener("DOMContentLoaded",()=>{v(),e()})})(),(()=>{let r;const c=new WeakMap;let o=!1;const d={success:'<svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="m9 12 2 2 4-4"/></svg>',error:'<svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="m15 9-6 6"/><path d="m9 9 6 6"/></svg>',info:'<svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="M12 16v-4"/><path d="M12 8h.01"/></svg>',warning:'<svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"/><path d="M12 9v4"/><path d="M12 17h.01"/></svg>'};function p(e){if(e.dataset.toasterInitialized)return;r=e;const s=l=>{const u=l.target.closest(".toast footer a"),f=l.target.closest(".toast footer button");(u||f)&&v(l.target.closest(".toast"))};r.addEventListener("mouseenter",E),r.addEventListener("mouseleave",b),r.addEventListener("click",s),e.toast=(l={})=>{const u=C(l);return e.appendChild(u),y(u),u},e.closeAll=()=>{e.querySelectorAll('.toast:not([aria-hidden="true"])').forEach(v)},r.querySelectorAll(".toast:not([data-toast-initialized])").forEach(y),r._destroy=()=>{r.removeEventListener("mouseenter",E),r.removeEventListener("mouseleave",b),r.removeEventListener("click",s),r.querySelectorAll(".toast[data-toast-initialized]").forEach(l=>l._destroy?.()),delete r.toast,delete r.closeAll,r===e&&(r=null)},r.dataset.toasterInitialized="true",r.dispatchEvent(new CustomEvent("basecoat:initialized"))}function y(e){if(e.dataset.toastInitialized)return;const s=parseInt(e.dataset.duration),l=s!==-1?s||(e.dataset.category==="error"?5e3:3e3):-1,u={remainingTime:l,timeoutId:null,startTime:null};l!==-1&&(o?u.timeoutId=null:(u.startTime=Date.now(),u.timeoutId=setTimeout(()=>v(e),l))),c.set(e,u),e.close=()=>v(e),e._destroy=()=>{clearTimeout(u.timeoutId),c.delete(e),delete e.close},e.dataset.toastInitialized="true"}function E(){o||!r||(o=!0,r.querySelectorAll('.toast:not([aria-hidden="true"])').forEach(e=>{if(!c.has(e))return;const s=c.get(e);s.timeoutId&&(clearTimeout(s.timeoutId),s.timeoutId=null,s.remainingTime-=Date.now()-s.startTime)}))}function b(){!o||!r||(o=!1,r.querySelectorAll('.toast:not([aria-hidden="true"])').forEach(e=>{if(!c.has(e))return;const s=c.get(e);s.remainingTime!==-1&&!s.timeoutId&&(s.remainingTime>0?(s.startTime=Date.now(),s.timeoutId=setTimeout(()=>v(e),s.remainingTime)):v(e))}))}function v(e){if(!e||!c.has(e))return;const s=c.get(e);clearTimeout(s.timeoutId),c.delete(e),e.contains(document.activeElement)&&document.activeElement.blur(),e.setAttribute("aria-hidden","true"),e.addEventListener("transitionend",()=>e.remove(),{once:!0})}const g=e=>String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;");function C(e){const{category:s="info",title:l,description:u,action:f,cancel:m,duration:t,icon:i,html:n=!1}=e,a=$=>n?String($):g($),h=i||s&&d[s]||"",w=l?`<h2>${a(l)}</h2>`:"",A=u?`<p>${a(u)}</p>`:"",k=f?.href?`<a href="${g(f.href)}" class="btn" data-toast-action>${a(f.label)}</a>`:f?.onclick?`<button type="button" class="btn" data-toast-action onclick="${g(f.onclick)}">${a(f.label)}</button>`:"",T=m?`<button type="button" class="btn h-6 text-xs px-2.5 rounded-sm" data-variant="outline" data-toast-cancel onclick="${g(m?.onclick||"")}">${a(m.label)}</button>`:"",L=k||T?`<footer>${k}${T}</footer>`:"",S=`
1
+ /*! @auvyx/ui v0.1.1 | MIT License | see LICENSE */
2
+ window.auvyx||(()=>{const r={};let c=null;const o=(t,i,n)=>{const a=typeof i=="object"?i:{selector:i,init:n};r[t]={selector:a.selector,init:a.init,refresh:a.refresh}},d=(t,i)=>{const n=r[i];if(n)try{n.init(t),t.hasAttribute(`data-${i}-initialized`)&&(t.dataset.basecoatComponent=i)}catch(a){if(console.error(`Failed to initialize ${i}:`,a),typeof t._destroy=="function")try{t._destroy()}catch(h){console.error(`Failed to clean up ${i} after initialization error:`,h)}delete t._destroy,t.removeAttribute(`data-${i}-initialized`),delete t.dataset.basecoatComponent}},p=t=>{if(!t||t.nodeType!==Node.ELEMENT_NODE)return;const i=t.dataset?.basecoatComponent;if(typeof t._destroy=="function")try{t._destroy()}catch(n){console.error("Failed to destroy component:",n)}delete t._destroy,i&&t.removeAttribute(`data-${i}-initialized`),delete t.dataset.basecoatComponent},m=t=>{t.nodeType===Node.ELEMENT_NODE&&(t.isConnected||(t.dataset?.basecoatComponent&&p(t),t.querySelectorAll("[data-basecoat-component]").forEach(p)))},E=t=>Array.from(new Set(t)),w=(t,i,n=!1)=>{const a=Array.from(document.querySelectorAll(i));return n&&a.push(...document.querySelectorAll(`[data-basecoat-component="${t}"]`)),E(a)},v=(t={})=>{const i=t.force===!0;Object.entries(r).forEach(([n,{selector:a}])=>{w(n,a,i).forEach(h=>{const b=h.dataset?.basecoatComponent===n;i&&p(h),(b||h.matches(a))&&d(h,n)})})},g=t=>{t.nodeType===Node.ELEMENT_NODE&&Object.entries(r).forEach(([i,{selector:n}])=>{t.matches(n)&&d(t,i),t.querySelectorAll(n).forEach(a=>d(a,i))})},C=t=>{if(!t)return;if(typeof t.refresh=="function"){t.refresh();return}const i=t.dataset?.basecoatComponent,n=i?r[i]:null;n?.refresh&&n.refresh(t)},e=()=>{c||(c=new MutationObserver(t=>{t.forEach(i=>{i.addedNodes.forEach(g),i.removedNodes.forEach(m)})}),c.observe(document.body,{childList:!0,subtree:!0}))},s=()=>{c&&(c.disconnect(),c=null)},l=(t,i={})=>{const n=r[t];if(!n){console.warn(`Component '${t}' not found in registry`);return}const a=i.force===!0;w(t,n.selector,a).forEach(h=>{const b=h.dataset?.basecoatComponent===t;a&&p(h),(b||h.matches(n.selector))&&d(h,t)})},u=(t={})=>{v(t)},f=t=>{const i=t==="dark";document.documentElement.classList.toggle("dark",i);try{localStorage.setItem("themeMode",i?"dark":"light")}catch{}document.dispatchEvent(new CustomEvent("basecoat:themechange",{detail:{mode:i?"dark":"light"}}))},y=()=>document.documentElement.classList.contains("dark")?"dark":"light";window.auvyx=window.basecoat={register:o,init:l,initAll:u,refresh:C,start:e,stop:s,theme:{get:y,set:f,toggle:()=>f(y()==="dark"?"light":"dark")}},document.addEventListener("DOMContentLoaded",()=>{v(),e()})})(),(()=>{let r;const c=new WeakMap;let o=!1;const d={success:'<svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="m9 12 2 2 4-4"/></svg>',error:'<svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="m15 9-6 6"/><path d="m9 9 6 6"/></svg>',info:'<svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="M12 16v-4"/><path d="M12 8h.01"/></svg>',warning:'<svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"/><path d="M12 9v4"/><path d="M12 17h.01"/></svg>'};function p(e){if(e.dataset.toasterInitialized)return;r=e;const s=l=>{const u=l.target.closest(".toast footer a"),f=l.target.closest(".toast footer button");(u||f)&&v(l.target.closest(".toast"))};r.addEventListener("mouseenter",E),r.addEventListener("mouseleave",w),r.addEventListener("click",s),e.toast=(l={})=>{const u=C(l);return e.appendChild(u),m(u),u},e.closeAll=()=>{e.querySelectorAll('.toast:not([aria-hidden="true"])').forEach(v)},r.querySelectorAll(".toast:not([data-toast-initialized])").forEach(m),r._destroy=()=>{r.removeEventListener("mouseenter",E),r.removeEventListener("mouseleave",w),r.removeEventListener("click",s),r.querySelectorAll(".toast[data-toast-initialized]").forEach(l=>l._destroy?.()),delete r.toast,delete r.closeAll,r===e&&(r=null)},r.dataset.toasterInitialized="true",r.dispatchEvent(new CustomEvent("basecoat:initialized"))}function m(e){if(e.dataset.toastInitialized)return;const s=parseInt(e.dataset.duration),l=s!==-1?s||(e.dataset.category==="error"?5e3:3e3):-1,u={remainingTime:l,timeoutId:null,startTime:null};l!==-1&&(o?u.timeoutId=null:(u.startTime=Date.now(),u.timeoutId=setTimeout(()=>v(e),l))),c.set(e,u),e.close=()=>v(e),e._destroy=()=>{clearTimeout(u.timeoutId),c.delete(e),delete e.close},e.dataset.toastInitialized="true"}function E(){o||!r||(o=!0,r.querySelectorAll('.toast:not([aria-hidden="true"])').forEach(e=>{if(!c.has(e))return;const s=c.get(e);s.timeoutId&&(clearTimeout(s.timeoutId),s.timeoutId=null,s.remainingTime-=Date.now()-s.startTime)}))}function w(){!o||!r||(o=!1,r.querySelectorAll('.toast:not([aria-hidden="true"])').forEach(e=>{if(!c.has(e))return;const s=c.get(e);s.remainingTime!==-1&&!s.timeoutId&&(s.remainingTime>0?(s.startTime=Date.now(),s.timeoutId=setTimeout(()=>v(e),s.remainingTime)):v(e))}))}function v(e){if(!e||!c.has(e))return;const s=c.get(e);clearTimeout(s.timeoutId),c.delete(e),e.contains(document.activeElement)&&document.activeElement.blur(),e.setAttribute("aria-hidden","true"),e.addEventListener("transitionend",()=>e.remove(),{once:!0})}const g=e=>String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;");function C(e){const{category:s="info",title:l,description:u,action:f,cancel:y,duration:t,icon:i,html:n=!1}=e,a=$=>n?String($):g($),h=i||s&&d[s]||"",b=l?`<h2>${a(l)}</h2>`:"",A=u?`<p>${a(u)}</p>`:"",k=f?.href?`<a href="${g(f.href)}" class="btn" data-toast-action>${a(f.label)}</a>`:f?.onclick?`<button type="button" class="btn" data-toast-action onclick="${g(f.onclick)}">${a(f.label)}</button>`:"",T=y?`<button type="button" class="btn h-6 text-xs px-2.5 rounded-sm" data-variant="outline" data-toast-cancel onclick="${g(y?.onclick||"")}">${a(y.label)}</button>`:"",x=k||T?`<footer>${k}${T}</footer>`:"",L=`
3
3
  <div
4
4
  class="toast"
5
5
  role="${s==="error"?"alert":"status"}"
@@ -10,10 +10,10 @@ window.basecoat||(()=>{const r={};let c=null;const o=(t,i,n)=>{const a=typeof i=
10
10
  <div class="toast-content">
11
11
  ${h}
12
12
  <section>
13
- ${w}
13
+ ${b}
14
14
  ${A}
15
15
  </section>
16
- ${L}
16
+ ${x}
17
17
  </div>
18
18
  </div>
19
- `,_=document.createElement("template");return _.innerHTML=S.trim(),_.content.firstChild}window.basecoat&&(window.basecoat.register("toaster","#toaster:not([data-toaster-initialized])",p),window.basecoat.register("toast",".toast:not([data-toast-initialized])",y))})(),(()=>{var r=class extends HTMLElement{static observedAttributes=["value"];static relayed=["change"];static relayNative=!1;connectedCallback(){if(document.readyState==="loading"){document.addEventListener("DOMContentLoaded",()=>this.isConnected&&this.connectedCallback(),{once:!0});return}this.setup(),this._children=new MutationObserver(()=>{if(this.querySelector(`:scope > ${this.constructor.rootSelector}`)===this.root)return;const o=this.root?this.snapshot():void 0;this.teardown(),this.setup(o)}),this._children.observe(this,{childList:!0})}disconnectedCallback(){this._children?.disconnect(),this.teardown()}setup(o){if(this.root=this.querySelector(`:scope > ${this.constructor.rootSelector}`),!!this.root){window.basecoat?.init(this.constructor.component),this._relay=d=>{d.target!==this.root||!this.constructor.relayNative&&!(d instanceof CustomEvent)||(d.stopPropagation(),this._silent||this.emit(d.type,{value:this.value}))};for(const d of this.constructor.relayed)this.root.addEventListener(d,this._relay);this.attach?.(),o!==void 0?this.restore(o):this.applyInitial()}}teardown(){if(this.detach?.(),!!this.root){for(const o of this.constructor.relayed)this.root.removeEventListener(o,this._relay);this.root._destroy?.(),delete this.root.dataset[`${this.constructor.component.replace(/-(\w)/g,(o,d)=>d.toUpperCase())}Initialized`],this.root=null}}applyInitial(){const o=this._pending!==void 0?this._pending:this.getAttribute("value");this._pending=void 0,o!==null&&(this.value=o)}snapshot(){return this.value}restore(o){o!==null&&(this.value=o)}attributeChangedCallback(o,d,p){o==="value"&&this.root&&p!==null&&p!==this.value&&(this.value=p)}defer(o){return this.root?!1:(this._pending=o,!0)}silently(o){this._silent=!0;try{o()}finally{this._silent=!1}}emit(o,d){this.dispatchEvent(new CustomEvent(o,{detail:d,bubbles:!0}))}reportValue(){const o=this.value;JSON.stringify(o)!==JSON.stringify(this._last)&&(this._last=o,this._silent||this.emit("change",{value:o}))}},c=class extends r{static component="toaster";static rootSelector=".toaster";static relayed=[];static observedAttributes=[];applyInitial(){}restore(){}get value(){return null}toast(o){return this.root?.toast?.(o)}};customElements.get("auvyx-toaster")||customElements.define("auvyx-toaster",c)})();
19
+ `,_=document.createElement("template");return _.innerHTML=L.trim(),_.content.firstChild}window.auvyx&&(window.auvyx.register("toaster","#toaster:not([data-toaster-initialized])",p),window.auvyx.register("toast",".toast:not([data-toast-initialized])",m))})(),(()=>{var r=class extends HTMLElement{static observedAttributes=["value"];static relayed=["change"];static relayNative=!1;connectedCallback(){if(document.readyState==="loading"){document.addEventListener("DOMContentLoaded",()=>this.isConnected&&this.connectedCallback(),{once:!0});return}this.setup(),this._children=new MutationObserver(()=>{if(this.querySelector(`:scope > ${this.constructor.rootSelector}`)===this.root)return;const o=this.root?this.snapshot():void 0;this.teardown(),this.setup(o)}),this._children.observe(this,{childList:!0})}disconnectedCallback(){this._children?.disconnect(),this.teardown()}setup(o){if(this.root=this.querySelector(`:scope > ${this.constructor.rootSelector}`),!!this.root){window.auvyx?.init(this.constructor.component),this._relay=d=>{d.target!==this.root||!this.constructor.relayNative&&!(d instanceof CustomEvent)||(d.stopPropagation(),this._silent||this.emit(d.type,{value:this.value}))};for(const d of this.constructor.relayed)this.root.addEventListener(d,this._relay);this.attach?.(),o!==void 0?this.restore(o):this.applyInitial()}}teardown(){if(this.detach?.(),!!this.root){for(const o of this.constructor.relayed)this.root.removeEventListener(o,this._relay);this.root._destroy?.(),delete this.root.dataset[`${this.constructor.component.replace(/-(\w)/g,(o,d)=>d.toUpperCase())}Initialized`],this.root=null}}applyInitial(){const o=this._pending!==void 0?this._pending:this.getAttribute("value");this._pending=void 0,o!==null&&(this.value=o)}snapshot(){return this.value}restore(o){o!==null&&(this.value=o)}attributeChangedCallback(o,d,p){o==="value"&&this.root&&p!==null&&p!==this.value&&(this.value=p)}defer(o){return this.root?!1:(this._pending=o,!0)}silently(o){this._silent=!0;try{o()}finally{this._silent=!1}}emit(o,d){this.dispatchEvent(new CustomEvent(o,{detail:d,bubbles:!0}))}reportValue(){const o=this.value;JSON.stringify(o)!==JSON.stringify(this._last)&&(this._last=o,this._silent||this.emit("change",{value:o}))}},c=class extends r{static component="toaster";static rootSelector=".toaster";static relayed=[];static observedAttributes=[];applyInitial(){}restore(){}get value(){return null}toast(o){return this.root?.toast?.(o)}};customElements.get("auvyx-toaster")||customElements.define("auvyx-toaster",c)})();
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@auvyx/ui",
3
- "version": "0.1.0",
4
- "description": "Drop-in CSS design system (shadcn look, Basecoat-based). One CSS file, optional tiny JS.",
3
+ "version": "0.1.1",
4
+ "description": "Drop-in CSS design system with the shadcn look. One CSS file, optional tiny JS.",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
7
  "style": "dist/auvyx.min.css",
@@ -42,12 +42,12 @@
42
42
  "types": "dist/types/elements.d.ts",
43
43
  "repository": {
44
44
  "type": "git",
45
- "url": "git+https://github.com/lamtanloc512/basecoat.git",
45
+ "url": "git+https://github.com/lamtanloc512/auvyx-ui.git",
46
46
  "directory": "packages/ui"
47
47
  },
48
48
  "homepage": "https://auvyx-ui.vercel.app",
49
49
  "bugs": {
50
- "url": "https://github.com/lamtanloc512/basecoat/issues"
50
+ "url": "https://github.com/lamtanloc512/auvyx-ui/issues"
51
51
  },
52
52
  "keywords": [
53
53
  "css",