@lerret/cli 0.1.0

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 (38) hide show
  1. package/LICENSE +21 -0
  2. package/dist-studio/.bundle-stamp +34 -0
  3. package/dist-studio/assets/asset-runtime-MFjDKvQD.js +129 -0
  4. package/dist-studio/assets/cli-project-source-9dNA_gVa.js +1 -0
  5. package/dist-studio/assets/dev-harness-BH6a8T7l.js +18 -0
  6. package/dist-studio/assets/hosted-project-source-dVGq_8c6.js +135 -0
  7. package/dist-studio/assets/index-BNmJ8c2t.css +1 -0
  8. package/dist-studio/assets/index-EslqdOhg.js +10 -0
  9. package/dist-studio/assets/leaf-marker-command.png +0 -0
  10. package/dist-studio/assets/leaf-marker-comment-box.png +0 -0
  11. package/dist-studio/assets/leaf-marker-homescreen.png +0 -0
  12. package/dist-studio/assets/leafmarker-icon-dark-128.png +0 -0
  13. package/dist-studio/assets/leafmarker-logo-transparent.png +0 -0
  14. package/dist-studio/assets/leafmarker-logo.png +0 -0
  15. package/dist-studio/assets/lerret-logo.png +0 -0
  16. package/dist-studio/assets/lerret-wordmark.svg +3 -0
  17. package/dist-studio/assets/logo-angular.svg +1 -0
  18. package/dist-studio/assets/logo-claude.svg +7 -0
  19. package/dist-studio/assets/logo-codex.svg +1 -0
  20. package/dist-studio/assets/logo-cursor.svg +1 -0
  21. package/dist-studio/assets/logo-javascript.svg +1 -0
  22. package/dist-studio/assets/logo-react.svg +1 -0
  23. package/dist-studio/assets/logo-svelte.svg +1 -0
  24. package/dist-studio/assets/logo-vue.svg +1 -0
  25. package/dist-studio/assets/open-folder-D5OR7eLb.js +8 -0
  26. package/dist-studio/assets/project-studio-BjNaIuRb.js +795 -0
  27. package/dist-studio/assets/project-studio-CKuMOMsC.css +1 -0
  28. package/dist-studio/assets/superwhisper-logo.png +0 -0
  29. package/dist-studio/index.html +47 -0
  30. package/dist-studio/module-sw.js +275 -0
  31. package/package.json +51 -0
  32. package/src/dev.js +373 -0
  33. package/src/export.js +1386 -0
  34. package/src/fs/node-backend.js +631 -0
  35. package/src/lerret.js +143 -0
  36. package/src/resolve-project.js +178 -0
  37. package/src/vite-plugin-lerret-project.js +986 -0
  38. package/src/watcher.js +214 -0
@@ -0,0 +1 @@
1
+ <svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Svelte</title><path d="M10.354 21.125a4.44 4.44 0 0 1-4.765-1.767 4.109 4.109 0 0 1-.703-3.107 3.898 3.898 0 0 1 .134-.522l.105-.321.287.21a7.21 7.21 0 0 0 2.186 1.092l.208.063-.02.208a1.253 1.253 0 0 0 .226.83 1.337 1.337 0 0 0 1.435.533 1.231 1.231 0 0 0 .343-.15l5.59-3.562a1.164 1.164 0 0 0 .524-.778 1.242 1.242 0 0 0-.211-.937 1.338 1.338 0 0 0-1.435-.533 1.23 1.23 0 0 0-.343.15l-2.133 1.36a4.078 4.078 0 0 1-1.135.499 4.44 4.44 0 0 1-4.765-1.766 4.108 4.108 0 0 1-.702-3.108 3.855 3.855 0 0 1 1.742-2.582l5.589-3.563a4.072 4.072 0 0 1 1.135-.499 4.44 4.44 0 0 1 4.765 1.767 4.109 4.109 0 0 1 .703 3.107 3.943 3.943 0 0 1-.134.522l-.105.321-.286-.21a7.204 7.204 0 0 0-2.187-1.093l-.208-.063.02-.207a1.255 1.255 0 0 0-.226-.831 1.337 1.337 0 0 0-1.435-.532 1.231 1.231 0 0 0-.343.15L8.62 9.368a1.162 1.162 0 0 0-.524.778 1.24 1.24 0 0 0 .211.937 1.338 1.338 0 0 0 1.435.533 1.235 1.235 0 0 0 .344-.151l2.132-1.36a4.067 4.067 0 0 1 1.135-.498 4.44 4.44 0 0 1 4.765 1.766 4.108 4.108 0 0 1 .702 3.108 3.857 3.857 0 0 1-1.742 2.583l-5.589 3.562a4.072 4.072 0 0 1-1.135.499m10.358-17.95C18.484-.015 14.082-.96 10.9 1.068L5.31 4.63a6.412 6.412 0 0 0-2.896 4.295 6.753 6.753 0 0 0 .666 4.336 6.43 6.43 0 0 0-.96 2.396 6.833 6.833 0 0 0 1.168 5.167c2.229 3.19 6.63 4.135 9.812 2.108l5.59-3.562a6.41 6.41 0 0 0 2.896-4.295 6.756 6.756 0 0 0-.665-4.336 6.429 6.429 0 0 0 .958-2.396 6.831 6.831 0 0 0-1.167-5.168Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Vue.js</title><path d="M24,1.61H14.06L12,5.16,9.94,1.61H0L12,22.39ZM12,14.08,5.16,2.23H9.59L12,6.41l2.41-4.18h4.43Z"/></svg>
@@ -0,0 +1,8 @@
1
+ import{i as e,n as t,s as n}from"./index-EslqdOhg.js";var r=n(e(),1),i=t();async function a(e){try{return await e.getDirectoryHandle(`.lerret`),!0}catch{return!1}}var o={width:`100vw`,height:`100vh`,display:`flex`,alignItems:`center`,justifyContent:`center`,background:`var(--lm-bg-secondary, #F2EEE6)`,fontFamily:`var(--lm-font-sans, -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif)`,color:`var(--lm-text-primary, #1A1714)`,padding:`var(--lm-space-8, 32px)`,boxSizing:`border-box`},s={display:`flex`,flexDirection:`column`,alignItems:`center`,textAlign:`center`,maxWidth:`480px`,width:`100%`,gap:`var(--lm-space-6, 24px)`},c={fontSize:`var(--lm-size-badge, 11px)`,fontWeight:`var(--lm-weight-semibold, 600)`,letterSpacing:`0.18em`,textTransform:`uppercase`,color:`var(--lm-text-tertiary, #6E6960)`,margin:0},l={fontSize:`var(--lm-size-h2, 20px)`,fontWeight:`var(--lm-weight-semibold, 600)`,lineHeight:`var(--lm-lh-tight, 1.2)`,color:`var(--lm-text-primary, #1A1714)`,margin:0},u={fontSize:`var(--lm-size-body-lg, 14px)`,lineHeight:`var(--lm-lh-relaxed, 1.6)`,color:`var(--lm-text-secondary, #3A3530)`,maxWidth:`40ch`,margin:0},d={display:`inline-flex`,alignItems:`center`,gap:`var(--lm-space-2, 8px)`,padding:`var(--lm-space-3, 12px) var(--lm-space-6, 24px)`,background:`var(--lm-accent, #B85B33)`,color:`var(--lm-bg-primary, #FAF8F2)`,border:`none`,borderRadius:`var(--lm-radius-md, 8px)`,fontSize:`var(--lm-size-body-lg, 14px)`,fontWeight:`var(--lm-weight-semibold, 600)`,fontFamily:`inherit`,cursor:`pointer`,transition:`background var(--lm-duration-fast, 120ms)`},f={display:`inline-flex`,alignItems:`center`,gap:`var(--lm-space-2, 8px)`,padding:`var(--lm-space-3, 12px) var(--lm-space-6, 24px)`,background:`transparent`,color:`var(--lm-accent-text, #92421E)`,border:`1px solid var(--lm-accent-border, rgba(184,91,51,0.20))`,borderRadius:`var(--lm-radius-md, 8px)`,fontSize:`var(--lm-size-body-lg, 14px)`,fontWeight:`var(--lm-weight-semibold, 600)`,fontFamily:`inherit`,cursor:`pointer`,transition:`background var(--lm-duration-fast, 120ms)`},p={background:`var(--lm-bg-primary, #FAF8F2)`,border:`1px solid var(--lm-border, #DDD7CA)`,borderRadius:`var(--lm-radius-lg, 12px)`,padding:`var(--lm-space-6, 24px)`,maxWidth:`40ch`,display:`flex`,flexDirection:`column`,gap:`var(--lm-space-4, 16px)`,alignItems:`center`},m={fontSize:`var(--lm-size-h3, 16px)`,fontWeight:`var(--lm-weight-semibold, 600)`,color:`var(--lm-text-primary, #1A1714)`,margin:0},h={fontSize:`var(--lm-size-body, 13px)`,lineHeight:`var(--lm-lh-body, 1.45)`,color:`var(--lm-text-secondary, #3A3530)`,margin:0};function g(){return(0,i.jsxs)(`svg`,{width:`40`,height:`40`,viewBox:`0 0 40 40`,fill:`none`,"aria-hidden":`true`,style:{flex:`none`},children:[(0,i.jsx)(`rect`,{x:`3`,y:`10`,width:`34`,height:`24`,rx:`3`,fill:`var(--lm-accent-light, rgba(184,91,51,0.10))`}),(0,i.jsx)(`path`,{d:`M3 16h34M3 14c0-2.2 1.8-4 4-4h8l3 4`,stroke:`var(--lm-accent, #B85B33)`,strokeWidth:`1.8`,strokeLinejoin:`round`,fill:`none`})]})}function _({onFolderPicked:e,cliMode:t=!1}){let[n,_]=r.useState(`idle`),[v,y]=r.useState(null),[b,x]=r.useState(!1),[S,C]=r.useState(!1);async function w(){if(t){_(`cli-guide`);return}_(`picking`);let n;try{n=await window.showDirectoryPicker({mode:`readwrite`})}catch{_(`idle`);return}if(!await a(n)){y(n),_(`not-lerret-project`);return}_(`idle`),y(null),typeof e==`function`&&await e(n)}async function T(){await w()}function E(){return(0,i.jsxs)(`div`,{role:`alert`,style:p,"data-testid":`not-lerret-project-message`,children:[(0,i.jsx)(`h2`,{style:m,children:`Not a Lerret project`}),(0,i.jsxs)(`p`,{style:h,children:[`The folder you picked doesn't contain a `,(0,i.jsx)(`code`,{children:`.lerret/`}),` `,`directory. Open a folder that has one, or create a new project with`,` `,(0,i.jsx)(`code`,{children:`npx lerret init`}),`.`]}),(0,i.jsx)(`button`,{type:`button`,style:{...f,...S?{background:`var(--lm-accent-light, rgba(184,91,51,0.10))`}:{}},onClick:T,onMouseEnter:()=>C(!0),onMouseLeave:()=>C(!1),onFocus:()=>C(!1),"aria-label":`Pick another folder`,"data-testid":`pick-another-folder-button`,children:`Pick another folder`})]})}function D(){return(0,i.jsxs)(`div`,{style:p,"data-testid":`cli-mode-guide`,children:[(0,i.jsx)(`h2`,{style:m,children:`Open in your terminal`}),(0,i.jsxs)(`p`,{style:h,children:[`In CLI mode the folder is set by the`,` `,(0,i.jsx)(`code`,{children:`lerret dev`}),` command.`,` `,`Run the following from inside your project:`]}),(0,i.jsx)(`pre`,{style:{background:`var(--lm-bg-tertiary, #E8E2D4)`,borderRadius:`var(--lm-radius-sm, 6px)`,padding:`var(--lm-space-3, 12px) var(--lm-space-4, 16px)`,fontSize:`var(--lm-size-body-sm, 12px)`,fontFamily:`var(--lm-font-mono, monospace)`,color:`var(--lm-text-primary, #1A1714)`,margin:0,whiteSpace:`pre`,overflowX:`auto`,width:`100%`,boxSizing:`border-box`},children:`lerret dev`}),(0,i.jsxs)(`p`,{style:{...h,fontSize:`var(--lm-size-body-sm, 12px)`,color:`var(--lm-text-tertiary, #6E6960)`},children:[`Or pass a path: `,(0,i.jsx)(`code`,{children:`lerret dev --folder ./my-project`})]}),(0,i.jsx)(`button`,{type:`button`,style:{...f,...S?{background:`var(--lm-accent-light, rgba(184,91,51,0.10))`}:{}},onClick:()=>_(`idle`),onMouseEnter:()=>C(!0),onMouseLeave:()=>C(!1),"data-testid":`back-to-entry-button`,children:`Back`})]})}let O=n===`picking`;return(0,i.jsxs)(`main`,{style:o,"aria-label":`Open a Lerret folder`,"data-testid":`open-folder-screen`,children:[(0,i.jsxs)(`div`,{style:s,children:[(0,i.jsx)(g,{}),(0,i.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`var(--lm-space-3, 12px)`,alignItems:`center`},children:[(0,i.jsx)(`p`,{style:c,"aria-hidden":`true`,children:`Lerret`}),(0,i.jsx)(`h1`,{style:l,children:`Open a Lerret folder`}),(0,i.jsx)(`p`,{style:u,children:t?`Run your project with the Lerret CLI — no account or signup needed.`:`Pick a local folder that contains a .lerret/ project. No account or signup needed — your files stay on your machine.`})]}),n===`not-lerret-project`&&E(),n===`cli-guide`&&D(),(n===`idle`||n===`picking`)&&(0,i.jsx)(`button`,{type:`button`,style:{...d,...b&&!O?{background:`var(--lm-accent-hover, #92421E)`}:{},...O?{opacity:.7,cursor:`wait`}:{}},onClick:w,disabled:O,onMouseEnter:()=>x(!0),onMouseLeave:()=>x(!1),"aria-label":t?`Open in terminal`:`Open a Lerret folder`,"data-testid":`open-folder-button`,children:O?`Opening…`:t?`How to open`:`Open a Lerret folder`})]}),(0,i.jsx)(`style`,{children:`
2
+ [data-testid="open-folder-button"]:focus-visible,
3
+ [data-testid="pick-another-folder-button"]:focus-visible,
4
+ [data-testid="back-to-entry-button"]:focus-visible {
5
+ outline: none;
6
+ box-shadow: var(--lm-focus-ring, 0 0 0 2px rgba(184,91,51,0.20));
7
+ }
8
+ `})]})}export{_ as t};