@razorwind/zsh 0.0.22 → 0.0.23
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.
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts.map +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +3 -3
package/dist/index.cjs
CHANGED
|
@@ -46,5 +46,5 @@ source ~/.zshrc
|
|
|
46
46
|
|
|
47
47
|
\`ZSH_THEME\` must match the \`*.zsh-theme\` filename without the extension
|
|
48
48
|
(e.g. \`${t.fileName}\` → \`${t.name}\`).
|
|
49
|
-
`}function i(e){return(0,t.themeDisplayName)(e)}const a={name:`razorwind-zsh`},o={success:`#50fa7b`,error:`#ff5555`,warning:`#f1fa8c`,time:`#50fa7b`,context:`#ff79c6`,directory:`#bd93f9`,custom:`#f1fa8c`,git:`#8be9fd`,gitClean:`#50fa7b`,gitDirty:`#f1fa8c`};function s(e,n,r){return(0,t.createDocument)(e,n,a,r)}function c(e){return(0,t.isObject)(e)&&typeof e.name==`string`&&e.name.length>0}function l(e){if(Array.isArray(e))return e.map((e,t)=>{if(!c(e))throw TypeError(`@razorwind/zsh mapTheme()[${t}] must be a ZshTheme with name`);return e});if(c(e))return[e];if(!(0,t.isObject)(e))throw TypeError(`@razorwind/zsh mapTheme() must return a theme, theme array, or theme record`);return Object.entries(e).map(([e,t])=>{if(!c(t))throw TypeError(`@razorwind/zsh mapTheme()["${e}"] must be a ZshTheme with name`);return{...t,name:t.name||e}})}function u(e){if(!e.mapTheme)throw Error(`@razorwind/zsh requires options.mapTheme`)}function d(e){return{success:e?.success??o.success,error:e?.error??o.error,warning:e?.warning??o.warning,time:e?.time??o.time,context:e?.context??o.context,directory:e?.directory??o.directory,custom:e?.custom??o.custom,git:e?.git??o.git,gitClean:e?.gitClean??o.gitClean,gitDirty:e?.gitDirty??o.gitDirty}}function f(e){let t=e.trim();return t.startsWith(`#`)?t.toLowerCase():t}function p(e){return`'${e.replaceAll(`'`,`'"'"'`)}'`}function m(e,t){return e??t?`1`:`0`}function h(e){let t=d(e.colors),n=i(e),r=e.arrowIcon??`➜ `,a=e.timeFormat??`%-H:%M`,o=e.dirTrim??0,s=m(e.displayGit,!0),c=m(e.displayTime,!1),l=m(e.displayContext,!1),u=m(e.displayFullCwd,!1),h=m(e.displayNewLine,!1),g=f(t.success),_=f(t.error),v=f(t.warning),y=f(t.time),b=f(t.context),x=f(t.directory),S=f(t.custom),C=f(t.git),w=f(t.gitClean),T=f(t.gitDirty),E=e.gitPromptPrefix??`%F{${C}}%B(`,D=e.gitPromptSuffix??`%f%b`,O=e.gitPromptClean??`) %F{${w}}%B✓ `,k=e.gitPromptDirty??`) %F{${T}}%B✗ `,A=[`# -*- mode: sh; -*-`,`# vim: set ft=sh :`,`# ${n} — generated by @razorwind/zsh`,`#`,`# Oh My Zsh theme. Segment layout inspired by Dracula for Zsh:`,`# https://draculatheme.com/zsh`,`#`,``,`setopt PROMPT_SUBST`,``];return e.prompt===void 0?A.push(`# Configuration (override in ~/.zshrc before the theme loads)`,`RW_ZSH_DISPLAY_GIT=\${RW_ZSH_DISPLAY_GIT:-${s}}`,`RW_ZSH_DISPLAY_TIME=\${RW_ZSH_DISPLAY_TIME:-${c}}`,`RW_ZSH_DISPLAY_CONTEXT=\${RW_ZSH_DISPLAY_CONTEXT:-${l}}`,`RW_ZSH_DISPLAY_FULL_CWD=\${RW_ZSH_DISPLAY_FULL_CWD:-${u}}`,`RW_ZSH_DIR_TRIM=\${RW_ZSH_DIR_TRIM:-${o}}`,`RW_ZSH_DISPLAY_NEW_LINE=\${RW_ZSH_DISPLAY_NEW_LINE:-${h}}`,`RW_ZSH_ARROW_ICON=\${RW_ZSH_ARROW_ICON:-${p(r)}}`,`RW_ZSH_TIME_FORMAT=\${RW_ZSH_TIME_FORMAT:-${p(a)}}`,``,`rw_zsh_arrow() {`,` if [[ "$1" = "start" ]] && (( ! RW_ZSH_DISPLAY_NEW_LINE )); then`,` print -P -- "$RW_ZSH_ARROW_ICON"`,` elif [[ "$1" = "end" ]] && (( RW_ZSH_DISPLAY_NEW_LINE )); then`,` print -P -- "\\n$RW_ZSH_ARROW_ICON"`,` fi`,`}`,``,`rw_zsh_time_segment() {`,` if (( RW_ZSH_DISPLAY_TIME )); then`,` print -P "%D{$RW_ZSH_TIME_FORMAT} "`,` fi`,`}`,``,`rw_zsh_context() {`,` if (( RW_ZSH_DISPLAY_CONTEXT )); then`,' if [[ -n "${SSH_CONNECTION-}${SSH_CLIENT-}${SSH_TTY-}" ]] || (( EUID == 0 )); then',` print -- '%n@%m '`,` else`,` print -- '%n '`,` fi`,` fi`,`}`,``,`rw_zsh_directory() {`,` if (( RW_ZSH_DISPLAY_FULL_CWD )); then`,' print -P "%${RW_ZSH_DIR_TRIM}~ "',` else`,` print -P '%c '`,` fi`,`}`,``,`rw_zsh_custom_variable() {`,` [[ -z "$RW_ZSH_CUSTOM_VARIABLE" ]] && return`,` print -- "%F{${S}}$RW_ZSH_CUSTOM_VARIABLE "`,`}`,``,`rw_zsh_git_info() {`,` (( ! RW_ZSH_DISPLAY_GIT )) && return`,` print -P -- "$(git_prompt_info)"`,`}`,``,`PROMPT=''`,`# Status arrow — success=${g}, error=${_}, vi-cmd=${v}`,`PROMPT+='%(?:%F{${g}}:%F{${_}})%B$(rw_zsh_arrow start)'`,`PROMPT+='%F{${y}}%B$(rw_zsh_time_segment)'`,`PROMPT+='%F{${b}}%B$(rw_zsh_context)'`,`PROMPT+='%F{${x}}%B$(rw_zsh_directory)'`,`PROMPT+='$(rw_zsh_custom_variable)'`,`PROMPT+='$(rw_zsh_git_info)'`,`PROMPT+='%(?:%F{${g}}:%F{${_}})%B$(rw_zsh_arrow end)'`,`PROMPT+='%f%b'`,``):A.push(`PROMPT=${p(e.prompt)}`,``),e.rprompt!==void 0&&A.push(`RPROMPT=${p(e.rprompt)}`,``),A.push(`ZSH_THEME_GIT_PROMPT_PREFIX=${p(E)}`,`ZSH_THEME_GIT_PROMPT_SUFFIX=${p(D)}`,`ZSH_THEME_GIT_PROMPT_CLEAN=${p(O)}`,`ZSH_THEME_GIT_PROMPT_DIRTY=${p(k)}`,``),e.extra&&A.push(e.extra.replace(/\n$/,``),``),`${A.join(`
|
|
49
|
+
`}function i(e){return(0,t.themeDisplayName)(e)}const a={name:`razorwind-zsh`},o={success:`#50fa7b`,error:`#ff5555`,warning:`#f1fa8c`,time:`#50fa7b`,context:`#ff79c6`,directory:`#bd93f9`,custom:`#f1fa8c`,git:`#8be9fd`,gitClean:`#50fa7b`,gitDirty:`#f1fa8c`};function s(e,n,r){return(0,t.createDocument)(e,n,a,void 0,r)}function c(e){return(0,t.isObject)(e)&&typeof e.name==`string`&&e.name.length>0}function l(e){if(Array.isArray(e))return e.map((e,t)=>{if(!c(e))throw TypeError(`@razorwind/zsh mapTheme()[${t}] must be a ZshTheme with name`);return e});if(c(e))return[e];if(!(0,t.isObject)(e))throw TypeError(`@razorwind/zsh mapTheme() must return a theme, theme array, or theme record`);return Object.entries(e).map(([e,t])=>{if(!c(t))throw TypeError(`@razorwind/zsh mapTheme()["${e}"] must be a ZshTheme with name`);return{...t,name:t.name||e}})}function u(e){if(!e.mapTheme)throw Error(`@razorwind/zsh requires options.mapTheme`)}function d(e){return{success:e?.success??o.success,error:e?.error??o.error,warning:e?.warning??o.warning,time:e?.time??o.time,context:e?.context??o.context,directory:e?.directory??o.directory,custom:e?.custom??o.custom,git:e?.git??o.git,gitClean:e?.gitClean??o.gitClean,gitDirty:e?.gitDirty??o.gitDirty}}function f(e){let t=e.trim();return t.startsWith(`#`)?t.toLowerCase():t}function p(e){return`'${e.replaceAll(`'`,`'"'"'`)}'`}function m(e,t){return e??t?`1`:`0`}function h(e){let t=d(e.colors),n=i(e),r=e.arrowIcon??`➜ `,a=e.timeFormat??`%-H:%M`,o=e.dirTrim??0,s=m(e.displayGit,!0),c=m(e.displayTime,!1),l=m(e.displayContext,!1),u=m(e.displayFullCwd,!1),h=m(e.displayNewLine,!1),g=f(t.success),_=f(t.error),v=f(t.warning),y=f(t.time),b=f(t.context),x=f(t.directory),S=f(t.custom),C=f(t.git),w=f(t.gitClean),T=f(t.gitDirty),E=e.gitPromptPrefix??`%F{${C}}%B(`,D=e.gitPromptSuffix??`%f%b`,O=e.gitPromptClean??`) %F{${w}}%B✓ `,k=e.gitPromptDirty??`) %F{${T}}%B✗ `,A=[`# -*- mode: sh; -*-`,`# vim: set ft=sh :`,`# ${n} — generated by @razorwind/zsh`,`#`,`# Oh My Zsh theme. Segment layout inspired by Dracula for Zsh:`,`# https://draculatheme.com/zsh`,`#`,``,`setopt PROMPT_SUBST`,``];return e.prompt===void 0?A.push(`# Configuration (override in ~/.zshrc before the theme loads)`,`RW_ZSH_DISPLAY_GIT=\${RW_ZSH_DISPLAY_GIT:-${s}}`,`RW_ZSH_DISPLAY_TIME=\${RW_ZSH_DISPLAY_TIME:-${c}}`,`RW_ZSH_DISPLAY_CONTEXT=\${RW_ZSH_DISPLAY_CONTEXT:-${l}}`,`RW_ZSH_DISPLAY_FULL_CWD=\${RW_ZSH_DISPLAY_FULL_CWD:-${u}}`,`RW_ZSH_DIR_TRIM=\${RW_ZSH_DIR_TRIM:-${o}}`,`RW_ZSH_DISPLAY_NEW_LINE=\${RW_ZSH_DISPLAY_NEW_LINE:-${h}}`,`RW_ZSH_ARROW_ICON=\${RW_ZSH_ARROW_ICON:-${p(r)}}`,`RW_ZSH_TIME_FORMAT=\${RW_ZSH_TIME_FORMAT:-${p(a)}}`,``,`rw_zsh_arrow() {`,` if [[ "$1" = "start" ]] && (( ! RW_ZSH_DISPLAY_NEW_LINE )); then`,` print -P -- "$RW_ZSH_ARROW_ICON"`,` elif [[ "$1" = "end" ]] && (( RW_ZSH_DISPLAY_NEW_LINE )); then`,` print -P -- "\\n$RW_ZSH_ARROW_ICON"`,` fi`,`}`,``,`rw_zsh_time_segment() {`,` if (( RW_ZSH_DISPLAY_TIME )); then`,` print -P "%D{$RW_ZSH_TIME_FORMAT} "`,` fi`,`}`,``,`rw_zsh_context() {`,` if (( RW_ZSH_DISPLAY_CONTEXT )); then`,' if [[ -n "${SSH_CONNECTION-}${SSH_CLIENT-}${SSH_TTY-}" ]] || (( EUID == 0 )); then',` print -- '%n@%m '`,` else`,` print -- '%n '`,` fi`,` fi`,`}`,``,`rw_zsh_directory() {`,` if (( RW_ZSH_DISPLAY_FULL_CWD )); then`,' print -P "%${RW_ZSH_DIR_TRIM}~ "',` else`,` print -P '%c '`,` fi`,`}`,``,`rw_zsh_custom_variable() {`,` [[ -z "$RW_ZSH_CUSTOM_VARIABLE" ]] && return`,` print -- "%F{${S}}$RW_ZSH_CUSTOM_VARIABLE "`,`}`,``,`rw_zsh_git_info() {`,` (( ! RW_ZSH_DISPLAY_GIT )) && return`,` print -P -- "$(git_prompt_info)"`,`}`,``,`PROMPT=''`,`# Status arrow — success=${g}, error=${_}, vi-cmd=${v}`,`PROMPT+='%(?:%F{${g}}:%F{${_}})%B$(rw_zsh_arrow start)'`,`PROMPT+='%F{${y}}%B$(rw_zsh_time_segment)'`,`PROMPT+='%F{${b}}%B$(rw_zsh_context)'`,`PROMPT+='%F{${x}}%B$(rw_zsh_directory)'`,`PROMPT+='$(rw_zsh_custom_variable)'`,`PROMPT+='$(rw_zsh_git_info)'`,`PROMPT+='%(?:%F{${g}}:%F{${_}})%B$(rw_zsh_arrow end)'`,`PROMPT+='%f%b'`,``):A.push(`PROMPT=${p(e.prompt)}`,``),e.rprompt!==void 0&&A.push(`RPROMPT=${p(e.rprompt)}`,``),A.push(`ZSH_THEME_GIT_PROMPT_PREFIX=${p(E)}`,`ZSH_THEME_GIT_PROMPT_SUFFIX=${p(D)}`,`ZSH_THEME_GIT_PROMPT_CLEAN=${p(O)}`,`ZSH_THEME_GIT_PROMPT_DIRTY=${p(k)}`,``),e.extra&&A.push(e.extra.replace(/\n$/,``),``),`${A.join(`
|
|
50
50
|
`)}\n`}function g(e,a){u(a);let o=a.outputPath??`zsh-themes`,c=l(a.mapTheme(e.tokens));if(c.length===0)throw Error(`@razorwind/zsh mapTheme() returned no themes`);let d={},f=new Set,p=[];for(let e of c){let r=(0,t.slugifyThemeName)(e.name);if(!r)throw TypeError(`@razorwind/zsh theme name "${e.name}" slugifies to an empty string`);if(f.has(r)){let n=2;for(;f.has(`${(0,t.slugifyThemeName)(e.name)}-${n}`);)n+=1;r=`${(0,t.slugifyThemeName)(e.name)}-${n}`}f.add(r);let a=`${r}.zsh-theme`,c=(0,n.join)(o,a);d[c]=s(c,h({...e,name:r}),`shellscript`),p.push({name:r,displayName:i(e),fileName:a})}let m=a.installGuide??r({themes:p}),g=(0,n.join)(o,`INSTALL.md`);return d[g]=s(g,m,`markdown`),d}var _=(0,e.definePlugin)(e=>({name:`zsh`,generate:async t=>{if(!e)throw Error(`@razorwind/zsh requires options: { mapTheme }`);return g(t,e)}}));exports.default=_,Object.defineProperty(exports,"flattenTokens",{enumerable:!0,get:function(){return t.flattenTokens}}),Object.defineProperty(exports,"formatTokenValue",{enumerable:!0,get:function(){return t.formatTokenValue}}),exports.generateZshTheme=g,exports.normalizeThemes=l,exports.renderInstallMd=r,exports.renderZshTheme=h,Object.defineProperty(exports,"resolveTokenSets",{enumerable:!0,get:function(){return t.resolveTokenSets}}),Object.defineProperty(exports,"toCssVar",{enumerable:!0,get:function(){return t.toCssVar}}),exports.toZshFg=f;
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/types.ts","../src/install.ts","../src/generate.ts","../src/index.ts"],"mappings":";;;;;;;;UAyBiB;;EAEf;;EAEA,OAAO;;EAEP;;EAEA;;EAEA;;EAEA;;;;;;;;;;;;UAae;;EAEf;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;;;;;;;;;;;UAae;;;;;EAKf;;;;EAKA;;;;EAKA,SAAS;;;;;;EAOT;;;;;EAMA;;;;EAKA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;;EAQA;;;;;;EAOA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;;;;KAQU,oBACV,QAAQ,SAAS,eAAe,YAC7B,WAAW,aAAa,eAAe;;;;;;UAO3B;;;;;;EAMf;;;;;;EAOA,UAAU;;;;;;;EAQV;;;;;EAMA,eAAe;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/types.ts","../src/install.ts","../src/generate.ts","../src/index.ts"],"mappings":";;;;;;;;UAyBiB;;EAEf;;EAEA,OAAO;;EAEP;;EAEA;;EAEA;;EAEA;;;;;;;;;;;;UAae;;EAEf;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;;;;;;;;;;;UAae;;;;;EAKf;;;;EAKA;;;;EAKA,SAAS;;;;;;EAOT;;;;;EAMA;;;;EAKA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;;EAQA;;;;;;EAOA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;;;;KAQU,oBACV,QAAQ,SAAS,eAAe,YAC7B,WAAW,aAAa,eAAe;;;;;;UAO3B;;;;;;EAMf;;;;;;EAOA,UAAU;;;;;;;EAQV;;;;;EAMA,eAAe;;;;;;;;;;iBChND,gBAAgB;EAC9B,QAAQ;IAAQ;IAAc;IAAqB;;;;;;;;iBC0CrC,gBACd,QAAQ,WAAW,aAAa,eAAe,YAC9C;;;;iBA+Da,QAAQ;;;;;;;;;;iBAyBR,eAAe,OAAO;;;;;;iBAyItB,iBACd,MAAM,QACN,SAAS,mBACR,wBAAwB,QAAQ"}
|
package/dist/index.mjs
CHANGED
|
@@ -46,6 +46,6 @@ source ~/.zshrc
|
|
|
46
46
|
|
|
47
47
|
\`ZSH_THEME\` must match the \`*.zsh-theme\` filename without the extension
|
|
48
48
|
(e.g. \`${t.fileName}\` → \`${t.name}\`).
|
|
49
|
-
`}function d(e){return s(e)}const f={name:`razorwind-zsh`},p={success:`#50fa7b`,error:`#ff5555`,warning:`#f1fa8c`,time:`#50fa7b`,context:`#ff79c6`,directory:`#bd93f9`,custom:`#f1fa8c`,git:`#8be9fd`,gitClean:`#50fa7b`,gitDirty:`#f1fa8c`};function m(e,n,r){return t(e,n,f,r)}function h(e){return i(e)&&typeof e.name==`string`&&e.name.length>0}function g(e){if(Array.isArray(e))return e.map((e,t)=>{if(!h(e))throw TypeError(`@razorwind/zsh mapTheme()[${t}] must be a ZshTheme with name`);return e});if(h(e))return[e];if(!i(e))throw TypeError(`@razorwind/zsh mapTheme() must return a theme, theme array, or theme record`);return Object.entries(e).map(([e,t])=>{if(!h(t))throw TypeError(`@razorwind/zsh mapTheme()["${e}"] must be a ZshTheme with name`);return{...t,name:t.name||e}})}function _(e){if(!e.mapTheme)throw Error(`@razorwind/zsh requires options.mapTheme`)}function v(e){return{success:e?.success??p.success,error:e?.error??p.error,warning:e?.warning??p.warning,time:e?.time??p.time,context:e?.context??p.context,directory:e?.directory??p.directory,custom:e?.custom??p.custom,git:e?.git??p.git,gitClean:e?.gitClean??p.gitClean,gitDirty:e?.gitDirty??p.gitDirty}}function y(e){let t=e.trim();return t.startsWith(`#`)?t.toLowerCase():t}function b(e){return`'${e.replaceAll(`'`,`'"'"'`)}'`}function x(e,t){return e??t?`1`:`0`}function S(e){let t=v(e.colors),n=d(e),r=e.arrowIcon??`➜ `,i=e.timeFormat??`%-H:%M`,a=e.dirTrim??0,o=x(e.displayGit,!0),s=x(e.displayTime,!1),c=x(e.displayContext,!1),l=x(e.displayFullCwd,!1),u=x(e.displayNewLine,!1),f=y(t.success),p=y(t.error),m=y(t.warning),h=y(t.time),g=y(t.context),_=y(t.directory),S=y(t.custom),C=y(t.git),w=y(t.gitClean),T=y(t.gitDirty),E=e.gitPromptPrefix??`%F{${C}}%B(`,D=e.gitPromptSuffix??`%f%b`,O=e.gitPromptClean??`) %F{${w}}%B✓ `,k=e.gitPromptDirty??`) %F{${T}}%B✗ `,A=[`# -*- mode: sh; -*-`,`# vim: set ft=sh :`,`# ${n} — generated by @razorwind/zsh`,`#`,`# Oh My Zsh theme. Segment layout inspired by Dracula for Zsh:`,`# https://draculatheme.com/zsh`,`#`,``,`setopt PROMPT_SUBST`,``];return e.prompt===void 0?A.push(`# Configuration (override in ~/.zshrc before the theme loads)`,`RW_ZSH_DISPLAY_GIT=\${RW_ZSH_DISPLAY_GIT:-${o}}`,`RW_ZSH_DISPLAY_TIME=\${RW_ZSH_DISPLAY_TIME:-${s}}`,`RW_ZSH_DISPLAY_CONTEXT=\${RW_ZSH_DISPLAY_CONTEXT:-${c}}`,`RW_ZSH_DISPLAY_FULL_CWD=\${RW_ZSH_DISPLAY_FULL_CWD:-${l}}`,`RW_ZSH_DIR_TRIM=\${RW_ZSH_DIR_TRIM:-${a}}`,`RW_ZSH_DISPLAY_NEW_LINE=\${RW_ZSH_DISPLAY_NEW_LINE:-${u}}`,`RW_ZSH_ARROW_ICON=\${RW_ZSH_ARROW_ICON:-${b(r)}}`,`RW_ZSH_TIME_FORMAT=\${RW_ZSH_TIME_FORMAT:-${b(i)}}`,``,`rw_zsh_arrow() {`,` if [[ "$1" = "start" ]] && (( ! RW_ZSH_DISPLAY_NEW_LINE )); then`,` print -P -- "$RW_ZSH_ARROW_ICON"`,` elif [[ "$1" = "end" ]] && (( RW_ZSH_DISPLAY_NEW_LINE )); then`,` print -P -- "\\n$RW_ZSH_ARROW_ICON"`,` fi`,`}`,``,`rw_zsh_time_segment() {`,` if (( RW_ZSH_DISPLAY_TIME )); then`,` print -P "%D{$RW_ZSH_TIME_FORMAT} "`,` fi`,`}`,``,`rw_zsh_context() {`,` if (( RW_ZSH_DISPLAY_CONTEXT )); then`,' if [[ -n "${SSH_CONNECTION-}${SSH_CLIENT-}${SSH_TTY-}" ]] || (( EUID == 0 )); then',` print -- '%n@%m '`,` else`,` print -- '%n '`,` fi`,` fi`,`}`,``,`rw_zsh_directory() {`,` if (( RW_ZSH_DISPLAY_FULL_CWD )); then`,' print -P "%${RW_ZSH_DIR_TRIM}~ "',` else`,` print -P '%c '`,` fi`,`}`,``,`rw_zsh_custom_variable() {`,` [[ -z "$RW_ZSH_CUSTOM_VARIABLE" ]] && return`,` print -- "%F{${S}}$RW_ZSH_CUSTOM_VARIABLE "`,`}`,``,`rw_zsh_git_info() {`,` (( ! RW_ZSH_DISPLAY_GIT )) && return`,` print -P -- "$(git_prompt_info)"`,`}`,``,`PROMPT=''`,`# Status arrow — success=${f}, error=${p}, vi-cmd=${m}`,`PROMPT+='%(?:%F{${f}}:%F{${p}})%B$(rw_zsh_arrow start)'`,`PROMPT+='%F{${h}}%B$(rw_zsh_time_segment)'`,`PROMPT+='%F{${g}}%B$(rw_zsh_context)'`,`PROMPT+='%F{${_}}%B$(rw_zsh_directory)'`,`PROMPT+='$(rw_zsh_custom_variable)'`,`PROMPT+='$(rw_zsh_git_info)'`,`PROMPT+='%(?:%F{${f}}:%F{${p}})%B$(rw_zsh_arrow end)'`,`PROMPT+='%f%b'`,``):A.push(`PROMPT=${b(e.prompt)}`,``),e.rprompt!==void 0&&A.push(`RPROMPT=${b(e.rprompt)}`,``),A.push(`ZSH_THEME_GIT_PROMPT_PREFIX=${b(E)}`,`ZSH_THEME_GIT_PROMPT_SUFFIX=${b(D)}`,`ZSH_THEME_GIT_PROMPT_CLEAN=${b(O)}`,`ZSH_THEME_GIT_PROMPT_DIRTY=${b(k)}`,``),e.extra&&A.push(e.extra.replace(/\n$/,``),``),`${A.join(`
|
|
49
|
+
`}function d(e){return s(e)}const f={name:`razorwind-zsh`},p={success:`#50fa7b`,error:`#ff5555`,warning:`#f1fa8c`,time:`#50fa7b`,context:`#ff79c6`,directory:`#bd93f9`,custom:`#f1fa8c`,git:`#8be9fd`,gitClean:`#50fa7b`,gitDirty:`#f1fa8c`};function m(e,n,r){return t(e,n,f,void 0,r)}function h(e){return i(e)&&typeof e.name==`string`&&e.name.length>0}function g(e){if(Array.isArray(e))return e.map((e,t)=>{if(!h(e))throw TypeError(`@razorwind/zsh mapTheme()[${t}] must be a ZshTheme with name`);return e});if(h(e))return[e];if(!i(e))throw TypeError(`@razorwind/zsh mapTheme() must return a theme, theme array, or theme record`);return Object.entries(e).map(([e,t])=>{if(!h(t))throw TypeError(`@razorwind/zsh mapTheme()["${e}"] must be a ZshTheme with name`);return{...t,name:t.name||e}})}function _(e){if(!e.mapTheme)throw Error(`@razorwind/zsh requires options.mapTheme`)}function v(e){return{success:e?.success??p.success,error:e?.error??p.error,warning:e?.warning??p.warning,time:e?.time??p.time,context:e?.context??p.context,directory:e?.directory??p.directory,custom:e?.custom??p.custom,git:e?.git??p.git,gitClean:e?.gitClean??p.gitClean,gitDirty:e?.gitDirty??p.gitDirty}}function y(e){let t=e.trim();return t.startsWith(`#`)?t.toLowerCase():t}function b(e){return`'${e.replaceAll(`'`,`'"'"'`)}'`}function x(e,t){return e??t?`1`:`0`}function S(e){let t=v(e.colors),n=d(e),r=e.arrowIcon??`➜ `,i=e.timeFormat??`%-H:%M`,a=e.dirTrim??0,o=x(e.displayGit,!0),s=x(e.displayTime,!1),c=x(e.displayContext,!1),l=x(e.displayFullCwd,!1),u=x(e.displayNewLine,!1),f=y(t.success),p=y(t.error),m=y(t.warning),h=y(t.time),g=y(t.context),_=y(t.directory),S=y(t.custom),C=y(t.git),w=y(t.gitClean),T=y(t.gitDirty),E=e.gitPromptPrefix??`%F{${C}}%B(`,D=e.gitPromptSuffix??`%f%b`,O=e.gitPromptClean??`) %F{${w}}%B✓ `,k=e.gitPromptDirty??`) %F{${T}}%B✗ `,A=[`# -*- mode: sh; -*-`,`# vim: set ft=sh :`,`# ${n} — generated by @razorwind/zsh`,`#`,`# Oh My Zsh theme. Segment layout inspired by Dracula for Zsh:`,`# https://draculatheme.com/zsh`,`#`,``,`setopt PROMPT_SUBST`,``];return e.prompt===void 0?A.push(`# Configuration (override in ~/.zshrc before the theme loads)`,`RW_ZSH_DISPLAY_GIT=\${RW_ZSH_DISPLAY_GIT:-${o}}`,`RW_ZSH_DISPLAY_TIME=\${RW_ZSH_DISPLAY_TIME:-${s}}`,`RW_ZSH_DISPLAY_CONTEXT=\${RW_ZSH_DISPLAY_CONTEXT:-${c}}`,`RW_ZSH_DISPLAY_FULL_CWD=\${RW_ZSH_DISPLAY_FULL_CWD:-${l}}`,`RW_ZSH_DIR_TRIM=\${RW_ZSH_DIR_TRIM:-${a}}`,`RW_ZSH_DISPLAY_NEW_LINE=\${RW_ZSH_DISPLAY_NEW_LINE:-${u}}`,`RW_ZSH_ARROW_ICON=\${RW_ZSH_ARROW_ICON:-${b(r)}}`,`RW_ZSH_TIME_FORMAT=\${RW_ZSH_TIME_FORMAT:-${b(i)}}`,``,`rw_zsh_arrow() {`,` if [[ "$1" = "start" ]] && (( ! RW_ZSH_DISPLAY_NEW_LINE )); then`,` print -P -- "$RW_ZSH_ARROW_ICON"`,` elif [[ "$1" = "end" ]] && (( RW_ZSH_DISPLAY_NEW_LINE )); then`,` print -P -- "\\n$RW_ZSH_ARROW_ICON"`,` fi`,`}`,``,`rw_zsh_time_segment() {`,` if (( RW_ZSH_DISPLAY_TIME )); then`,` print -P "%D{$RW_ZSH_TIME_FORMAT} "`,` fi`,`}`,``,`rw_zsh_context() {`,` if (( RW_ZSH_DISPLAY_CONTEXT )); then`,' if [[ -n "${SSH_CONNECTION-}${SSH_CLIENT-}${SSH_TTY-}" ]] || (( EUID == 0 )); then',` print -- '%n@%m '`,` else`,` print -- '%n '`,` fi`,` fi`,`}`,``,`rw_zsh_directory() {`,` if (( RW_ZSH_DISPLAY_FULL_CWD )); then`,' print -P "%${RW_ZSH_DIR_TRIM}~ "',` else`,` print -P '%c '`,` fi`,`}`,``,`rw_zsh_custom_variable() {`,` [[ -z "$RW_ZSH_CUSTOM_VARIABLE" ]] && return`,` print -- "%F{${S}}$RW_ZSH_CUSTOM_VARIABLE "`,`}`,``,`rw_zsh_git_info() {`,` (( ! RW_ZSH_DISPLAY_GIT )) && return`,` print -P -- "$(git_prompt_info)"`,`}`,``,`PROMPT=''`,`# Status arrow — success=${f}, error=${p}, vi-cmd=${m}`,`PROMPT+='%(?:%F{${f}}:%F{${p}})%B$(rw_zsh_arrow start)'`,`PROMPT+='%F{${h}}%B$(rw_zsh_time_segment)'`,`PROMPT+='%F{${g}}%B$(rw_zsh_context)'`,`PROMPT+='%F{${_}}%B$(rw_zsh_directory)'`,`PROMPT+='$(rw_zsh_custom_variable)'`,`PROMPT+='$(rw_zsh_git_info)'`,`PROMPT+='%(?:%F{${f}}:%F{${p}})%B$(rw_zsh_arrow end)'`,`PROMPT+='%f%b'`,``):A.push(`PROMPT=${b(e.prompt)}`,``),e.rprompt!==void 0&&A.push(`RPROMPT=${b(e.rprompt)}`,``),A.push(`ZSH_THEME_GIT_PROMPT_PREFIX=${b(E)}`,`ZSH_THEME_GIT_PROMPT_SUFFIX=${b(D)}`,`ZSH_THEME_GIT_PROMPT_CLEAN=${b(O)}`,`ZSH_THEME_GIT_PROMPT_DIRTY=${b(k)}`,``),e.extra&&A.push(e.extra.replace(/\n$/,``),``),`${A.join(`
|
|
50
50
|
`)}\n`}function C(e,t){_(t);let n=t.outputPath??`zsh-themes`,r=g(t.mapTheme(e.tokens));if(r.length===0)throw Error(`@razorwind/zsh mapTheme() returned no themes`);let i={},a=new Set,s=[];for(let e of r){let t=o(e.name);if(!t)throw TypeError(`@razorwind/zsh theme name "${e.name}" slugifies to an empty string`);if(a.has(t)){let n=2;for(;a.has(`${o(e.name)}-${n}`);)n+=1;t=`${o(e.name)}-${n}`}a.add(t);let r=`${t}.zsh-theme`,c=l(n,r);i[c]=m(c,S({...e,name:t}),`shellscript`),s.push({name:t,displayName:d(e),fileName:r})}let c=t.installGuide??u({themes:s}),f=l(n,`INSTALL.md`);return i[f]=m(f,c,`markdown`),i}var w=e(e=>({name:`zsh`,generate:async t=>{if(!e)throw Error(`@razorwind/zsh requires options: { mapTheme }`);return C(t,e)}}));export{w as default,n as flattenTokens,r as formatTokenValue,C as generateZshTheme,g as normalizeThemes,u as renderInstallMd,S as renderZshTheme,a as resolveTokenSets,c as toCssVar,y as toZshFg};
|
|
51
51
|
//# sourceMappingURL=index.mjs.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@razorwind/zsh",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.23",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Razorwind plugin that generates Oh My Zsh themes from design tokens.",
|
|
6
6
|
"repository": {
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
"dependencies": {
|
|
70
70
|
"@power-plant/core": "^0.0.90",
|
|
71
71
|
"@power-plant/dtcg-schema": "^0.0.1",
|
|
72
|
-
"@razorwind/core": "^0.0.
|
|
72
|
+
"@razorwind/core": "^0.0.49"
|
|
73
73
|
},
|
|
74
74
|
"devDependencies": {
|
|
75
75
|
"@powerlines/plugin-tsdown": "^0.1.612",
|
|
@@ -77,5 +77,5 @@
|
|
|
77
77
|
"typescript": "^6.0.3"
|
|
78
78
|
},
|
|
79
79
|
"publishConfig": { "access": "public" },
|
|
80
|
-
"gitHead": "
|
|
80
|
+
"gitHead": "8dc94fb22937f30d41e97f3c6ecff7f45eb81202"
|
|
81
81
|
}
|