UNPKG

ladle-inject-custom-addons

Version:
2 lines (1 loc) 1.86 kB
"use strict";var b=Object.create;var r=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var N=Object.getPrototypeOf,A=Object.prototype.hasOwnProperty;var P=(e,n)=>{for(var t in n)r(e,t,{get:n[t],enumerable:!0})},d=(e,n,t,o)=>{if(n&&typeof n=="object"||typeof n=="function")for(let s of E(n))!A.call(e,s)&&s!==t&&r(e,s,{get:()=>n[s],enumerable:!(o=g(n,s))||o.enumerable});return e};var B=(e,n,t)=>(t=e!=null?b(N(e)):{},d(n||!e||!e.__esModule?r(t,"default",{value:e,enumerable:!0}):t,e)),L=e=>d(r({},"__esModule",{value:!0}),e);var T={};P(T,{AddonButton:()=>y});module.exports=L(T);var i=B(require("react")),u=require("react-dom");function a(){return document.getElementsByClassName("ladle-addons")[0]?.getElementsByTagName("ul")?.[0]??null}var m=(e,{position:n=0})=>{let[t]=i.default.useState(document.createElement("li"));return i.default.useEffect(()=>{let o=a();if(!o){console.warn("Unable to find addon panel. Custom addons won't be mounted!");return}return R(o,t,n),()=>{o.removeChild(t)}},[n]),t?(0,u.createPortal)(e,t):null},R=(e,n,t)=>{n.setAttribute("data-position",t.toString()),e.insertBefore(n,x(Array.from(e.getElementsByTagName("li")),t))};function x(e,n){let t=null;for(let o of e){let s=Number(o.dataset.position);if(o.dataset.position!=null&&!isNaN(s)?t=s:t===null||isNaN(t)?t=1:++t,n<t)return o}return null}var l=require("react/jsx-runtime"),y=({icon:e,tooltip:n,children:t,badge:o=!1,label:s="",position:c=0,...p})=>{let f=o||["string","number"].includes(typeof o);return m((0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)("button",{"aria-label":n,title:n,type:"button",...p,children:[e,(0,l.jsx)("span",{className:"ladle-addon-tooltip",children:n}),s&&(0,l.jsx)("label",{children:s}),f&&(0,l.jsx)("div",{className:"ladle-badge",children:o})]}),t]}),{position:c})};0&&(module.exports={AddonButton});