@takumi-rs/helpers 0.42.0 → 0.43.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.
@@ -0,0 +1 @@
1
+ "use strict";var n=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var t=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var l=(p,r)=>{for(var e in r)n(p,e,{get:r[e],enumerable:!0})},w=(p,r,e,x)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of t(r))!d.call(p,o)&&o!==e&&n(p,o,{get:()=>r[o],enumerable:!(x=i(r,o))||x.enumerable});return p};var b=p=>w(n({},"__esModule",{value:!0}),p);var h={};l(h,{createTailwindFn:()=>g});module.exports=b(h);var a=require("twrnc/create"),s={handler({addUtilities:p}){p({"shadow-sm":{boxShadow:"0 1px 2px 0 rgb(0 0 0 / 0.05)"},shadow:{boxShadow:"0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)"},"shadow-md":{boxShadow:"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)"},"shadow-lg":{boxShadow:"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)"},"shadow-xl":{boxShadow:"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)"},"shadow-2xl":{boxShadow:"0 25px 50px -12px rgb(0 0 0 / 0.25)"},"shadow-inner":{boxShadow:"inset 0 2px 4px 0 rgb(0 0 0 / 0.05)"},"shadow-none":{boxShadow:"0 0 #0000"},block:{display:"block"},inline:{display:"inline"},grid:{display:"grid"}})}};function g(p){let r=(0,a.create)({...p,plugins:[...p?.plugins??[],s]},"web",{major:0,minor:0,patch:0});return function(...x){let o=r.style(...x);return typeof o.lineHeight=="number"&&(o.lineHeight=`${o.lineHeight}px`),o.shadowColor&&typeof o.boxShadow=="string"&&(o.boxShadow=o.boxShadow.replace(/rgba?\([^)]+\)/g,o.shadowColor.toString())),o}}0&&(module.exports={createTailwindFn});
@@ -0,0 +1,15 @@
1
+ import * as twrnc from 'twrnc';
2
+ import { TwConfig } from 'twrnc';
3
+
4
+ declare module "react" {
5
+ interface HTMLAttributes<T> {
6
+ tw?: string;
7
+ }
8
+ }
9
+ /**
10
+ * @description Creates a function that can be used to parse tailwind classes into inline styles.
11
+ * @param config The tailwind config to use.
12
+ */
13
+ declare function createTailwindFn(config?: TwConfig): (...args: Parameters<(...inputs: twrnc.ClassInput[]) => twrnc.Style>) => twrnc.Style;
14
+
15
+ export { createTailwindFn };
@@ -0,0 +1,15 @@
1
+ import * as twrnc from 'twrnc';
2
+ import { TwConfig } from 'twrnc';
3
+
4
+ declare module "react" {
5
+ interface HTMLAttributes<T> {
6
+ tw?: string;
7
+ }
8
+ }
9
+ /**
10
+ * @description Creates a function that can be used to parse tailwind classes into inline styles.
11
+ * @param config The tailwind config to use.
12
+ */
13
+ declare function createTailwindFn(config?: TwConfig): (...args: Parameters<(...inputs: twrnc.ClassInput[]) => twrnc.Style>) => twrnc.Style;
14
+
15
+ export { createTailwindFn };
@@ -0,0 +1 @@
1
+ import{create as x}from"twrnc/create";var n={handler({addUtilities:p}){p({"shadow-sm":{boxShadow:"0 1px 2px 0 rgb(0 0 0 / 0.05)"},shadow:{boxShadow:"0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)"},"shadow-md":{boxShadow:"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)"},"shadow-lg":{boxShadow:"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)"},"shadow-xl":{boxShadow:"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)"},"shadow-2xl":{boxShadow:"0 25px 50px -12px rgb(0 0 0 / 0.25)"},"shadow-inner":{boxShadow:"inset 0 2px 4px 0 rgb(0 0 0 / 0.05)"},"shadow-none":{boxShadow:"0 0 #0000"},block:{display:"block"},inline:{display:"inline"},grid:{display:"grid"}})}};function t(p){let r=x({...p,plugins:[...p?.plugins??[],n]},"web",{major:0,minor:0,patch:0});return function(...e){let o=r.style(...e);return typeof o.lineHeight=="number"&&(o.lineHeight=`${o.lineHeight}px`),o.shadowColor&&typeof o.boxShadow=="string"&&(o.boxShadow=o.boxShadow.replace(/rgba?\([^)]+\)/g,o.shadowColor.toString())),o}}export{t as createTailwindFn};
package/dist/jsx/jsx.cjs CHANGED
@@ -1 +1,2 @@
1
- "use strict";var f=Object.defineProperty;var L=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames;var O=Object.prototype.hasOwnProperty;var $=(e,t)=>{for(var r in t)f(e,r,{get:t[r],enumerable:!0})},I=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of A(t))!O.call(e,o)&&o!==r&&f(e,o,{get:()=>t[o],enumerable:!(n=L(t,o))||n.enumerable});return e};var W=e=>I(f({},"__esModule",{value:!0}),e);var G={};$(G,{fromJsx:()=>J});module.exports=W(G);function m(e,t){t&&Object.keys(t).length>0&&(e.style=t)}function l(e){let t={type:"container",children:e.children};return m(t,e.style),t}function u(e,t){let r={type:"text",text:e};return m(r,t),r}function y(e){let t={type:"image",src:e.src};return m(t,e.style),t}function g(e){return{percentage:e}}var c={p:{marginTop:"1em",marginBottom:"1em",display:"block"},blockquote:{marginTop:"1em",marginBottom:"1em",marginLeft:40,marginRight:40,display:"block"},center:{textAlign:"center",display:"inline"},hr:{marginTop:"0.5em",marginBottom:"0.5em",marginLeft:"auto",marginRight:"auto",borderWidth:1},h1:{fontSize:"2em",marginTop:"0.67em",marginBottom:"0.67em",marginLeft:0,marginRight:0,fontWeight:"bold",display:"block"},h2:{fontSize:"1.5em",marginTop:"0.83em",marginBottom:"0.83em",marginLeft:0,marginRight:0,fontWeight:"bold",display:"block"},h3:{fontSize:"1.17em",marginTop:"1em",marginBottom:"1em",marginLeft:0,marginRight:0,fontWeight:"bold",display:"block"},h4:{marginTop:"1.33em",marginBottom:"1.33em",marginLeft:0,marginRight:0,fontWeight:"bold",display:"block"},h5:{fontSize:"0.83em",marginTop:"1.67em",marginBottom:"1.67em",marginLeft:0,marginRight:0,fontWeight:"bold",display:"block"},h6:{fontSize:"0.67em",marginTop:"2.33em",marginBottom:"2.33em",marginLeft:0,marginRight:0,fontWeight:"bold",display:"block"},u:{textDecoration:"underline",display:"inline"},strong:{fontWeight:"bold",display:"inline"},b:{fontWeight:"bold",display:"inline"},i:{fontStyle:"italic",display:"inline"},em:{fontStyle:"italic",display:"inline"},code:{fontFamily:"monospace",display:"inline"},kbd:{fontFamily:"monospace",display:"inline"},pre:{fontFamily:"monospace",marginTop:"1em",marginBottom:"1em",display:"inline"},mark:{backgroundColor:16776960,color:0,display:"inline"},big:{fontSize:"1.2em",display:"inline"},small:{fontSize:"0.8em",display:"inline"},s:{textDecoration:"line-through",display:"inline"},span:{display:"inline"},img:{display:"inline"},svg:{display:"inline"}};function d(e,t){return e.type===t&&"props"in e}function b(e){return e.replace(/([A-Z])/g,"-$1").toLowerCase()}function i(e){return typeof e=="object"&&e!==null&&"type"in e}function s(e){return typeof e=="function"}var z=Symbol.for("react.forward_ref"),F=Symbol.for("react.memo"),j=Symbol.for("react.fragment");function S(e){return e.$$typeof===z}function E(e){return e.$$typeof===F}function R(e){return e.type===j}function B(e){return typeof e=="string"||typeof e=="number"}function P(e){return e.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function M(e){return Object.keys(e).map(t=>`${t.replace(/([A-Z])/g,"-$1").toLowerCase()}:${String(e[t]).trim()}`).join(";")}var _=["stopColor","stopOpacity","strokeWidth","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","fillRule","clipRule","colorInterpolationFilters","floodColor","floodOpacity","accentHeight","alignmentBaseline","arabicForm","baselineShift","capHeight","clipPath","clipPathUnits","colorInterpolation","colorProfile","colorRendering","enableBackground","fillOpacity","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","horizAdvX","horizOriginX","imageRendering","letterSpacing","lightingColor","markerEnd","markerMid","markerStart","overlinePosition","overlineThickness","paintOrder","preserveAspectRatio","pointerEvents","shapeRendering","strokeMiterlimit","strokeOpacity","textAnchor","textDecoration","textRendering","transformOrigin","underlinePosition","underlineThickness","unicodeBidi","unicodeRange","unitsPerEm","vectorEffect","vertAdvY","vertOriginX","vertOriginY","vAlphabetic","vHanging","vIdeographic","vMathematical","wordSpacing","writingMode"];function H(e,t){if(e==="children"||t==null)return;let r;if(e==="className"?r="class":_.includes(e)?r=b(e):r=e,typeof t=="boolean")return`${r}="${String(t)}"`;if(e==="style"&&typeof t=="object"){let n=M(t);if(n)return`style="${P(n)}"`}return`${r}="${P(String(t))}"`}function X(e){return Object.entries(e).map(([t,r])=>H(t,r)).filter(t=>t!==void 0)}var D=(e,t)=>{let r=e.props||{};if(s(e.type))return p(e.type(e.props));if(typeof e.type=="symbol"||typeof e.type!="string")return"";let n=X(r),o=r.children,k=Array.isArray(o)?o.map(v=>t(v)).join(""):t(o);return`<${e.type}${n.length>0?` ${n.join(" ")}`:""}>${k}</${e.type}>`},p=e=>e==null||e===!1?"":B(e)?String(e):Array.isArray(e)?e.map(p).join(""):i(e)?D(e,p):"";function x(e){let t=e.props||{};if(!("xmlns"in t)){let r={...e,props:{...t,xmlns:"http://www.w3.org/2000/svg"}};return p(r)||""}return p(e)||""}async function J(e){let t=await a(e);return t.length===0?l({}):t.length===1&&t[0]!==void 0?t[0]:l({children:t,style:{width:g(100),height:g(100)}})}async function a(e){if(e==null||e===!1)return[];if(e instanceof Promise)return a(await e);if(typeof e=="object"&&Symbol.iterator in e)return Z(e);if(i(e)){let t=await N(e);return Array.isArray(t)?t:t?[t]:[]}return[u(String(e),c.span)]}function V(e){if(!(typeof e.type!="object"||e.type===null)){if(S(e.type)&&"render"in e.type){let t=e.type;return a(t.render(e.props,null))}if(E(e.type)&&"type"in e.type){let r=e.type.type;if(s(r))return a(r(e.props));let n={...e,type:r};return N(n)}}}function C(e){if(!i(e))return Promise.resolve(void 0);let t=typeof e.props=="object"&&e.props!==null&&"children"in e.props?e.props.children:void 0;return typeof t=="string"?Promise.resolve(t):typeof t=="number"?Promise.resolve(String(t)):Array.isArray(t)?Promise.resolve(T(t)):typeof t=="object"&&t!==null&&Symbol.iterator in t?Promise.resolve(T(Array.from(t))):i(t)&&R(t)?C(t):Promise.resolve(void 0)}function T(e){if(!e.some(t=>i(t)))return e.map(t=>typeof t=="string"?t:typeof t=="number"?String(t):"").join("")}async function N(e){if(s(e.type))return a(e.type(e.props));let t=V(e);if(t!==void 0)return t;if(R(e))return await w(e)||[];if(d(e,"img"))return[Y(e)];if(d(e,"svg"))return[K(e)];let r=h(e),n=await C(e);if(n!==void 0)return[u(n,r)];let o=await w(e);return[l({children:o,style:r})]}function Y(e){if(!e.props.src)throw new Error("Image element must have a 'src' prop.");let t=h(e);return y({src:e.props.src,style:t})}function K(e){let t=h(e),r=x(e);return y({style:t,src:r})}var q={WebkitTextStroke:"textStroke",WebkitTextStrokeWidth:"textStrokeWidth",WebkitTextStrokeColor:"textStrokeColor"};function h(e){let t={};typeof e.type=="string"&&e.type in c&&Object.assign(t,c[e.type]);let r=typeof e.props=="object"&&e.props!==null&&"style"in e.props&&typeof e.props.style=="object"&&e.props.style!==null?e.props.style:void 0;if(r&&Object.keys(r).length>0){for(let[n,o]of Object.entries(q))n in r&&(t[o]=r[n],delete r[n]);Object.assign(t,r)}return t}function w(e){return typeof e.props!="object"||e.props===null||!("children"in e.props)?Promise.resolve([]):a(e.props.children)}function Z(e){return Promise.all(Array.from(e).map(a)).then(t=>t.flat())}0&&(module.exports={fromJsx});
1
+ "use strict";var y=Object.defineProperty;var O=Object.getOwnPropertyDescriptor;var F=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var $=(t,e)=>{for(var r in e)y(t,r,{get:e[r],enumerable:!0})},I=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of F(e))!A.call(t,o)&&o!==r&&y(t,o,{get:()=>e[o],enumerable:!(n=O(e,o))||n.enumerable});return t};var W=t=>I(y({},"__esModule",{value:!0}),t);var tt={};$(tt,{fromJsx:()=>Y});module.exports=W(tt);function g(t,e){e&&Object.keys(e).length>0&&(t.style=e)}function f(t){let e={type:"container",children:t.children};return g(e,t.style),e}function m(t,e){let r={type:"text",text:t};return g(r,e),r}function d(t){let e={type:"image",src:t.src};return g(e,t.style),e}function k(t){return{percentage:t}}var p={body:{margin:8},p:{marginTop:"1em",marginBottom:"1em",display:"block"},blockquote:{marginTop:"1em",marginBottom:"1em",marginLeft:40,marginRight:40,display:"block"},center:{textAlign:"center",display:"block"},hr:{marginTop:"0.5em",marginBottom:"0.5em",marginLeft:"auto",marginRight:"auto",borderWidth:1,display:"block"},h1:{fontSize:"2em",marginTop:"0.67em",marginBottom:"0.67em",marginLeft:0,marginRight:0,fontWeight:"bold",display:"block"},h2:{fontSize:"1.5em",marginTop:"0.83em",marginBottom:"0.83em",marginLeft:0,marginRight:0,fontWeight:"bold",display:"block"},h3:{fontSize:"1.17em",marginTop:"1em",marginBottom:"1em",marginLeft:0,marginRight:0,fontWeight:"bold",display:"block"},h4:{marginTop:"1.33em",marginBottom:"1.33em",marginLeft:0,marginRight:0,fontWeight:"bold",display:"block"},h5:{fontSize:"0.83em",marginTop:"1.67em",marginBottom:"1.67em",marginLeft:0,marginRight:0,fontWeight:"bold",display:"block"},h6:{fontSize:"0.67em",marginTop:"2.33em",marginBottom:"2.33em",marginLeft:0,marginRight:0,fontWeight:"bold",display:"block"},u:{textDecoration:"underline",display:"inline"},strong:{fontWeight:"bold",display:"inline"},b:{fontWeight:"bold",display:"inline"},i:{fontStyle:"italic",display:"inline"},em:{fontStyle:"italic",display:"inline"},code:{fontFamily:"monospace",display:"inline"},kbd:{fontFamily:"monospace",display:"inline"},pre:{fontFamily:"monospace",margin:"1em 0",display:"block"},mark:{backgroundColor:"yellow",color:0,display:"inline"},big:{fontSize:"1.2em",display:"inline"},small:{fontSize:"0.8em",display:"inline"},s:{textDecoration:"line-through",display:"inline"},span:{display:"inline"},img:{display:"inline"},svg:{display:"inline"}};var j=new Set(["head","meta","link","style","script"]);function S(t){return j.has(t.type)}function u(t,e){return t.type===e&&"props"in t}function x(t){return t.replace(/([A-Z])/g,"-$1").toLowerCase()}function i(t){return typeof t=="object"&&t!==null&&"type"in t}function c(t){return typeof t=="function"}var J=Symbol.for("react.forward_ref"),z=Symbol.for("react.memo"),B=Symbol.for("react.fragment");function E(t){return t.$$typeof===J}function P(t){return t.$$typeof===z}function R(t){return t.type===B}function M(t){return typeof t=="string"||typeof t=="number"}function w(t){return t.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function H(t){return Object.keys(t).map(e=>`${e.replace(/([A-Z])/g,"-$1").toLowerCase()}:${String(t[e]).trim()}`).join(";")}var _=["stopColor","stopOpacity","strokeWidth","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","fillRule","clipRule","colorInterpolationFilters","floodColor","floodOpacity","accentHeight","alignmentBaseline","arabicForm","baselineShift","capHeight","clipPath","clipPathUnits","colorInterpolation","colorProfile","colorRendering","enableBackground","fillOpacity","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","horizAdvX","horizOriginX","imageRendering","letterSpacing","lightingColor","markerEnd","markerMid","markerStart","overlinePosition","overlineThickness","paintOrder","preserveAspectRatio","pointerEvents","shapeRendering","strokeMiterlimit","strokeOpacity","textAnchor","textDecoration","textRendering","transformOrigin","underlinePosition","underlineThickness","unicodeBidi","unicodeRange","unitsPerEm","vectorEffect","vertAdvY","vertOriginX","vertOriginY","vAlphabetic","vHanging","vIdeographic","vMathematical","wordSpacing","writingMode"];function V(t,e){if(t==="children"||e==null)return;let r;if(t==="className"?r="class":_.includes(t)?r=x(t):r=t,typeof e=="boolean")return`${r}="${String(e)}"`;if(t==="style"&&typeof e=="object"){let n=H(e);if(n)return`style="${w(n)}"`}return`${r}="${w(String(e))}"`}function X(t){return Object.entries(t).map(([e,r])=>V(e,r)).filter(e=>e!==void 0)}var D=(t,e)=>{let r=t.props||{};if(c(t.type))return l(t.type(t.props));if(typeof t.type=="symbol"||typeof t.type!="string")return"";let n=X(r),o=r.children,a=Array.isArray(o)?o.map(b=>e(b)).join(""):e(o);return`<${t.type}${n.length>0?` ${n.join(" ")}`:""}>${a}</${t.type}>`},l=t=>t==null||t===!1?"":M(t)?String(t):Array.isArray(t)?t.map(l).join(""):i(t)?D(t,l):"";function T(t){let e=t.props||{};if(!("xmlns"in e)){let r={...t,props:{...e,xmlns:"http://www.w3.org/2000/svg"}};return l(r)||""}return l(t)||""}async function Y(t,e){let r=await s(t,e??{});return r.length===0?f({}):r.length===1&&r[0]!==void 0?r[0]:f({children:r,style:{width:k(100),height:k(100)}})}async function s(t,e){if(t==null||t===!1)return[];if(t instanceof Promise)return s(await t,e);if(typeof t=="object"&&Symbol.iterator in t)return Q(t,e);if(i(t)){let r=await L(t,e);return Array.isArray(r)?r:r?[r]:[]}return[m(String(t),p.span)]}function K(t,e){if(!(typeof t.type!="object"||t.type===null)){if(E(t.type)&&"render"in t.type){let r=t.type;return s(r.render(t.props,null),e)}if(P(t.type)&&"type"in t.type){let n=t.type.type;if(c(n))return s(n(t.props),e);let o={...t,type:n};return L(o,e)}}}function v(t){if(!i(t))return Promise.resolve(void 0);let e=typeof t.props=="object"&&t.props!==null&&"children"in t.props?t.props.children:void 0;return typeof e=="string"?Promise.resolve(e):typeof e=="number"?Promise.resolve(String(e)):Array.isArray(e)?Promise.resolve(C(e)):typeof e=="object"&&e!==null&&Symbol.iterator in e?Promise.resolve(C(Array.from(e))):i(e)&&R(e)?v(e):Promise.resolve(void 0)}function C(t){if(!t.some(e=>i(e)))return t.map(e=>typeof e=="string"?e:typeof e=="number"?String(e):"").join("")}async function L(t,e){if(c(t.type))return s(t.type(t.props),e);let r=K(t,e);if(r!==void 0)return r;if(R(t))return await N(t,e)||[];if(S(t))return[];if(u(t,"br"))return[m(`
2
+ `,p.span)];if(u(t,"img"))return[q(t,e)];if(u(t,"svg"))return[Z(t,e)];let n=h(t,e),o=await v(t);if(o!==void 0)return[m(o,n)];let a=await N(t,e);return[f({children:a,style:n})]}function q(t,e){if(!t.props.src)throw new Error("Image element must have a 'src' prop.");let r=h(t,e);return d({src:t.props.src,style:r})}function Z(t,e){let r=h(t,e),n=T(t);return d({style:r,src:n})}var G={WebkitTextStroke:"textStroke",WebkitTextStrokeWidth:"textStrokeWidth",WebkitTextStrokeColor:"textStrokeColor"};function U(t,e,r){if(!r.tailwindFn||typeof t.props!="object"||t.props===null)return;let n=[];"tw"in t.props&&typeof t.props.tw=="string"&&n.push(t.props.tw),"className"in t.props&&typeof t.props.className=="string"&&n.push(t.props.className),"class"in t.props&&typeof t.props.class=="string"&&n.push(t.props.class),Object.assign(e,r.tailwindFn(...n))}function h(t,e){let r={};typeof t.type=="string"&&t.type in p&&Object.assign(r,p[t.type]),U(t,r,e);let n=typeof t.props=="object"&&t.props!==null&&"style"in t.props&&typeof t.props.style=="object"&&t.props.style!==null?t.props.style:void 0;if(n&&Object.keys(n).length>0){for(let[o,a]of Object.entries(G))o in n&&(r[a]=n[o],delete n[o]);Object.assign(r,n)}return r}function N(t,e){return typeof t.props!="object"||t.props===null||!("children"in t.props)?Promise.resolve([]):s(t.props.children,e)}function Q(t,e){return Promise.all(Array.from(t).map(r=>s(r,e))).then(r=>r.flat())}0&&(module.exports={fromJsx});
@@ -1,5 +1,7 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { N as Node } from '../types-RUwY6emy.cjs';
3
+ import { createTailwindFn } from './create-tailwind-fn.cjs';
4
+ import 'twrnc';
3
5
 
4
6
  type ReactElementLike = {
5
7
  type: string | symbol | ((props: unknown) => ReactElementLike) | ReactElementLike;
@@ -7,6 +9,12 @@ type ReactElementLike = {
7
9
  $$typeof?: symbol;
8
10
  };
9
11
 
10
- declare function fromJsx(element: ReactNode | ReactElementLike): Promise<Node>;
12
+ interface FromJsxOptions {
13
+ /**
14
+ * @description The tailwind function to use, it will parse the `tw` prop and apply to inline styles.
15
+ */
16
+ tailwindFn?: ReturnType<typeof createTailwindFn>;
17
+ }
18
+ declare function fromJsx(element: ReactNode | ReactElementLike, options?: FromJsxOptions): Promise<Node>;
11
19
 
12
- export { fromJsx };
20
+ export { type FromJsxOptions, fromJsx };
package/dist/jsx/jsx.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { N as Node } from '../types-RUwY6emy.js';
3
+ import { createTailwindFn } from './create-tailwind-fn.js';
4
+ import 'twrnc';
3
5
 
4
6
  type ReactElementLike = {
5
7
  type: string | symbol | ((props: unknown) => ReactElementLike) | ReactElementLike;
@@ -7,6 +9,12 @@ type ReactElementLike = {
7
9
  $$typeof?: symbol;
8
10
  };
9
11
 
10
- declare function fromJsx(element: ReactNode | ReactElementLike): Promise<Node>;
12
+ interface FromJsxOptions {
13
+ /**
14
+ * @description The tailwind function to use, it will parse the `tw` prop and apply to inline styles.
15
+ */
16
+ tailwindFn?: ReturnType<typeof createTailwindFn>;
17
+ }
18
+ declare function fromJsx(element: ReactNode | ReactElementLike, options?: FromJsxOptions): Promise<Node>;
11
19
 
12
- export { fromJsx };
20
+ export { type FromJsxOptions, fromJsx };
package/dist/jsx/jsx.js CHANGED
@@ -1 +1,2 @@
1
- function f(e,t){t&&Object.keys(t).length>0&&(e.style=t)}function l(e){let t={type:"container",children:e.children};return f(t,e.style),t}function m(e,t){let r={type:"text",text:e};return f(r,t),r}function u(e){let t={type:"image",src:e.src};return f(t,e.style),t}function y(e){return{percentage:e}}var c={p:{marginTop:"1em",marginBottom:"1em",display:"block"},blockquote:{marginTop:"1em",marginBottom:"1em",marginLeft:40,marginRight:40,display:"block"},center:{textAlign:"center",display:"inline"},hr:{marginTop:"0.5em",marginBottom:"0.5em",marginLeft:"auto",marginRight:"auto",borderWidth:1},h1:{fontSize:"2em",marginTop:"0.67em",marginBottom:"0.67em",marginLeft:0,marginRight:0,fontWeight:"bold",display:"block"},h2:{fontSize:"1.5em",marginTop:"0.83em",marginBottom:"0.83em",marginLeft:0,marginRight:0,fontWeight:"bold",display:"block"},h3:{fontSize:"1.17em",marginTop:"1em",marginBottom:"1em",marginLeft:0,marginRight:0,fontWeight:"bold",display:"block"},h4:{marginTop:"1.33em",marginBottom:"1.33em",marginLeft:0,marginRight:0,fontWeight:"bold",display:"block"},h5:{fontSize:"0.83em",marginTop:"1.67em",marginBottom:"1.67em",marginLeft:0,marginRight:0,fontWeight:"bold",display:"block"},h6:{fontSize:"0.67em",marginTop:"2.33em",marginBottom:"2.33em",marginLeft:0,marginRight:0,fontWeight:"bold",display:"block"},u:{textDecoration:"underline",display:"inline"},strong:{fontWeight:"bold",display:"inline"},b:{fontWeight:"bold",display:"inline"},i:{fontStyle:"italic",display:"inline"},em:{fontStyle:"italic",display:"inline"},code:{fontFamily:"monospace",display:"inline"},kbd:{fontFamily:"monospace",display:"inline"},pre:{fontFamily:"monospace",marginTop:"1em",marginBottom:"1em",display:"inline"},mark:{backgroundColor:16776960,color:0,display:"inline"},big:{fontSize:"1.2em",display:"inline"},small:{fontSize:"0.8em",display:"inline"},s:{textDecoration:"line-through",display:"inline"},span:{display:"inline"},img:{display:"inline"},svg:{display:"inline"}};function g(e,t){return e.type===t&&"props"in e}function k(e){return e.replace(/([A-Z])/g,"-$1").toLowerCase()}function i(e){return typeof e=="object"&&e!==null&&"type"in e}function s(e){return typeof e=="function"}var v=Symbol.for("react.forward_ref"),L=Symbol.for("react.memo"),A=Symbol.for("react.fragment");function b(e){return e.$$typeof===v}function S(e){return e.$$typeof===L}function d(e){return e.type===A}function O(e){return typeof e=="string"||typeof e=="number"}function E(e){return e.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function $(e){return Object.keys(e).map(t=>`${t.replace(/([A-Z])/g,"-$1").toLowerCase()}:${String(e[t]).trim()}`).join(";")}var I=["stopColor","stopOpacity","strokeWidth","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","fillRule","clipRule","colorInterpolationFilters","floodColor","floodOpacity","accentHeight","alignmentBaseline","arabicForm","baselineShift","capHeight","clipPath","clipPathUnits","colorInterpolation","colorProfile","colorRendering","enableBackground","fillOpacity","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","horizAdvX","horizOriginX","imageRendering","letterSpacing","lightingColor","markerEnd","markerMid","markerStart","overlinePosition","overlineThickness","paintOrder","preserveAspectRatio","pointerEvents","shapeRendering","strokeMiterlimit","strokeOpacity","textAnchor","textDecoration","textRendering","transformOrigin","underlinePosition","underlineThickness","unicodeBidi","unicodeRange","unitsPerEm","vectorEffect","vertAdvY","vertOriginX","vertOriginY","vAlphabetic","vHanging","vIdeographic","vMathematical","wordSpacing","writingMode"];function W(e,t){if(e==="children"||t==null)return;let r;if(e==="className"?r="class":I.includes(e)?r=k(e):r=e,typeof t=="boolean")return`${r}="${String(t)}"`;if(e==="style"&&typeof t=="object"){let n=$(t);if(n)return`style="${E(n)}"`}return`${r}="${E(String(t))}"`}function z(e){return Object.entries(e).map(([t,r])=>W(t,r)).filter(t=>t!==void 0)}var F=(e,t)=>{let r=e.props||{};if(s(e.type))return p(e.type(e.props));if(typeof e.type=="symbol"||typeof e.type!="string")return"";let n=z(r),o=r.children,h=Array.isArray(o)?o.map(N=>t(N)).join(""):t(o);return`<${e.type}${n.length>0?` ${n.join(" ")}`:""}>${h}</${e.type}>`},p=e=>e==null||e===!1?"":O(e)?String(e):Array.isArray(e)?e.map(p).join(""):i(e)?F(e,p):"";function P(e){let t=e.props||{};if(!("xmlns"in t)){let r={...e,props:{...t,xmlns:"http://www.w3.org/2000/svg"}};return p(r)||""}return p(e)||""}async function U(e){let t=await a(e);return t.length===0?l({}):t.length===1&&t[0]!==void 0?t[0]:l({children:t,style:{width:y(100),height:y(100)}})}async function a(e){if(e==null||e===!1)return[];if(e instanceof Promise)return a(await e);if(typeof e=="object"&&Symbol.iterator in e)return H(e);if(i(e)){let t=await C(e);return Array.isArray(t)?t:t?[t]:[]}return[m(String(e),c.span)]}function j(e){if(!(typeof e.type!="object"||e.type===null)){if(b(e.type)&&"render"in e.type){let t=e.type;return a(t.render(e.props,null))}if(S(e.type)&&"type"in e.type){let r=e.type.type;if(s(r))return a(r(e.props));let n={...e,type:r};return C(n)}}}function w(e){if(!i(e))return Promise.resolve(void 0);let t=typeof e.props=="object"&&e.props!==null&&"children"in e.props?e.props.children:void 0;return typeof t=="string"?Promise.resolve(t):typeof t=="number"?Promise.resolve(String(t)):Array.isArray(t)?Promise.resolve(x(t)):typeof t=="object"&&t!==null&&Symbol.iterator in t?Promise.resolve(x(Array.from(t))):i(t)&&d(t)?w(t):Promise.resolve(void 0)}function x(e){if(!e.some(t=>i(t)))return e.map(t=>typeof t=="string"?t:typeof t=="number"?String(t):"").join("")}async function C(e){if(s(e.type))return a(e.type(e.props));let t=j(e);if(t!==void 0)return t;if(d(e))return await T(e)||[];if(g(e,"img"))return[B(e)];if(g(e,"svg"))return[M(e)];let r=R(e),n=await w(e);if(n!==void 0)return[m(n,r)];let o=await T(e);return[l({children:o,style:r})]}function B(e){if(!e.props.src)throw new Error("Image element must have a 'src' prop.");let t=R(e);return u({src:e.props.src,style:t})}function M(e){let t=R(e),r=P(e);return u({style:t,src:r})}var _={WebkitTextStroke:"textStroke",WebkitTextStrokeWidth:"textStrokeWidth",WebkitTextStrokeColor:"textStrokeColor"};function R(e){let t={};typeof e.type=="string"&&e.type in c&&Object.assign(t,c[e.type]);let r=typeof e.props=="object"&&e.props!==null&&"style"in e.props&&typeof e.props.style=="object"&&e.props.style!==null?e.props.style:void 0;if(r&&Object.keys(r).length>0){for(let[n,o]of Object.entries(_))n in r&&(t[o]=r[n],delete r[n]);Object.assign(t,r)}return t}function T(e){return typeof e.props!="object"||e.props===null||!("children"in e.props)?Promise.resolve([]):a(e.props.children)}function H(e){return Promise.all(Array.from(e).map(a)).then(t=>t.flat())}export{U as fromJsx};
1
+ function y(t,e){e&&Object.keys(e).length>0&&(t.style=e)}function f(t){let e={type:"container",children:t.children};return y(e,t.style),e}function m(t,e){let r={type:"text",text:t};return y(r,e),r}function g(t){let e={type:"image",src:t.src};return y(e,t.style),e}function d(t){return{percentage:t}}var p={body:{margin:8},p:{marginTop:"1em",marginBottom:"1em",display:"block"},blockquote:{marginTop:"1em",marginBottom:"1em",marginLeft:40,marginRight:40,display:"block"},center:{textAlign:"center",display:"block"},hr:{marginTop:"0.5em",marginBottom:"0.5em",marginLeft:"auto",marginRight:"auto",borderWidth:1,display:"block"},h1:{fontSize:"2em",marginTop:"0.67em",marginBottom:"0.67em",marginLeft:0,marginRight:0,fontWeight:"bold",display:"block"},h2:{fontSize:"1.5em",marginTop:"0.83em",marginBottom:"0.83em",marginLeft:0,marginRight:0,fontWeight:"bold",display:"block"},h3:{fontSize:"1.17em",marginTop:"1em",marginBottom:"1em",marginLeft:0,marginRight:0,fontWeight:"bold",display:"block"},h4:{marginTop:"1.33em",marginBottom:"1.33em",marginLeft:0,marginRight:0,fontWeight:"bold",display:"block"},h5:{fontSize:"0.83em",marginTop:"1.67em",marginBottom:"1.67em",marginLeft:0,marginRight:0,fontWeight:"bold",display:"block"},h6:{fontSize:"0.67em",marginTop:"2.33em",marginBottom:"2.33em",marginLeft:0,marginRight:0,fontWeight:"bold",display:"block"},u:{textDecoration:"underline",display:"inline"},strong:{fontWeight:"bold",display:"inline"},b:{fontWeight:"bold",display:"inline"},i:{fontStyle:"italic",display:"inline"},em:{fontStyle:"italic",display:"inline"},code:{fontFamily:"monospace",display:"inline"},kbd:{fontFamily:"monospace",display:"inline"},pre:{fontFamily:"monospace",margin:"1em 0",display:"block"},mark:{backgroundColor:"yellow",color:0,display:"inline"},big:{fontSize:"1.2em",display:"inline"},small:{fontSize:"0.8em",display:"inline"},s:{textDecoration:"line-through",display:"inline"},span:{display:"inline"},img:{display:"inline"},svg:{display:"inline"}};var L=new Set(["head","meta","link","style","script"]);function b(t){return L.has(t.type)}function u(t,e){return t.type===e&&"props"in t}function S(t){return t.replace(/([A-Z])/g,"-$1").toLowerCase()}function i(t){return typeof t=="object"&&t!==null&&"type"in t}function c(t){return typeof t=="function"}var O=Symbol.for("react.forward_ref"),F=Symbol.for("react.memo"),A=Symbol.for("react.fragment");function x(t){return t.$$typeof===O}function E(t){return t.$$typeof===F}function k(t){return t.type===A}function $(t){return typeof t=="string"||typeof t=="number"}function P(t){return t.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function I(t){return Object.keys(t).map(e=>`${e.replace(/([A-Z])/g,"-$1").toLowerCase()}:${String(t[e]).trim()}`).join(";")}var W=["stopColor","stopOpacity","strokeWidth","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","fillRule","clipRule","colorInterpolationFilters","floodColor","floodOpacity","accentHeight","alignmentBaseline","arabicForm","baselineShift","capHeight","clipPath","clipPathUnits","colorInterpolation","colorProfile","colorRendering","enableBackground","fillOpacity","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","horizAdvX","horizOriginX","imageRendering","letterSpacing","lightingColor","markerEnd","markerMid","markerStart","overlinePosition","overlineThickness","paintOrder","preserveAspectRatio","pointerEvents","shapeRendering","strokeMiterlimit","strokeOpacity","textAnchor","textDecoration","textRendering","transformOrigin","underlinePosition","underlineThickness","unicodeBidi","unicodeRange","unitsPerEm","vectorEffect","vertAdvY","vertOriginX","vertOriginY","vAlphabetic","vHanging","vIdeographic","vMathematical","wordSpacing","writingMode"];function j(t,e){if(t==="children"||e==null)return;let r;if(t==="className"?r="class":W.includes(t)?r=S(t):r=t,typeof e=="boolean")return`${r}="${String(e)}"`;if(t==="style"&&typeof e=="object"){let n=I(e);if(n)return`style="${P(n)}"`}return`${r}="${P(String(e))}"`}function J(t){return Object.entries(t).map(([e,r])=>j(e,r)).filter(e=>e!==void 0)}var z=(t,e)=>{let r=t.props||{};if(c(t.type))return l(t.type(t.props));if(typeof t.type=="symbol"||typeof t.type!="string")return"";let n=J(r),o=r.children,a=Array.isArray(o)?o.map(h=>e(h)).join(""):e(o);return`<${t.type}${n.length>0?` ${n.join(" ")}`:""}>${a}</${t.type}>`},l=t=>t==null||t===!1?"":$(t)?String(t):Array.isArray(t)?t.map(l).join(""):i(t)?z(t,l):"";function w(t){let e=t.props||{};if(!("xmlns"in e)){let r={...t,props:{...e,xmlns:"http://www.w3.org/2000/svg"}};return l(r)||""}return l(t)||""}async function et(t,e){let r=await s(t,e??{});return r.length===0?f({}):r.length===1&&r[0]!==void 0?r[0]:f({children:r,style:{width:d(100),height:d(100)}})}async function s(t,e){if(t==null||t===!1)return[];if(t instanceof Promise)return s(await t,e);if(typeof t=="object"&&Symbol.iterator in t)return X(t,e);if(i(t)){let r=await v(t,e);return Array.isArray(r)?r:r?[r]:[]}return[m(String(t),p.span)]}function B(t,e){if(!(typeof t.type!="object"||t.type===null)){if(x(t.type)&&"render"in t.type){let r=t.type;return s(r.render(t.props,null),e)}if(E(t.type)&&"type"in t.type){let n=t.type.type;if(c(n))return s(n(t.props),e);let o={...t,type:n};return v(o,e)}}}function N(t){if(!i(t))return Promise.resolve(void 0);let e=typeof t.props=="object"&&t.props!==null&&"children"in t.props?t.props.children:void 0;return typeof e=="string"?Promise.resolve(e):typeof e=="number"?Promise.resolve(String(e)):Array.isArray(e)?Promise.resolve(T(e)):typeof e=="object"&&e!==null&&Symbol.iterator in e?Promise.resolve(T(Array.from(e))):i(e)&&k(e)?N(e):Promise.resolve(void 0)}function T(t){if(!t.some(e=>i(e)))return t.map(e=>typeof e=="string"?e:typeof e=="number"?String(e):"").join("")}async function v(t,e){if(c(t.type))return s(t.type(t.props),e);let r=B(t,e);if(r!==void 0)return r;if(k(t))return await C(t,e)||[];if(b(t))return[];if(u(t,"br"))return[m(`
2
+ `,p.span)];if(u(t,"img"))return[M(t,e)];if(u(t,"svg"))return[H(t,e)];let n=R(t,e),o=await N(t);if(o!==void 0)return[m(o,n)];let a=await C(t,e);return[f({children:a,style:n})]}function M(t,e){if(!t.props.src)throw new Error("Image element must have a 'src' prop.");let r=R(t,e);return g({src:t.props.src,style:r})}function H(t,e){let r=R(t,e),n=w(t);return g({style:r,src:n})}var _={WebkitTextStroke:"textStroke",WebkitTextStrokeWidth:"textStrokeWidth",WebkitTextStrokeColor:"textStrokeColor"};function V(t,e,r){if(!r.tailwindFn||typeof t.props!="object"||t.props===null)return;let n=[];"tw"in t.props&&typeof t.props.tw=="string"&&n.push(t.props.tw),"className"in t.props&&typeof t.props.className=="string"&&n.push(t.props.className),"class"in t.props&&typeof t.props.class=="string"&&n.push(t.props.class),Object.assign(e,r.tailwindFn(...n))}function R(t,e){let r={};typeof t.type=="string"&&t.type in p&&Object.assign(r,p[t.type]),V(t,r,e);let n=typeof t.props=="object"&&t.props!==null&&"style"in t.props&&typeof t.props.style=="object"&&t.props.style!==null?t.props.style:void 0;if(n&&Object.keys(n).length>0){for(let[o,a]of Object.entries(_))o in n&&(r[a]=n[o],delete n[o]);Object.assign(r,n)}return r}function C(t,e){return typeof t.props!="object"||t.props===null||!("children"in t.props)?Promise.resolve([]):s(t.props.children,e)}function X(t,e){return Promise.all(Array.from(t).map(r=>s(r,e))).then(r=>r.flat())}export{et as fromJsx};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@takumi-rs/helpers",
3
- "version": "0.42.0",
3
+ "version": "0.43.1",
4
4
  "author": {
5
5
  "email": "me@kane.tw",
6
6
  "name": "Kane Wang",
@@ -9,12 +9,15 @@
9
9
  "repository": {
10
10
  "url": "git+https://github.com/kane50613/takumi.git"
11
11
  },
12
+ "dependencies": {
13
+ "twrnc": "^4.10.1"
14
+ },
12
15
  "devDependencies": {
13
16
  "@types/bun": "catalog:",
14
17
  "@types/react": "^19.2.2",
15
18
  "@types/react-dom": "^19.2.2",
16
19
  "bun-plugin-dts": "^0.3.0",
17
- "lucide-react": "^0.548.0",
20
+ "lucide-react": "^0.552.0",
18
21
  "react": "^19.2.0",
19
22
  "react-dom": "^19.2.0",
20
23
  "tsup": "^8.5.0",
@@ -32,6 +35,12 @@
32
35
  "import": "./dist/jsx/jsx.js",
33
36
  "require": "./dist/jsx/jsx.cjs",
34
37
  "default": "./dist/jsx/jsx.js"
38
+ },
39
+ "./jsx/create-tailwind-fn": {
40
+ "types": "./dist/jsx/create-tailwind-fn.d.ts",
41
+ "import": "./dist/jsx/create-tailwind-fn.js",
42
+ "require": "./dist/jsx/create-tailwind-fn.cjs",
43
+ "default": "./dist/jsx/create-tailwind-fn.js"
35
44
  }
36
45
  },
37
46
  "files": [
@@ -42,7 +51,7 @@
42
51
  ],
43
52
  "license": "(MIT OR Apache-2.0)",
44
53
  "scripts": {
45
- "build": "tsup-node src/index.ts src/jsx/jsx.ts --minify --dts --format esm,cjs --no-splitting"
54
+ "build": "tsup-node src/index.ts src/jsx/jsx.ts src/jsx/create-tailwind-fn.ts --minify --dts --format esm,cjs --no-splitting"
46
55
  },
47
56
  "type": "module"
48
57
  }