efficient-shell 10.18.0 → 10.20.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 (164) hide show
  1. package/dist/{Browser-UWCA2UQO.js → Browser-3BZPV4OH.js} +14 -14
  2. package/dist/{Documents-NRS6FCCD.js → Documents-N2OS46II.js} +3 -3
  3. package/dist/{Files-OGBZKSHI.js → Files-6MMOX77N.js} +13 -13
  4. package/dist/{Notepad-CMLPGGRI.js → Notepad-QSF2MA3I.js} +8 -8
  5. package/dist/{Preview-XPSNRIYM.js → Preview-YJPVKRQU.js} +1 -1
  6. package/dist/{Spreadsheet-WLRVB7LK.js → Spreadsheet-3P3BL6CS.js} +9 -9
  7. package/dist/ai/index.d.ts +1 -1
  8. package/dist/apps/index.js +1 -1
  9. package/dist/bin/media-host-check.js +1 -1
  10. package/dist/bin/ui-check.js +1 -1
  11. package/dist/chunk-2UVMNA5W.js +4 -0
  12. package/dist/chunk-3FGPFDDK.js +2 -0
  13. package/dist/{chunk-GNNY35U6.js → chunk-43L5K2IX.js} +2 -2
  14. package/dist/chunk-5LBPBT7U.js +4 -0
  15. package/dist/chunk-6CBF7UQ2.js +2 -0
  16. package/dist/chunk-6LNNBA3T.js +2 -0
  17. package/dist/chunk-BTFBXZS2.js +1 -0
  18. package/dist/chunk-DHKRXHJN.js +1 -0
  19. package/dist/chunk-E5G2RURY.js +2 -0
  20. package/dist/chunk-ESDSE6HY.js +2 -0
  21. package/dist/chunk-FMHHOXML.js +2 -0
  22. package/dist/chunk-GFYIVFX2.js +2 -0
  23. package/dist/chunk-GZ7XQBCG.js +2 -0
  24. package/dist/chunk-H5FRVS4Y.js +4 -0
  25. package/dist/chunk-H62WUDPO.js +2 -0
  26. package/dist/chunk-HFAOJ4OJ.js +2 -0
  27. package/dist/chunk-HUA3TGMM.js +1 -0
  28. package/dist/chunk-I6DN2I6O.js +4 -0
  29. package/dist/chunk-IS6FC32P.js +2 -0
  30. package/dist/chunk-JNSMBHNH.js +2 -0
  31. package/dist/chunk-K5VNHEVL.js +2 -0
  32. package/dist/chunk-LE2UGKUT.js +4 -0
  33. package/dist/chunk-NLUSV66Z.js +2 -0
  34. package/dist/chunk-NO6DG2IV.js +2 -0
  35. package/dist/chunk-NQJL6B67.js +2 -0
  36. package/dist/chunk-NR6V243X.js +4 -0
  37. package/dist/chunk-O3UL2XW5.js +2 -0
  38. package/dist/chunk-QRTRKWCZ.js +2 -0
  39. package/dist/chunk-RH2BAZKY.js +4 -0
  40. package/dist/chunk-RIT7ZXEY.js +4 -0
  41. package/dist/chunk-RJ4GWBBG.js +4 -0
  42. package/dist/chunk-RMUSRDWV.js +1 -0
  43. package/dist/chunk-S5IAQ7ZS.js +2 -0
  44. package/dist/chunk-T23TIJ4P.js +1 -0
  45. package/dist/chunk-T2FITGKQ.js +2 -0
  46. package/dist/chunk-T7CXUYI4.js +4 -0
  47. package/dist/chunk-TQ2M7V4E.js +2 -0
  48. package/dist/chunk-TSP7UFQB.js +2 -0
  49. package/dist/chunk-UO6GQPT3.js +2 -0
  50. package/dist/chunk-W33HIHEP.js +2 -0
  51. package/dist/{chunk-KDXH6FLQ.js → chunk-XLCZHPCQ.js} +1 -1
  52. package/dist/chunk-XNSBAJ7T.js +4 -0
  53. package/dist/chunk-ZTYBH5FO.js +4 -0
  54. package/dist/format/index.d.ts +1 -0
  55. package/dist/format/index.js +1 -1
  56. package/dist/forms/Select.d.ts +1 -1
  57. package/dist/forms/TextToolbar.d.ts +1 -1
  58. package/dist/forms/textAlign.d.ts +1 -1
  59. package/dist/hooks/useTheme.d.ts +1 -1
  60. package/dist/icons/efficient-glyphs.d.ts +12 -0
  61. package/dist/icons/efficient-glyphs.js +1 -1
  62. package/dist/icons/efficient-looks.d.ts +24 -0
  63. package/dist/icons/efficient-looks.js +1 -1
  64. package/dist/icons/efficient-meanings.d.ts +12 -0
  65. package/dist/icons/efficient-meanings.js +1 -1
  66. package/dist/icons/efficient.d.ts +12 -0
  67. package/dist/icons/efficient.js +1 -1
  68. package/dist/icons/glyphs/BoxItemAlignmentIcon.d.ts +8 -0
  69. package/dist/icons/glyphs/BoxItemAlignmentIcon.js +1 -0
  70. package/dist/icons/glyphs/BoxJustifyIcon.d.ts +8 -0
  71. package/dist/icons/glyphs/BoxJustifyIcon.js +1 -0
  72. package/dist/icons/glyphs/BoxXBetweenIcon.d.ts +8 -0
  73. package/dist/icons/glyphs/BoxXBetweenIcon.js +1 -0
  74. package/dist/icons/glyphs/BoxXCenterIcon.d.ts +8 -0
  75. package/dist/icons/glyphs/BoxXCenterIcon.js +1 -0
  76. package/dist/icons/glyphs/BoxXEndIcon.d.ts +8 -0
  77. package/dist/icons/glyphs/BoxXEndIcon.js +1 -0
  78. package/dist/icons/glyphs/BoxXStartIcon.d.ts +8 -0
  79. package/dist/icons/glyphs/BoxXStartIcon.js +1 -0
  80. package/dist/icons/glyphs/BoxXStretchIcon.d.ts +8 -0
  81. package/dist/icons/glyphs/BoxXStretchIcon.js +1 -0
  82. package/dist/icons/glyphs/BoxYBetweenIcon.d.ts +8 -0
  83. package/dist/icons/glyphs/BoxYBetweenIcon.js +1 -0
  84. package/dist/icons/glyphs/BoxYCenterIcon.d.ts +8 -0
  85. package/dist/icons/glyphs/BoxYCenterIcon.js +1 -0
  86. package/dist/icons/glyphs/BoxYEndIcon.d.ts +8 -0
  87. package/dist/icons/glyphs/BoxYEndIcon.js +1 -0
  88. package/dist/icons/glyphs/BoxYStartIcon.d.ts +8 -0
  89. package/dist/icons/glyphs/BoxYStartIcon.js +1 -0
  90. package/dist/icons/glyphs/BoxYStretchIcon.d.ts +8 -0
  91. package/dist/icons/glyphs/BoxYStretchIcon.js +1 -0
  92. package/dist/icons/index.d.ts +2 -2
  93. package/dist/icons/index.js +1 -1
  94. package/dist/icons/looks/BoxItemAlignmentMiniIcon.d.ts +8 -0
  95. package/dist/icons/looks/BoxItemAlignmentMiniIcon.js +1 -0
  96. package/dist/icons/looks/BoxItemAlignmentSolidIcon.d.ts +8 -0
  97. package/dist/icons/looks/BoxItemAlignmentSolidIcon.js +1 -0
  98. package/dist/icons/looks/BoxJustifyMiniIcon.d.ts +8 -0
  99. package/dist/icons/looks/BoxJustifyMiniIcon.js +1 -0
  100. package/dist/icons/looks/BoxJustifySolidIcon.d.ts +8 -0
  101. package/dist/icons/looks/BoxJustifySolidIcon.js +1 -0
  102. package/dist/icons/looks/BoxXBetweenMiniIcon.d.ts +8 -0
  103. package/dist/icons/looks/BoxXBetweenMiniIcon.js +1 -0
  104. package/dist/icons/looks/BoxXBetweenSolidIcon.d.ts +8 -0
  105. package/dist/icons/looks/BoxXBetweenSolidIcon.js +1 -0
  106. package/dist/icons/looks/BoxXCenterMiniIcon.d.ts +8 -0
  107. package/dist/icons/looks/BoxXCenterMiniIcon.js +1 -0
  108. package/dist/icons/looks/BoxXCenterSolidIcon.d.ts +8 -0
  109. package/dist/icons/looks/BoxXCenterSolidIcon.js +1 -0
  110. package/dist/icons/looks/BoxXEndMiniIcon.d.ts +8 -0
  111. package/dist/icons/looks/BoxXEndMiniIcon.js +1 -0
  112. package/dist/icons/looks/BoxXEndSolidIcon.d.ts +8 -0
  113. package/dist/icons/looks/BoxXEndSolidIcon.js +1 -0
  114. package/dist/icons/looks/BoxXStartMiniIcon.d.ts +8 -0
  115. package/dist/icons/looks/BoxXStartMiniIcon.js +1 -0
  116. package/dist/icons/looks/BoxXStartSolidIcon.d.ts +8 -0
  117. package/dist/icons/looks/BoxXStartSolidIcon.js +1 -0
  118. package/dist/icons/looks/BoxXStretchMiniIcon.d.ts +8 -0
  119. package/dist/icons/looks/BoxXStretchMiniIcon.js +1 -0
  120. package/dist/icons/looks/BoxXStretchSolidIcon.d.ts +8 -0
  121. package/dist/icons/looks/BoxXStretchSolidIcon.js +1 -0
  122. package/dist/icons/looks/BoxYBetweenMiniIcon.d.ts +8 -0
  123. package/dist/icons/looks/BoxYBetweenMiniIcon.js +1 -0
  124. package/dist/icons/looks/BoxYBetweenSolidIcon.d.ts +8 -0
  125. package/dist/icons/looks/BoxYBetweenSolidIcon.js +1 -0
  126. package/dist/icons/looks/BoxYCenterMiniIcon.d.ts +8 -0
  127. package/dist/icons/looks/BoxYCenterMiniIcon.js +1 -0
  128. package/dist/icons/looks/BoxYCenterSolidIcon.d.ts +8 -0
  129. package/dist/icons/looks/BoxYCenterSolidIcon.js +1 -0
  130. package/dist/icons/looks/BoxYEndMiniIcon.d.ts +8 -0
  131. package/dist/icons/looks/BoxYEndMiniIcon.js +1 -0
  132. package/dist/icons/looks/BoxYEndSolidIcon.d.ts +8 -0
  133. package/dist/icons/looks/BoxYEndSolidIcon.js +1 -0
  134. package/dist/icons/looks/BoxYStartMiniIcon.d.ts +8 -0
  135. package/dist/icons/looks/BoxYStartMiniIcon.js +1 -0
  136. package/dist/icons/looks/BoxYStartSolidIcon.d.ts +8 -0
  137. package/dist/icons/looks/BoxYStartSolidIcon.js +1 -0
  138. package/dist/icons/looks/BoxYStretchMiniIcon.d.ts +8 -0
  139. package/dist/icons/looks/BoxYStretchMiniIcon.js +1 -0
  140. package/dist/icons/looks/BoxYStretchSolidIcon.d.ts +8 -0
  141. package/dist/icons/looks/BoxYStretchSolidIcon.js +1 -0
  142. package/dist/icons/looks/map.js +1 -1
  143. package/dist/icons/payment.js +1 -1
  144. package/dist/icons/sets.js +1 -1
  145. package/dist/index.d.ts +5 -5
  146. package/dist/index.js +110 -110
  147. package/dist/names-bEzx4RQ8.d.ts +23 -0
  148. package/dist/shell/LanguageSelect.js +1 -1
  149. package/dist/shell/Markdown.d.ts +1 -1
  150. package/dist/telemetry/index.js +1 -1
  151. package/dist/templates/ErrorBoundary.d.ts +1 -1
  152. package/dist/tokens/type.d.ts +32 -1
  153. package/dist/tokens/type.js +1 -1
  154. package/dist/ui/index.d.ts +2 -2
  155. package/dist/ui/index.js +1 -1
  156. package/dist/version.js +1 -1
  157. package/package.json +1 -1
  158. package/dist/chunk-HJCUDXLV.js +0 -1
  159. package/dist/chunk-LH7IKIGE.js +0 -1
  160. package/dist/chunk-VNKAIEJ6.js +0 -1
  161. package/dist/chunk-XSJHN2GD.js +0 -1
  162. package/dist/chunk-YG2TWBDH.js +0 -1
  163. package/dist/names-CkQuQ47O.d.ts +0 -23
  164. /package/dist/{chunk-Y2AGVGOP.js → chunk-BDUWYLPI.js} +0 -0
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- import{createRequire as e}from"module";import{join as n}from"path";import{existsSync as t,readFileSync as i,readdirSync as r}from"fs";var o=/[.+^$()|[\]\\]/g;function s(e){let n="",t=0;for(let i=0;i<e.length;i++){const r=e[i];"*"===r?"*"===e[i+1]?"/"===e[i+2]?(n+="(?:[^/]+/)*",i+=2):(n+=".*",i+=1):n+="[^/]*":"?"===r?n+="[^/]":"{"===r?(n+="(?:",t+=1):"}"===r&&t>0?(n+=")",t-=1):n+=","===r&&t>0?"|":r.replace(o,"\\$&")}if(0!==t)throw new Error(`unbalanced { in glob "${e}"`);return new RegExp(`^${n}$`)}function a(e){const n=e.map(s);return e=>n.some(n=>n.test(e))}var c=new Set(["node_modules",".git"]),g=new Set(["dist","coverage",".next",".turbo"]);function l(e){const n=e.search(/[*?{]/),t=-1===n?e:e.slice(0,n),i=t.lastIndexOf("/");return-1===i?"":t.slice(0,i)}function u(e,t){const i=a(t),o=[...new Set(t.map(l))].sort(),s=o.filter(e=>!o.some(n=>n!==e&&(""===n||e.startsWith(`${n}/`)))),u=new Set,d=t=>{let o;try{o=r(n(e,t),{withFileTypes:!0})}catch{return}for(const e of o){const n=t?`${t}/${e.name}`:e.name;e.isDirectory()?c.has(e.name)||""===t&&g.has(e.name)||d(n):e.isFile()&&i(n)&&u.add(n)}};for(const e of s)d(e);return[...u].sort(h)}var h=(e,n)=>e<n?-1:e>n?1:0,d={busy:{words:["Accepting","Adding","Applying","Approving","Arranging","Asking","Assigning","Booking","Building","Calculating","Cancelling","Capturing","Changing","Checking","Choosing","Closing","Combining","Comparing","Completing","Confirming","Connecting","Converting","Copying","Correcting","Counting","Creating","Deleting","Detaching","Downloading","Drawing","Duplicating","Emailing","Ending","Exporting","Fetching","Filing","Finding","Flushing","Generating","Grouping","Importing","Linking","Loading","Locating","Looking","Making","Marking","Matching","Measuring","Merging","Moving","Opening","Ordering","Paying","Pending","Posting","Preparing","Previewing","Pricing","Processing","Provisioning","Publishing","Purging","Pushing","Queued","Queuing","Quoting","Re-booking","Re-importing","Re-opening","Reading","Rebooting","Rebuilding","Receiving","Reconciling","Reconnecting","Recording","Refreshing","Refunding","Regenerating","Registering","Reinstating","Rejecting","Removing","Reopening","Requesting","Resending","Resetting","Resolving","Restarting","Restoring","Resuming","Retrying","Reversing","Reverting","Running","Saving","Searching","Sending","Setting","Settling","Sharing","Signing","Splitting","Starting","Submitting","Suggesting","Switching","Syncing","Taking","Testing","Transferring","Typing","Updating","Uploading","Verifying","Waiting","Withdrawing","Working"]}};new Set((d.busy?.words??[]).map(e=>e.toLowerCase()));var f=class extends Error{},m=new Set(["$schema","schema","include","exclude","allow"]),p=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),w=e=>"string"==typeof e&&""!==e.trim();var y="d3as2htf4hwbtr.cloudfront.net",S={dealer:{bucket:"inovit-dealer-portal-assets",hosts:["d201q0i87q901p.cloudfront.net"],key_pattern:"^marketing/"},media:{bucket:"regis-media-production",hosts:["media.regis.design","d21nnr9ivf9hcc.cloudfront.net"],key_pattern:"^[a-z0-9_]+/storefront/(?!uploads/thumbs/)"},site:{bucket:"inovit-ecommerce-media",hosts:["cdn.inovit.com","dhxlibd8r3td0.cloudfront.net"],key_pattern:"^images/"}},$=Object.values(S),R=Object.freeze([...new Set([...$.flatMap(e=>e.hosts),y,...$.map(e=>e.bucket)])].sort()),b=new RegExp([...R.map(e=>{return`(?<![\\w-])${n=e,n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}(?![\\w-])`;var n}),"(?<![\\w-])[a-z0-9]+\\.cloudfront\\.net(?![\\w-])","(?<![\\w-])(?:[a-z0-9-]+\\.)*s3(?:[.-][a-z0-9-]+)*\\.amazonaws\\.com(?![\\w-])","s3://"].join("|"),"gi");function k(e,n,t){const i=e.createSourceFile(n,t,e.ScriptTarget.Latest,!0,function(e,n){return n.endsWith(".tsx")?e.ScriptKind.TSX:n.endsWith(".jsx")?e.ScriptKind.JSX:/\.[cm]?js$/.test(n)?e.ScriptKind.JS:e.ScriptKind.TS}(e,n)),r=[],o=(e,n)=>{const t=i.getLineAndCharacterOfPosition(e.getStart(i)).line+1;for(const e of function(e){return[...e.matchAll(b)].map(e=>({match:e[0],index:e.index??0}))}(n)){const i=n.slice(0,e.index);r.push({line:t+(i.match(/\n/g)?.length??0),match:e.match})}},s=n=>{e.isStringLiteral(n)||e.isNoSubstitutionTemplateLiteral(n)||e.isTemplateHead(n)||e.isTemplateMiddle(n)||e.isTemplateTail(n)?o(n,n.text):e.isRegularExpressionLiteral(n)&&o(n,n.text.replace(/\\(.)/g,"$1")),e.forEachChild(n,s)};return s(i),r}var v="media-host-check.config.json",x="efficient-shell-media-host-check",C=`${x}: no code writes a media origin; files are reached through the storage backend, the API's URL, media() or imageCopyUrl() (harness API-15, SSOT-2).\n\n ${x} check this repository; exits 1 on a finding\n ${x} --json print the result as JSON\n\nRefused in any string, template or regular expression: every host and bucket in\nthe image-copies contract, any *.cloudfront.net host, any S3 endpoint, and s3://.\nReads ${v} in the current directory.`;function A(e,t,r){const o=[],s=a(r.exclude);for(const e of r.include)0===u(t,[e]).length&&o.push(`include "${e}" matches no file; delete it`);const c=u(t,r.include).filter(e=>(e=>/\.(?:[cm]?[jt]s|[jt]sx)$/.test(e)&&!e.endsWith(".d.ts"))(e)&&!s(e)),g=[];for(const r of c)for(const o of k(e,r,i(n(t,r),"utf8")))g.push({file:r,...o});const l=(e,n)=>e.toLowerCase()===n.toLowerCase();for(const e of r.allow)g.some(n=>n.file===e.file&&l(e.match,n.match))||o.push(`allow ${e.file} "${e.match}" matches nothing any more; delete it`);return{files:c.length,findings:g.filter(e=>!(e=>r.allow.some(n=>n.file===e.file&&l(n.match,e.match)))(e)),problems:o}}process.exitCode=function(e,r){let o=!1;for(const n of e){if("--help"===n||"-h"===n)return r.out(C),0;if("--version"===n||"-v"===n)return r.out(r.version),0;if("--json"!==n)return r.err(`${x}: unknown argument "${n}"\n\n${C}`),2;o=!0}const s=n(r.cwd,v);if(!t(s))return r.err(`${x}: no ${v} in ${r.cwd}. Run it from the repository root.`),2;let a;try{const e=function(e,n="media-host-check.config.json"){const t=[];if(!p(e))throw new f(`${n}: expected an object`);for(const n of Object.keys(e))m.has(n)||t.push(`unknown key "${n}"`);1!==e.schema&&t.push('"schema" must be 1');const i=(n,i)=>{const r=e[n];return void 0!==r||i?!Array.isArray(r)||!r.every(w)||i&&0===r.length?(t.push(`"${n}" must be ${i?"a non-empty":"an"} array of globs`),[]):r:[]},r=i("include",!0),o=i("exclude",!1),s=[];void 0===e.allow||Array.isArray(e.allow)||t.push('"allow" must be an array');for(const[n,i]of(Array.isArray(e.allow)?e.allow:[]).entries()){if(!(p(i)&&w(i.file)&&w(i.match)&&w(i.reason))){t.push(`allow[${n}] needs "file", "match" and "reason", each a non-empty string`);continue}const e=Object.keys(i).filter(e=>!["file","match","reason"].includes(e));e.length&&t.push(`allow[${n}] has unknown keys: ${e.join(", ")}`),s.push({file:i.file,match:i.match,reason:i.reason})}if(t.length)throw new f(`${n}:\n ${t.join("\n ")}`);return{schema:1,include:r,exclude:o,allow:s}}(JSON.parse(i(s,"utf8")),v);a=A(r.loadTypeScript(),r.cwd,e)}catch(e){return r.err(`${x}: ${e instanceof f||e instanceof SyntaxError?e.message:String(e)}`),2}const c=a.findings.length>0||a.problems.length>0;if(o)return r.out(JSON.stringify({ok:!c,...a},null,2)),c?1:0;if(!c)return r.out(`${x}: ${a.files} files, no media origin written in code (harness API-15, SSOT-2).`),0;for(const e of a.findings)r.err(`${e.file}:${e.line} "${e.match}" is a media origin written in code.`);for(const e of a.problems)r.err(`${v}: ${e}`);return a.findings.length&&r.err(`\nReach the file through the storage backend, the URL the API returns, media() or imageCopyUrl() (harness API-15, SSOT-2). An origin that must stay goes in "allow" in ${v}, with its reason.`),1}(process.argv.slice(2),{cwd:process.cwd(),out:e=>console.log(e),err:e=>console.error(e),loadTypeScript:()=>function(t){for(const i of[n(process.cwd(),"package.json"),t])try{return e(i)("typescript")}catch{}throw new Error("typescript is not installed")}(import.meta.url),version:"10.18.0"});
2
+ import{createRequire as e}from"module";import{join as n}from"path";import{existsSync as t,readFileSync as i,readdirSync as r}from"fs";var o=/[.+^$()|[\]\\]/g;function s(e){let n="",t=0;for(let i=0;i<e.length;i++){const r=e[i];"*"===r?"*"===e[i+1]?"/"===e[i+2]?(n+="(?:[^/]+/)*",i+=2):(n+=".*",i+=1):n+="[^/]*":"?"===r?n+="[^/]":"{"===r?(n+="(?:",t+=1):"}"===r&&t>0?(n+=")",t-=1):n+=","===r&&t>0?"|":r.replace(o,"\\$&")}if(0!==t)throw new Error(`unbalanced { in glob "${e}"`);return new RegExp(`^${n}$`)}function a(e){const n=e.map(s);return e=>n.some(n=>n.test(e))}var c=new Set(["node_modules",".git"]),g=new Set(["dist","coverage",".next",".turbo"]);function l(e){const n=e.search(/[*?{]/),t=-1===n?e:e.slice(0,n),i=t.lastIndexOf("/");return-1===i?"":t.slice(0,i)}function u(e,t){const i=a(t),o=[...new Set(t.map(l))].sort(),s=o.filter(e=>!o.some(n=>n!==e&&(""===n||e.startsWith(`${n}/`)))),u=new Set,d=t=>{let o;try{o=r(n(e,t),{withFileTypes:!0})}catch{return}for(const e of o){const n=t?`${t}/${e.name}`:e.name;e.isDirectory()?c.has(e.name)||""===t&&g.has(e.name)||d(n):e.isFile()&&i(n)&&u.add(n)}};for(const e of s)d(e);return[...u].sort(h)}var h=(e,n)=>e<n?-1:e>n?1:0,d={busy:{words:["Accepting","Adding","Applying","Approving","Arranging","Asking","Assigning","Booking","Building","Calculating","Cancelling","Capturing","Changing","Checking","Choosing","Closing","Combining","Comparing","Completing","Confirming","Connecting","Converting","Copying","Correcting","Counting","Creating","Deleting","Detaching","Downloading","Drawing","Duplicating","Emailing","Ending","Exporting","Fetching","Filing","Finding","Flushing","Generating","Grouping","Importing","Linking","Loading","Locating","Looking","Making","Marking","Matching","Measuring","Merging","Moving","Opening","Ordering","Paying","Pending","Posting","Preparing","Previewing","Pricing","Processing","Provisioning","Publishing","Purging","Pushing","Queued","Queuing","Quoting","Re-booking","Re-importing","Re-opening","Reading","Rebooting","Rebuilding","Receiving","Reconciling","Reconnecting","Recording","Refreshing","Refunding","Regenerating","Registering","Reinstating","Rejecting","Removing","Reopening","Requesting","Resending","Resetting","Resolving","Restarting","Restoring","Resuming","Retrying","Reversing","Reverting","Running","Saving","Searching","Sending","Setting","Settling","Sharing","Signing","Splitting","Starting","Submitting","Suggesting","Switching","Syncing","Taking","Testing","Transferring","Typing","Updating","Uploading","Verifying","Waiting","Withdrawing","Working"]}};new Set((d.busy?.words??[]).map(e=>e.toLowerCase()));var f=class extends Error{},m=new Set(["$schema","schema","include","exclude","allow"]),p=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),w=e=>"string"==typeof e&&""!==e.trim();var y="d3as2htf4hwbtr.cloudfront.net",S={dealer:{bucket:"inovit-dealer-portal-assets",hosts:["d201q0i87q901p.cloudfront.net"],key_pattern:"^marketing/"},media:{bucket:"regis-media-production",hosts:["media.regis.design","d21nnr9ivf9hcc.cloudfront.net"],key_pattern:"^[a-z0-9_]+/storefront/(?!uploads/thumbs/)"},site:{bucket:"inovit-ecommerce-media",hosts:["cdn.inovit.com","dhxlibd8r3td0.cloudfront.net"],key_pattern:"^images/"}},$=Object.values(S),R=Object.freeze([...new Set([...$.flatMap(e=>e.hosts),y,...$.map(e=>e.bucket)])].sort()),b=new RegExp([...R.map(e=>{return`(?<![\\w-])${n=e,n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}(?![\\w-])`;var n}),"(?<![\\w-])[a-z0-9]+\\.cloudfront\\.net(?![\\w-])","(?<![\\w-])(?:[a-z0-9-]+\\.)*s3(?:[.-][a-z0-9-]+)*\\.amazonaws\\.com(?![\\w-])","s3://"].join("|"),"gi");function k(e,n,t){const i=e.createSourceFile(n,t,e.ScriptTarget.Latest,!0,function(e,n){return n.endsWith(".tsx")?e.ScriptKind.TSX:n.endsWith(".jsx")?e.ScriptKind.JSX:/\.[cm]?js$/.test(n)?e.ScriptKind.JS:e.ScriptKind.TS}(e,n)),r=[],o=(e,n)=>{const t=i.getLineAndCharacterOfPosition(e.getStart(i)).line+1;for(const e of function(e){return[...e.matchAll(b)].map(e=>({match:e[0],index:e.index??0}))}(n)){const i=n.slice(0,e.index);r.push({line:t+(i.match(/\n/g)?.length??0),match:e.match})}},s=n=>{e.isStringLiteral(n)||e.isNoSubstitutionTemplateLiteral(n)||e.isTemplateHead(n)||e.isTemplateMiddle(n)||e.isTemplateTail(n)?o(n,n.text):e.isRegularExpressionLiteral(n)&&o(n,n.text.replace(/\\(.)/g,"$1")),e.forEachChild(n,s)};return s(i),r}var v="media-host-check.config.json",x="efficient-shell-media-host-check",C=`${x}: no code writes a media origin; files are reached through the storage backend, the API's URL, media() or imageCopyUrl() (harness API-15, SSOT-2).\n\n ${x} check this repository; exits 1 on a finding\n ${x} --json print the result as JSON\n\nRefused in any string, template or regular expression: every host and bucket in\nthe image-copies contract, any *.cloudfront.net host, any S3 endpoint, and s3://.\nReads ${v} in the current directory.`;function A(e,t,r){const o=[],s=a(r.exclude);for(const e of r.include)0===u(t,[e]).length&&o.push(`include "${e}" matches no file; delete it`);const c=u(t,r.include).filter(e=>(e=>/\.(?:[cm]?[jt]s|[jt]sx)$/.test(e)&&!e.endsWith(".d.ts"))(e)&&!s(e)),g=[];for(const r of c)for(const o of k(e,r,i(n(t,r),"utf8")))g.push({file:r,...o});const l=(e,n)=>e.toLowerCase()===n.toLowerCase();for(const e of r.allow)g.some(n=>n.file===e.file&&l(e.match,n.match))||o.push(`allow ${e.file} "${e.match}" matches nothing any more; delete it`);return{files:c.length,findings:g.filter(e=>!(e=>r.allow.some(n=>n.file===e.file&&l(n.match,e.match)))(e)),problems:o}}process.exitCode=function(e,r){let o=!1;for(const n of e){if("--help"===n||"-h"===n)return r.out(C),0;if("--version"===n||"-v"===n)return r.out(r.version),0;if("--json"!==n)return r.err(`${x}: unknown argument "${n}"\n\n${C}`),2;o=!0}const s=n(r.cwd,v);if(!t(s))return r.err(`${x}: no ${v} in ${r.cwd}. Run it from the repository root.`),2;let a;try{const e=function(e,n="media-host-check.config.json"){const t=[];if(!p(e))throw new f(`${n}: expected an object`);for(const n of Object.keys(e))m.has(n)||t.push(`unknown key "${n}"`);1!==e.schema&&t.push('"schema" must be 1');const i=(n,i)=>{const r=e[n];return void 0!==r||i?!Array.isArray(r)||!r.every(w)||i&&0===r.length?(t.push(`"${n}" must be ${i?"a non-empty":"an"} array of globs`),[]):r:[]},r=i("include",!0),o=i("exclude",!1),s=[];void 0===e.allow||Array.isArray(e.allow)||t.push('"allow" must be an array');for(const[n,i]of(Array.isArray(e.allow)?e.allow:[]).entries()){if(!(p(i)&&w(i.file)&&w(i.match)&&w(i.reason))){t.push(`allow[${n}] needs "file", "match" and "reason", each a non-empty string`);continue}const e=Object.keys(i).filter(e=>!["file","match","reason"].includes(e));e.length&&t.push(`allow[${n}] has unknown keys: ${e.join(", ")}`),s.push({file:i.file,match:i.match,reason:i.reason})}if(t.length)throw new f(`${n}:\n ${t.join("\n ")}`);return{schema:1,include:r,exclude:o,allow:s}}(JSON.parse(i(s,"utf8")),v);a=A(r.loadTypeScript(),r.cwd,e)}catch(e){return r.err(`${x}: ${e instanceof f||e instanceof SyntaxError?e.message:String(e)}`),2}const c=a.findings.length>0||a.problems.length>0;if(o)return r.out(JSON.stringify({ok:!c,...a},null,2)),c?1:0;if(!c)return r.out(`${x}: ${a.files} files, no media origin written in code (harness API-15, SSOT-2).`),0;for(const e of a.findings)r.err(`${e.file}:${e.line} "${e.match}" is a media origin written in code.`);for(const e of a.problems)r.err(`${v}: ${e}`);return a.findings.length&&r.err(`\nReach the file through the storage backend, the URL the API returns, media() or imageCopyUrl() (harness API-15, SSOT-2). An origin that must stay goes in "allow" in ${v}, with its reason.`),1}(process.argv.slice(2),{cwd:process.cwd(),out:e=>console.log(e),err:e=>console.error(e),loadTypeScript:()=>function(t){for(const i of[n(process.cwd(),"package.json"),t])try{return e(i)("typescript")}catch{}throw new Error("typescript is not installed")}(import.meta.url),version:"10.20.0"});
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- import{execFileSync as e}from"child_process";import{createRequire as t}from"module";import{join as n}from"path";import{existsSync as i,readFileSync as o,writeFileSync as s,readdirSync as r}from"fs";var a=["button","input","range","textarea","select","dialog","title","portal","native","dark","hex","radius","spacing","font-size","z-index","shadow","kit","icon","svg","kit-dep","chart","chart-dep","ellipsis-label","colour"],l=e=>"string"==typeof e&&a.includes(e),c=["kit-dep","chart-dep"],d=e=>c.includes(e),u=a.filter(e=>!d(e)),h={button:{counts:"a raw <button>",instead:"Button or IconButton from efficient-shell/ui"},input:{counts:"a raw <input> (not hidden, not a range)",instead:"Input, InputNumber, Checkbox, Radio or Switch from efficient-shell/ui"},range:{counts:'a raw <input type="range">',instead:"Slider from efficient-shell/ui"},textarea:{counts:"a raw <textarea>",instead:"Textarea from efficient-shell/ui"},select:{counts:"a raw <select>",instead:"Select or SearchableSelect from efficient-shell/ui"},dialog:{counts:'a raw <dialog>, or role="dialog" / role="alertdialog" on a raw element',instead:"Dialog or Modal from efficient-shell"},title:{counts:"a title= on a raw element (the browser's own tooltip)",instead:"Tooltip from efficient-shell/ui (harness UI-17)"},portal:{counts:"a createPortal(…) call (a layer the file floats itself)",instead:"Popover, PopupMenu, DropdownMenu, Tooltip or Dialog from efficient-shell/ui"},native:{counts:"window.confirm / alert / prompt, or a bare call that resolves to one",instead:"confirm, confirmDestructive, prompt or toast from efficient-shell (harness UI-20)"},dark:{counts:"a dark: variant in a class string",instead:"the light Tailwind class alone; the shell remaps it in dark mode (harness UI-7)"},hex:{counts:"a hex colour literal in a .tsx string",instead:"a colour role from efficient-shell: its utility or var(--role), COLOUR_ROLES lists them (harness FT-1; the colour kind counts palette classes too)"},radius:{counts:"a literal corner radius (an arbitrary-value radius class, or an inline borderRadius)",instead:"a radius utility from the scale or a role token such as rounded-(--radius-control); the theme sets how round they are (harness UI-7)"},spacing:{counts:"a padding, margin or gap off the scale (6px, 10px, 14px …) or written as a literal length (an arbitrary-value class, an inline style)",instead:"a step of the scale 2/4/8/12/16/20/24/32/40/48 — a Tailwind step, or a role such as var(--space-control-x) (owner ruling 2026-10-12)"},"font-size":{counts:"a literal font size (an arbitrary-value text class, an inline fontSize)",instead:"a type step 9/11/12/14/16/18/20/24/30 — Tailwind's 3xs … 3xl text steps (owner ruling 2026-10-12)"},"z-index":{counts:"a stack order above 30 written as a number (a z utility, an arbitrary value, an inline zIndex)",instead:"a named layer: Z_LAYERS (efficient-shell/ui) in code, its --z-* custom property in markup"},shadow:{counts:"a literal shadow, or a shadow size that is not an elevation level (md, 2xl, xs)",instead:"an elevation: the sm / lg / xl utilities, or var(--elevation-panel) and its siblings (owner ruling 2026-10-12)"},kit:{counts:"an import of a second UI kit",instead:"the component from efficient-shell/ui, or fold it into the shell (harness FT-3)"},icon:{counts:"an import of an icon package",instead:"<Icon name> from efficient-shell/icons, drawn by the one set (harness UI-24)"},svg:{counts:"an <svg> element written in JSX: an icon drawn in place",instead:"<Icon name> from efficient-shell/icons, drawn by the one set (harness UI-24). A chart, an illustration or a mark a host supplies stays on the baseline"},"kit-dep":{counts:"a UI kit or icon package declared in package.json (not one the shell entries imported here need)",instead:"remove the dependency once nothing imports it (harness FT-3)"},chart:{counts:"an import of a second chart library",instead:"a chart from efficient-shell/ui (ChartFrame, TimeSeriesChart, ColumnChart, RankedBars, PieChart, FunnelChart, ScatterChart, …), or add the chart there: one chart system (harness FT-3)"},"chart-dep":{counts:"a chart library declared in package.json",instead:"remove the dependency once nothing imports it (harness FT-3)"},"ellipsis-label":{counts:'a button, link or menu label that ends in "…" or "..."',instead:'the label without the dots, saying what it does ("Extend trial"): "…" means only "the words are cut" (owner ruling 2026-10-14)'},colour:{counts:"a literal colour, in a script string or a stylesheet: a hex, an rgb() / hsl() / oklch() value, a Tailwind palette class (a hue and a step, or white / black), a --color-<hue>-<step> variable, or a named colour in a colour property — a var() fallback included",instead:"a colour role from efficient-shell: its utility (the text, background or border utility of ink, ink-faint, surface, line, accent-fill, accent-text, danger-text, status-danger-line …) or var(--role); COLOUR_ROLES lists them. A merchant site reads the site theme (owner ruling 2026-10-23)"}},p=["@headlessui/","@radix-ui/","@mui/","@chakra-ui/","@mantine/","@floating-ui/","antd","react-aria","react-aria-","react-bootstrap","react-select","react-colorful","react-tooltip","react-hot-toast","react-toastify","sonner"],f=["@heroicons/","@tabler/icons","@tabler/icons-","@phosphor-icons/","@fortawesome/","@iconify/","@radix-ui/react-icons","@mui/icons-material","lucide","lucide-react","simple-icons","react-icons","react-feather"],g=["recharts","chart.js","react-chartjs-2","d3","d3-","@nivo/","victory","victory-","echarts","echarts-for-react","apexcharts","react-apexcharts","@visx/","highcharts","highcharts-react-official","plotly.js","plotly.js-dist","react-plotly.js","lightweight-charts","@antv/g2","@antv/g2plot","chartist","billboard.js","c3","uplot"],m={"efficient-shell":["@headlessui/react"]};function w(e,t){return t.some(t=>t.endsWith("/")||t.endsWith("-")?e.startsWith(t):e===t||e.startsWith(`${t}/`))}function k(e){return w(e,f)?"icon":w(e,p)?"kit":w(e,g)?"chart":null}function x(e){const t=k(e);return"kit"===t||"icon"===t?"kit-dep":"chart"===t?"chart-dep":null}var b=/[.+^$()|[\]\\]/g;function $(e){let t="",n=0;for(let i=0;i<e.length;i++){const o=e[i];"*"===o?"*"===e[i+1]?"/"===e[i+2]?(t+="(?:[^/]+/)*",i+=2):(t+=".*",i+=1):t+="[^/]*":"?"===o?t+="[^/]":"{"===o?(t+="(?:",n+=1):"}"===o&&n>0?(t+=")",n-=1):t+=","===o&&n>0?"|":o.replace(b,"\\$&")}if(0!==n)throw new Error(`unbalanced { in glob "${e}"`);return new RegExp(`^${t}$`)}function y(e){const t=e.map($);return e=>t.some(t=>t.test(e))}var v=new Set(["node_modules",".git"]),S=new Set(["dist","coverage",".next",".turbo"]);function j(e){const t=e.search(/[*?{]/),n=-1===t?e:e.slice(0,t),i=n.lastIndexOf("/");return-1===i?"":n.slice(0,i)}function I(e,t){const i=y(t),o=[...new Set(t.map(j))].sort(),s=o.filter(e=>!o.some(t=>t!==e&&(""===t||e.startsWith(`${t}/`)))),a=new Set,l=t=>{let o;try{o=r(n(e,t),{withFileTypes:!0})}catch{return}for(const e of o){const n=t?`${t}/${e.name}`:e.name;e.isDirectory()?v.has(e.name)||""===t&&S.has(e.name)||l(n):e.isFile()&&i(n)&&a.add(n)}};for(const e of s)l(e);return[...a].sort(L)}var L=(e,t)=>e<t?-1:e>t?1:0,R=class extends Error{},A=(e,t)=>`${e}:${t}`;function z(e){const t=e.lastIndexOf(":");return{file:e.slice(0,t),kind:e.slice(t+1)}}var E=e=>a.indexOf(e);function C(e,t){const n=z(e),i=z(t);return L(n.file,i.file)||E(n.kind)-E(i.kind)}function T(e,t="ui-kit.baseline.json"){let n;try{n=JSON.parse(e)}catch(e){throw new R(`${t} is not valid JSON: ${e.message}`)}const i=e=>{throw new R(`${t}: ${e}. The tool writes this file; do not edit it by hand.`)};if("object"!=typeof n||null===n||Array.isArray(n))return i("must be a JSON object");const o=n;if(1!==o.schema)return i("number"==typeof o.schema&&o.schema>1?`"schema": ${o.schema} is newer than this efficient-shell reads (1); upgrade efficient-shell`:'"schema" must be 1');if(!Array.isArray(o.kinds)||o.kinds.some(e=>"string"!=typeof e))return i('"kinds" must be a list');const s=o.kinds.filter(l);if("object"!=typeof o.counts||null===o.counts||Array.isArray(o.counts))return i('"counts" must be an object');const r=new Map;for(const[e,t]of Object.entries(o.counts)){const{file:n,kind:o}=z(e);if(!n||!o)return i(`"${e}" is not "<file>:<kind>"`);if("number"!=typeof t||!Number.isInteger(t)||t<1)return i(`"${e}" must be a whole number, 1 or more (a line that reaches 0 is deleted)`);l(o)&&r.set(e,t)}return{kinds:s,counts:r}}function M(e){const t=a.filter(t=>e.kinds.includes(t)),n=[...e.counts.keys()].filter(t=>(e.counts.get(t)??0)>0).sort(C).map(t=>` ${JSON.stringify(t)}: ${e.counts.get(t)}`);return["{",' "schema": 1,',` "kinds": [${t.map(e=>JSON.stringify(e)).join(", ")}],`,n.length?` "counts": {\n${n.join(",\n")}\n }`:' "counts": {}',"}",""].join("\n")}function B(e){const t={};for(const[n,i]of e){const{kind:e}=z(n);l(e)&&(t[e]=(t[e]??0)+i)}return t}var P=class extends Error{},O=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),D=new Set(["$schema","schema","kinds","include","exclude","includeImporting","output","allow"]);var N="package.json",F=[2,4,8,12,16,20,24,32,40,48];function J(e){if("0"===e||"px"===e)return!0;const t=Number(e);return!!Number.isFinite(t)&&F.includes(4*t)}var U=new Set(["iframe","frame","object","embed"]),W=new Set(["href","xlinkHref","to","id","key","htmlFor"]),q=/(?<![&\w])(?<!url\()#(?:[0-9a-fA-F]{8}|[0-9a-fA-F]{6}|[0-9a-fA-F]{3,4})(?![\w-])/g,_=/(?<![\w-])rounded(?:-(?:[trblse]|tl|tr|br|bl|ss|se|ee|es))?-\[([^\]]*)\]/g,G=/^border(?:(?:Top|Bottom)(?:Left|Right)|(?:Start|End)(?:Start|End))?Radius$/,K=/^(?:inherit|initial|unset|revert)$|var\(|^(?:50|100)%$|^(?:999|9999)(?:px)?$/,H=/(?<![\w-])-?(?:p|px|py|pt|pr|pb|pl|ps|pe|m|mx|my|mt|mr|mb|ml|ms|me|gap|gap-x|gap-y|space-x|space-y)-(\d+(?:\.\d+)?|px|\[[^\]]*\])(?![\w.[/-])/g,Q=/(?<![\w-])text-\[(?:length:)?(\d*\.?\d+(?:px|rem|em|%))\]/g,V=/(?<![\w-])z-(\d+|\[[^\]]*\])(?![\w.[/-])/g,X=/(?<![\w-])shadow-(xs|2xs|md|2xl|\[[^\]]*\])(?![\w.[/-])/g,Z=/var\(|^(?:inherit|initial|unset|revert|revert-layer|none|auto)$/,Y=/^(?:(?:padding|margin)(?:Top|Right|Bottom|Left|Inline|Block|InlineStart|InlineEnd|BlockStart|BlockEnd)?|gap|rowGap|columnGap)$/,ee=new Set([0,...F]),te=/(?<![\w-])dark:(?=[\w[\-!@*(])/g,ne="slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose",ie="(?:50|[1-9]00|950)",oe=new RegExp(`(?<![\\w-])(?:bg|text|border(?:-[xytrblse])?|ring(?:-offset)?|inset-ring|outline|divide|fill|stroke|from|via|to|shadow|inset-shadow|drop-shadow|accent|caret|decoration|placeholder)-(?:(?:${ne})-${ie}|white|black)(?:\\/[\\w.]+)?(?![\\w-])`,"g"),se=new RegExp(`--color-(?:(?:${ne})-${ie}|white|black)(?![\\w-])`,"g"),re=/(?<![\w-])(?:rgba?|hsla?|hwb|oklch|oklab|lab|lch)\(\s*[\d.]/g,ae=/(?<![\w-])(?:white|black|red|green|blue|yellow|orange|purple|pink|gray|grey|silver|maroon|navy|teal|olive|lime|aqua|fuchsia|brown|gold|beige|ivory|tan|crimson|coral|salmon|indigo|violet)(?![\w-])/gi,le=/^(?:color|background(?:Color)?|border(?:Top|Right|Bottom|Left|Inline|Block)?(?:Color)?|outline(?:Color)?|fill|stroke|caretColor|accentColor|textDecorationColor|boxShadow|textShadow)$/,ce=/(?<![&a-zA-Z0-9])(?<!url\()#(?:[0-9a-fA-F]{8}|[0-9a-fA-F]{6}|[0-9a-fA-F]{3,4})(?![\w-])/g,de=e=>[...e.matchAll(ce)].length+[...e.matchAll(re)].length+[...e.matchAll(oe)].length+[...e.matchAll(se)].length,ue=new Set(["button","a","option","Button","IconButton","SplitButton","Link","NavLink","PopupMenuItem","PopupMenuLabel","DropdownMenuItem","MenuItem","ContextMenuItem"]),he=/(?:…|\.\.\.|&hellip;)\s*$/,pe=new RegExp("\\p{L}","u"),fe=new RegExp("\\p{L}[\\p{L}-]*","u"),ge={busy:{words:["Accepting","Adding","Applying","Approving","Arranging","Asking","Assigning","Booking","Building","Calculating","Cancelling","Capturing","Changing","Checking","Choosing","Closing","Combining","Comparing","Completing","Confirming","Connecting","Converting","Copying","Correcting","Counting","Creating","Deleting","Detaching","Downloading","Drawing","Duplicating","Emailing","Ending","Exporting","Fetching","Filing","Finding","Flushing","Generating","Grouping","Importing","Linking","Loading","Locating","Looking","Making","Marking","Matching","Measuring","Merging","Moving","Opening","Ordering","Paying","Pending","Posting","Preparing","Previewing","Pricing","Processing","Provisioning","Publishing","Purging","Pushing","Queued","Queuing","Quoting","Re-booking","Re-importing","Re-opening","Reading","Rebooting","Rebuilding","Receiving","Reconciling","Reconnecting","Recording","Refreshing","Refunding","Regenerating","Registering","Reinstating","Rejecting","Removing","Reopening","Requesting","Resending","Resetting","Resolving","Restarting","Restoring","Resuming","Retrying","Reversing","Reverting","Running","Saving","Searching","Sending","Setting","Settling","Sharing","Signing","Splitting","Starting","Submitting","Suggesting","Switching","Syncing","Taking","Testing","Transferring","Typing","Updating","Uploading","Verifying","Waiting","Withdrawing","Working"],zhStarts:["正在"],zhEnds:["中"]},placeholder:{},prompt:{}},me=new Set((ge.busy?.words??[]).map(e=>e.toLowerCase())),we=new Set(["label","aria-label",...ge.placeholder?[]:["placeholder","searchPlaceholder","emptyOptionLabel","blankLabel"]]),ke=(e,t)=>{if(!he.test(t)||!pe.test(e))return!1;const n=e.match(fe)?.[0]?.toLowerCase();if(n&&me.has(n))return!1;const i=e.replace(he,"").trim(),o=ge.busy;return!(o&&(o.zhStarts.some(e=>i.startsWith(e))||o.zhEnds.some(e=>i.endsWith(e))))},xe=new Set(["confirm","alert","prompt"]),be=new Set(["window","globalThis","self"]);var $e=e=>/\.(?:[cm]?[jt]s|[jt]sx)$/.test(e)&&!e.endsWith(".d.ts"),ye=e=>/\.(?:css|scss)$/.test(e),ve=/^(?:color|background(?:-color)?|border(?:-(?:top|right|bottom|left|inline|block)(?:-(?:start|end))?)?(?:-color)?|outline(?:-color)?|fill|stroke|caret-color|accent-color|text-decoration(?:-color)?|box-shadow|text-shadow|column-rule(?:-color)?)$/;function Se(e,t){if(!t.includes("colour"))return{};const n=e.replace(/\/\*[\s\S]*?\*\//g,e=>e.replace(/[^\n]/g," ")),i=[],o=e=>n.slice(0,e).split("\n").length;let s=0,r=0;for(let e=0;e<n.length;e++){const t=n[e];if("{"===t||"}"===t||";"===t){const a=n.slice(r,e);if("{"!==t&&s>0){const e=r+(a.length-a.trimStart().length),t=a.trim(),n=t.indexOf(":");if(t.startsWith("@apply"))for(let n=[...t.matchAll(oe)].length;n>0;n--)i.push(o(e));else if(n>0){const s=t.slice(0,n).trim().toLowerCase(),r=t.slice(n+1);if(!/^(?:-webkit-)?mask/.test(s)){const t=de(r)+(ve.test(s)?[...r.matchAll(ae)].length:0);for(let n=0;n<t;n++)i.push(o(e))}}}"{"===t?s++:"}"===t&&(s=Math.max(0,s-1)),r=e+1}}return i.length?{colour:i}:{}}function je(e,t,n,i,o){const s=new Set(i),r=e.createSourceFile(t,n,e.ScriptTarget.Latest,!0,function(e,t){return t.endsWith(".tsx")?e.ScriptKind.TSX:t.endsWith(".jsx")?e.ScriptKind.JSX:/\.[cm]?js$/.test(t)?e.ScriptKind.JS:e.ScriptKind.TS}(e,t)),a={},l=/\.[jt]sx$/.test(t),c=e=>r.getLineAndCharacterOfPosition(e).line+1,d=(e,t)=>{s.has(e)&&(a[e]??=[]).push(c(t.getStart(r)))},u=(t,n)=>t.attributes.properties.find(t=>e.isJsxAttribute(t)&&t.name.getText(r)===n),h=t=>{const n=t?.initializer;if(n)return e.isStringLiteral(n)?n.text:e.isJsxExpression(n)&&n.expression&&e.isStringLiteralLike(n.expression)?n.expression.text:void 0},p=new Set;if(s.has("native")){const t=n=>{if(n)if(e.isIdentifier(n))xe.has(n.text)&&p.add(n.text);else if(e.isObjectBindingPattern(n)||e.isArrayBindingPattern(n))for(const i of n.elements)e.isBindingElement(i)&&t(i.name)},n=i=>{(e.isImportClause(i)||e.isImportSpecifier(i)||e.isNamespaceImport(i)||e.isVariableDeclaration(i)||e.isParameter(i)||e.isFunctionDeclaration(i))&&t(i.name),e.forEachChild(i,n)};n(r)}const f=t=>t&&e.isStringLiteralLike(t)?t.text:void 0,g=(e,t)=>{e&&("efficient-shell"===e||e.startsWith("efficient-shell/"))&&o?.add(e);const n=e?k(e):null;n&&d(n,t)},m=(e,t,n)=>{if(s.has("dark"))for(const n of e.matchAll(te))d("dark",t);if(s.has("radius"))for(const n of e.matchAll(_))K.test(n[1].trim())||d("radius",t);if(n&&l&&s.has("hex"))for(const n of e.matchAll(q))d("hex",t);if(n&&s.has("colour"))for(let n=de(e);n>0;n--)d("colour",t);if(s.has("spacing"))for(const n of e.matchAll(H)){const e=n[1];(e.startsWith("[")?Z.test(e.slice(1,-1).trim()):J(e))||d("spacing",t)}if(s.has("font-size"))for(const n of e.matchAll(Q))d("font-size",t);if(s.has("z-index"))for(const n of e.matchAll(V)){const e=n[1].startsWith("[")?n[1].slice(1,-1).trim():n[1];/^\d+$/.test(e)&&Number(e)>30&&d("z-index",t)}if(s.has("shadow"))for(const n of e.matchAll(X))n[1].startsWith("[")&&Z.test(n[1].slice(1,-1).trim())||d("shadow",t)},w=(t,n,i)=>{const o=e.isStringLiteralLike(n)?n.text.trim():void 0;if(s.has("colour")&&void 0!==o&&le.test(t))for(const e of o.matchAll(ae))d("colour",i);if(s.has("spacing")&&Y.test(t))e.isNumericLiteral(n)?ee.has(Number(n.text))||d("spacing",i):void 0!==o&&!Z.test(o)&&(e=>[...e.matchAll(/(-?\d*\.?\d+)(px|rem|em)\b/g)].map(e=>Math.abs(Number(e[1]))*("px"===e[2]?1:16)))(o).some(e=>!ee.has(e))&&d("spacing",i);else if(s.has("font-size")&&"fontSize"===t)(e.isNumericLiteral(n)||void 0!==o&&!Z.test(o)&&!/^(?:smaller|larger)$/.test(o))&&d("font-size",i);else if(s.has("z-index")&&"zIndex"===t){const t=[],o=n=>{e.isNumericLiteral(n)||e.isStringLiteralLike(n)&&/^\d+$/.test(n.text.trim())?t.push(Number(n.text)):e.forEachChild(n,o)};o(n);for(const e of t)e>30&&d("z-index",i)}else s.has("shadow")&&"boxShadow"===t&&(void 0===o||""===o||Z.test(o)||d("shadow",i))},x=(t,n)=>{if(e.isJsxOpeningElement(t)||e.isJsxSelfClosingElement(t)){const e=t.tagName.getText(r);if(/^[a-z]/.test(e)){const n=h(u(t,"type"));"svg"===e&&d("svg",t),"button"===e?d("button",t):"select"===e?d("select",t):"textarea"===e?d("textarea",t):"input"===e&&("range"===n?d("range",t):"hidden"!==n&&d("input",t));const i=h(u(t,"role"));"dialog"!==e&&"dialog"!==i&&"alertdialog"!==i||d("dialog",t),!U.has(e)&&u(t,"title")&&d("title",t)}}else if(e.isCallExpression(t)){const n=t.expression;e.isIdentifier(n)?"createPortal"===n.text?d("portal",t):xe.has(n.text)&&!p.has(n.text)?d("native",t):"require"===n.text&&g(f(t.arguments[0]),t):e.isPropertyAccessExpression(n)?"createPortal"===n.name.text?d("portal",t):xe.has(n.name.text)&&e.isIdentifier(n.expression)&&be.has(n.expression.text)&&d("native",t):n.kind===e.SyntaxKind.ImportKeyword&&g(f(t.arguments[0]),t)}else{if(e.isImportDeclaration(t)||e.isExportDeclaration(t))return void g(f(t.moduleSpecifier),t);if(e.isPropertyAssignment(t)){const n=e.isIdentifier(t.name)||e.isStringLiteralLike(t.name)?t.name.text:"",i=t.initializer;w(n,i,t),s.has("radius")&&G.test(n)&&(e.isNumericLiteral(i)?K.test(i.text)||d("radius",t):e.isStringLiteralLike(i)&&!K.test(i.text.trim())&&d("radius",t))}else if(e.isStringLiteralLike(t))m(t.text,t,n);else if(e.isTemplateExpression(t)){m(t.head.text,t.head,n);for(const e of t.templateSpans)m(e.literal.text,e.literal,n)}}e.isJsxAttribute(t)&&W.has(t.name.getText(r))?e.forEachChild(t,e=>x(e,!1)):e.forEachChild(t,e=>x(e,n))};return x(r,!0),s.has("ellipsis-label")&&function(e,t,n){const i=new Set,o=(e,t)=>{i.has(e)||(i.add(e),n(t))},s=n=>{if(n)if(e.isStringLiteralLike(n))ke(n.text,n.text)&&o(n,n.getStart(t));else if(e.isTemplateExpression(n)){const e=[n.head.text,...n.templateSpans.map(e=>e.literal.text)];ke(e.join(" "),e[e.length-1])&&o(n,n.getStart(t))}else e.isConditionalExpression(n)?(s(n.whenTrue),s(n.whenFalse)):e.isBinaryExpression(n)?(s(n.left),s(n.right)):e.isParenthesizedExpression(n)||e.isAsExpression(n)||e.isJsxExpression(n)?s(n.expression):e.isCallExpression(n)&&Ie.has(Le(n.expression))&&n.arguments[0]&&s(n.arguments[0])},r=n=>{for(const i of n)if(e.isJsxText(i)){const e=i.getText(t);ke(e,e)&&o(i,i.getStart(t)+(e.length-e.trimStart().length))}else e.isJsxExpression(i)?s(i.expression):(e.isJsxElement(i)||e.isJsxFragment(i))&&r(i.children)},a=(n,i)=>{const o=n.attributes.properties.find(n=>e.isJsxAttribute(n)&&n.name.getText(t)===i),s=o?.initializer;return s&&e.isStringLiteral(s)?s.text:s&&e.isJsxExpression(s)&&s.expression&&e.isStringLiteralLike(s.expression)?s.expression.text:void 0},l=t=>t.properties.some(t=>e.isPropertyAssignment(t)&&(e.isIdentifier(t.name)||e.isStringLiteralLike(t.name))&&"value"===t.name.text&&e.isStringLiteralLike(t.initializer)&&""===t.initializer.text),c=n=>{if(e.isJsxElement(n)){const e=n.openingElement,i=e.tagName.getText(t),o="option"===i&&ge.prompt&&""===a(e,"value");ue.has(i)&&!o&&r(n.children)}else if(e.isJsxAttribute(n))we.has(n.name.getText(t))&&s(n.initializer);else if(e.isPropertyAssignment(n)){const t=e.isIdentifier(n.name)||e.isStringLiteralLike(n.name)?n.name.text:"",i=ge.prompt&&e.isObjectLiteralExpression(n.parent)&&l(n.parent);we.has(t)&&!i&&s(n.initializer)}e.forEachChild(n,c)};c(t)}(e,r,e=>(a["ellipsis-label"]??=[]).push(c(e))),a}var Ie=new Set(["say","t"]),Le=e=>{const t=e.getText();return t.slice(t.lastIndexOf(".")+1)};function Re(e){const t={};for(const[n,i]of Object.entries(e))i.length&&(t[n]=i.length);return t}function Ae(e,t,n){const i=e.createSourceFile(t,n,e.ScriptTarget.Latest,!1),o=[];for(const t of i.statements)(e.isImportDeclaration(t)||e.isExportDeclaration(t))&&t.moduleSpecifier&&e.isStringLiteralLike(t.moduleSpecifier)&&o.push(t.moduleSpecifier.text);return o}var ze=(e,t)=>e.some(e=>t.some(t=>t.endsWith("/*")?e.startsWith(t.slice(0,-1)):e===t));var Ee=e=>new Map(e.allow.map(e=>[A(e.file,e.kind),e.count]));function Ce(e,t){return e.kinds.filter(e=>t.kinds.includes(e))}var Te=(e,t,n)=>{if("kit-dep"===n)return` (${e.kitDeps.join(", ")})`;if("chart-dep"===n)return` (${e.chartDeps.join(", ")})`;const i=e.hits.get(t)?.[n]??[];if(0===i.length)return"";const o=i.slice(0,12).join(", ");return` (line${1===i.length?"":"s"} ${o}${i.length>12?", …":""})`};function Me(e,t,n){const i=Ee(e),o=new Map;for(const[e,s]of t.counts){const{kind:t}=z(e);if(!l(t)||!n.includes(t))continue;const r=s-(i.get(e)??0);r>0&&o.set(e,r)}return{kinds:a.filter(e=>n.includes(e)),counts:o}}function Be(e,t){let n=0;for(const i of new Set([...e.keys(),...t.keys()]))(e.get(i)??0)!==(t.get(i)??0)&&(n+=1);return n}var Pe="\n// <button> in a comment is not a button, and <svg> in one is not a drawing\n/* nor is <input title=\"x\"> in this one, or dark:bg-black, or #fff */\nimport { createPortal } from 'react-dom';\nimport { Dialog } from '@headlessui/react';\nimport { TrashIcon } from '@heroicons/react/24/outline';\nimport type { Icon } from 'lucide-react';\nimport { Button, confirm } from 'efficient-shell';\nexport { Slot } from '@radix-ui/react-slot';\nexport { CheckIcon } from '@radix-ui/react-icons';\nimport { LineChart } from 'recharts';\nimport 'd3-scale';\nexport { VictoryPie } from 'victory';\nimport { BarChart } from '@mui/x-charts';\nimport Tree from 'react-d3-tree';\nimport { TimeSeriesChart } from 'efficient-shell/ui';\n// import 'chart.js' in a comment is not an import, and 'echarts' in a string is not one either\nconst chartLabel = 'd3-array';\n\nconst a = <button title=\"Says what it does\">x</button>;\nconst b = <input type=\"range\" />;\nconst c = <input type=\"text\" />;\nconst c2 = <input type={\"hidden\"} name=\"csrf\" />;\nconst c3 = <input type=\"hidden\" />;\nconst c4 = <input type={kind} />;\nconst d = <select />;\nconst d2 = <textarea />;\nconst e = <div role=\"dialog\" />;\nconst e2 = <dialog open />;\nconst e3 = <section role={'alertdialog'} />;\nconst f = <iframe title=\"Preview\" />;\nconst f2 = <object title=\"Chart\" />;\nconst g = <Button title=\"a prop, not a tooltip\" role=\"dialog\" />;\nconst g2 = (\n <button\n type=\"button\"\n title={hint}\n >\n y\n </button>\n);\nconst h = ReactDOM.createPortal(a, document.body);\nconst i = createPortal(a, document.body);\n\nasync function leave() {\n if (window.confirm('Sure?')) return;\n globalThis.alert('No');\n alert('native: nothing binds the name');\n prompt('native too');\n await confirm('the shell: the import binds it');\n record.confirm('a method, not the popup');\n}\n\nconst j = <div className=\"bg-white dark:bg-black dark:hover:text-white is-dark:no\" />;\nconst k = clsx('text-gray-900', on && 'dark:text-gray-100');\nconst l = <span style={{ color: '#fff', background: \"#12ab34\" }} className={`border-[#0a0b0c80] ${x}`} />;\nconst m = <a href=\"#faded\" id=\"#bad\" key=\"#abc\" to=\"#face\">skip</a>;\nconst n = <label htmlFor={'#dead'}>skip</label>;\nconst o = <span>&#1234; and BG#00340 and #12345 and #added are not colours</span>;\nconst p = 'entity &#x1f; ref BG#00340';\nconst q = <use xlinkHref=\"#abc\" fill=\"url(#fed)\" />;\nconst t = <div className=\"rounded-[4px] rounded-t-[0.5rem] hover:rounded-[2px] rounded-lg rounded-(--radius-card) rounded-[inherit] rounded-[var(--r)]\" />;\nconst u = <div style={{ borderRadius: 6, borderTopLeftRadius: '3px', borderBottomRightRadius: '50%', borderEndEndRadius: 'var(--radius-card)' }} />;\nconst v = <i style={{ borderRadius: 9999 }} />;\nconst w = <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M4 4h16\" /></svg>;\nconst w2 = <Svg viewBox=\"0 0 24 24\" />;\nconst w3 = '<svg viewBox=\"0 0 1 1\"></svg> in a string is not an element';\nconst r = lazy(() => import('@mui/material'));\nconst s = require('react-select');\nconst s2 = require('chart.js/auto');\nconst s3 = import('@nivo/line');\n",Oe={button:2,input:2,range:1,textarea:1,select:1,dialog:3,title:2,portal:2,native:4,dark:3,hex:3,radius:5,kit:5,icon:3,svg:1,chart:5,colour:8},De={kit:1,dark:1,portal:1,radius:2,chart:1,colour:2},Ne=(...e)=>e.join("-"),Fe=`\nconst s1 = <i className="${[Ne("px","2.5"),Ne("py","1.5"),"md:"+Ne("gap","1.5"),"-"+Ne("mt","1.5"),Ne("p","[10px]")].join(" ")}" />;\nconst s2 = <i className="${[Ne("p","0"),Ne("px","px"),Ne("p","0.5"),Ne("p","3"),Ne("gap-x","4"),Ne("p","12"),Ne("p","(--space-12)"),Ne("p","[var(--space-12)]"),Ne("space-x","reverse"),Ne("top","1.5")].join(" ")}" />;\nconst s3 = <i style={{ padding: 6, marginTop: '10px', gap: 8, margin: '0 auto', paddingInline: 'var(--space-12)' }} />;\nconst f1 = <i className="${[Ne("text","[11px]"),Ne("text","[0.8rem]"),Ne("text","xs"),Ne("text","[#fff]"),Ne("text","(--text-2xs)")].join(" ")}" />;\nconst f2 = <i style={{ fontSize: 12 }} />;\nconst f3 = { fontSize: 'var(--x)', font: 'inherit' };\nconst z1 = <i className="${[Ne("z","[9999]"),Ne("z","50"),Ne("z","10"),Ne("z","30"),"-"+Ne("z","10"),Ne("z","auto"),Ne("z","(--z-popup)"),Ne("z","[var(--z-popup)]")].join(" ")}" />;\nconst z2 = { zIndex: on ? 2020 : 2010 };\nconst z3 = { zIndex: Z_LAYERS.popup, top: 9999 };\nconst h1 = <i className="${[Ne("shadow","[0_1px_2px_#000]"),Ne("shadow","md"),"shadow",Ne("shadow","lg"),Ne("shadow","(--elevation-panel)"),Ne("shadow","black/20"),Ne("drop-shadow","md")].join(" ")}" />;\nconst h2 = { boxShadow: '0 1px 2px rgba(0,0,0,.1)' };\nconst h3 = { boxShadow: 'none', outline: 'var(--elevation-raised)' };\n`,Je={spacing:7,"font-size":3,"z-index":4,shadow:3,hex:1,colour:4},Ue={colour:4},We={"ellipsis-label":9},qe=e=>a.filter(t=>e[t]).map(t=>`${t} ${e[t]}`).join(", ")||"nothing";var _e="ui-kit.config.json",Ge="ui-kit.baseline.json",Ke="efficient-shell-ui-check",He=`${Ke}: every surface a person operates takes its UI from efficient-shell (harness UI-24).\n\n ${Ke} check this repository against ${Ge}\n ${Ke} --print print today's counts as a baseline, and change nothing\n ${Ke} --summary print totals per kind and per folder, as Markdown\n ${Ke} --json print the result as JSON\n ${Ke} --update lower the lines whose counts fell, and delete the ones at zero\n ${Ke} --update --allow-move also follow a renamed or split file (no total may rise)\n ${Ke} --init write the first ${Ge}\n ${Ke} --init --kind <kind> take the baseline for a kind just added to "kinds"\n ${Ke} --no-base do not compare with the pull request's base branch\n\nKinds: ${a.join(", ")}\nReads ${_e} in the current directory.`;var Qe=(e,t)=>`${e} ${t}${1===e?"":"s"}`,Ve=(e,t)=>{const n=B(e);return t.map(e=>`${e} ${n[e]??0}`).join(" · ")};process.exitCode=function(e,t){const r=function(e){const t={print:!1,summary:!1,json:!1,update:!1,allowMove:!1,init:!1,noBase:!1,help:!1,version:!1,kinds:[]};for(let n=0;n<e.length;n++){const i=e[n];if("--print"===i)t.print=!0;else if("--summary"===i)t.summary=!0;else if("--json"===i)t.json=!0;else if("--update"===i)t.update=!0;else if("--allow-move"===i)t.allowMove=!0;else if("--init"===i)t.init=!0;else if("--no-base"===i)t.noBase=!0;else if("--help"===i||"-h"===i)t.help=!0;else if("--version"===i||"-v"===i)t.version=!0;else if("--kind"===i){const i=e[++n];if(!i)return"--kind needs a kind after it";t.kinds.push(...i.split(","))}else{if(!i.startsWith("--kind="))return`unknown argument "${i}"`;t.kinds.push(...i.slice(7).split(","))}}return t.allowMove&&!t.update?"--allow-move goes with --update":t.kinds.length&&!t.init?"--kind goes with --init":[t.print,t.summary,t.update,t.init].filter(Boolean).length>1?"choose one of --print, --summary, --update and --init":t}(e);if("string"==typeof r)return t.err(`${Ke}: ${r}\n\n${He}`),2;if(r.help)return t.out(He),0;if(r.version)return t.out(t.version),0;const c=e=>(r.json?t.out(JSON.stringify({tool:Ke,version:t.version,ok:!1,failures:[e]},null,2)):t.err(`${Ke}: ${e}`),1),p=n(t.cwd,_e);if(!i(p))return c(`no ${_e} in ${t.cwd}. Run it from the repository root; the harness has the template.`);let f,g;try{f=function(e,t="ui-kit.config.json"){const n=[],i=e=>{n.push(e)},o=(e,t,{required:n=!1}={})=>{if(void 0===e&&!n)return[];if(!Array.isArray(e)||e.some(e=>"string"!=typeof e||""===e))return i(`${t} must be a list of non-empty strings`),[];n&&0===e.length&&i(`${t} must name at least one entry`);for(const n of e)(n.startsWith("/")||n.startsWith("./")||n.includes("\\")||n.split("/").includes(".."))&&i(`${t}: "${n}" must be a path from the repository root, written with / (no ./, .. or \\)`);return e},s=(e,t)=>"string"!=typeof e||e.trim().length<10?(i(`${t} needs a "reason" a reviewer can read (a sentence, not a word)`),""):e,r=(e,t)=>void 0===e?[]:!Array.isArray(e)||e.some(e=>!O(e))?(i(`${t} must be a list of objects`),[]):e;if(!O(e))throw new P(`${t}: must be a JSON object`);for(const t of Object.keys(e))D.has(t)||i(`unknown key "${t}"`);1!==e.schema&&i("number"==typeof e.schema&&e.schema>1?`"schema": ${e.schema} is newer than this efficient-shell reads (1); upgrade efficient-shell`:'"schema" must be 1');const c=[];if(Array.isArray(e.kinds)&&0!==e.kinds.length)for(const t of e.kinds)l(t)?c.includes(t)?i(`"kinds": "${t}" is listed twice`):c.push(t):i(`"kinds": unknown kind ${JSON.stringify(t)} (this efficient-shell knows: ${a.join(", ")})`);else i(`"kinds" must list the kinds this repository checks, from: ${a.join(", ")}`);const d=o(e.include,'"include"'),u=o(e.exclude,'"exclude"'),h=r(e.includeImporting,'"includeImporting"').map((e,t)=>({files:o(e.files,`"includeImporting"[${t}].files`,{required:!0}),modules:o(e.modules,`"includeImporting"[${t}].modules`,{required:!0}),reason:s(e.reason,`"includeImporting"[${t}]`)}));0===d.length&&0===h.length&&i('"include" must name the files that are operator UI (for example ["src/**/*.tsx"])');const p=r(e.output,'"output"').map((e,t)=>({files:o(e.files,`"output"[${t}].files`,{required:!0}),reason:s(e.reason,`"output"[${t}]`)})),f=[],g=new Set;if(r(e.allow,'"allow"').forEach((e,t)=>{const n=`"allow"[${t}]`,[r]=o([e.file],`${n}.file`),d=s(e.reason,n);if(!l(e.kind))return void i(`${n}.kind must be one of: ${a.join(", ")}`);if(c.includes(e.kind)||i(`${n}: kind "${e.kind}" is not in "kinds"`),"number"!=typeof e.count||!Number.isInteger(e.count)||e.count<1)return void i(`${n}.count must be a whole number, 1 or more`);if(!r)return;const u=`${r}:${e.kind}`;g.has(u)&&i(`${n}: ${r} already has an allow entry for "${e.kind}"`),g.add(u),f.push({file:r,kind:e.kind,count:e.count,reason:d})}),n.length)throw new P(`${t}:\n - ${n.join("\n - ")}`);return{schema:1,kinds:a.filter(e=>c.includes(e)),include:d,exclude:u,includeImporting:h,output:p,allow:f}}(JSON.parse(o(p,"utf8")),_e)}catch(e){return c(e instanceof P?e.message:`${_e} is not valid JSON: ${e.message}`)}try{g=t.loadTypeScript()}catch{return c('this check reads the TypeScript AST and found no "typescript" package here. Install it as a devDependency.')}const w=function(e){const t=[],n=u,i=[["fixture.tsx",Pe,Oe],["fixture.ts","\nimport { toast } from 'sonner';\nimport { extent } from 'd3-array';\nexport const tone = { warn: '#f59e0b' };\nexport const cls = 'ring-1 dark:ring-white rounded-[3px]';\nexport const box = { borderRadius: '0.25rem', radius: 4 };\nexport function ask(confirm: (message: string) => boolean) {\n return confirm('a parameter binds the name');\n}\nexport const mount = (node: unknown) => ReactDOM.createPortal(node, document.body);\n",De],["tokens.tsx",Fe,Je],["labels.tsx","\n// <Button>Save…</Button> in a comment is not a label\nconst l1 = <Button>Extend trial…</Button>;\nconst l2 = <PopupMenuItem onClick={go}><span>Read from a PDF...</span></PopupMenuItem>;\nconst l3 = <Button>{busy ? 'Saving…' : 'Duplicate site…'}</Button>;\nconst l4 = <Item label=\"Translate…\" aria-label={'More…'} />;\nconst l5 = [{ label: 'Reject…' }, { value: CUSTOM, label: 'Custom…' }];\nconst l6 = <option value={CUSTOM}>Different address…</option>;\nconst l7 = <PopupMenuLabel>{say(\"Duplicate to page…\")}</PopupMenuLabel>;\nconst n7 = <Button>{t('team:menu.remove')}</Button>;\nconst n1 = <Button>{`${name.slice(0, 9)}…`}</Button>;\nconst n2 = <p>Loading weather…</p>;\nconst n3 = <Input placeholder=\"Search…\" />;\nconst n4 = <option value=\"\">Pick a carrier…</option>;\nconst n5 = [{ value: '', label: 'Select…' }];\nconst n6 = <Button>Extend trial</Button>;\n",We]];for(const[o,s,r]of i){const i=Re(je(e,o,s,n));n.some(e=>(i[e]??0)!==(r[e]??0))&&t.push(`${o}: read ${qe(i)}; it holds ${qe(r)}`)}const o=Re(Se('\n/* #fff in a comment */\n.a:hover { color: #111; border: 1px solid white; }\n[data-x="#fff"] { mask-image: linear-gradient(#000, transparent); color: var(--ink); }\n.b { --mine: rgb(0 0 0 / .5); background: var(--surface, #fff); }\n',n));n.some(e=>(o[e]??0)!==(Ue[e]??0))&&t.push(`style.css: read ${qe(o)}; it holds ${qe(Ue)}`);const s=Re(je(e,"fixture.tsx",Pe,["button"]));return"button"!==Object.keys(s).join()&&t.push(`asked for button alone, the reader reported ${qe(s)}`),t}(g);if(w.length)return c(`the reader misread its own fixtures with typescript ${g.version}, so nothing it says about this repository can be trusted:\n - `+w.join("\n - "));const k=function(e,t,s){const r=[],a=y(s.exclude),l=y(s.output.flatMap(e=>e.files)),c=new Map,u=e=>{let i=c.get(e);return void 0===i&&c.set(e,i=o(n(t,e),"utf8")),i},h=(e,n)=>{for(const i of e)0===I(t,[i]).length&&r.push(`${n}: "${i}" matches no file. Delete the line, or fix the path.`)};h(s.include,'"include"'),s.output.forEach((e,t)=>h(e.files,`"output"[${t}]`)),s.includeImporting.forEach((e,t)=>h(e.files,`"includeImporting"[${t}]`));const p=new Set,f=s.kinds.includes("colour"),g=e=>($e(e)||f&&ye(e))&&!a(e)&&!l(e);for(const e of I(t,s.include))g(e)&&p.add(e);for(const n of s.includeImporting)for(const i of I(t,n.files))g(i)&&$e(i)&&!p.has(i)&&ze(Ae(e,i,u(i)),n.modules)&&p.add(i);const w=[...p].sort(),k=s.kinds.filter(e=>!d(e)),b=new Map,$=new Map,v=new Set;for(const t of w){const n=ye(t)?Se(u(t),k):je(e,t,u(t),k,v);let i=!1;for(const e of k){const o=n[e]?.length??0;o&&($.set(A(t,e),o),i=!0)}i&&b.set(t,n)}let S=[],j=[],L=[];const R=s.kinds.filter(d);if(R.length){const e=n(t,N);if(i(e)){const t=JSON.parse(o(e,"utf8")),n=["dependencies","peerDependencies","optionalDependencies"].flatMap(e=>Object.keys(t[e]??{})),i=new Set([...v].flatMap(e=>m[e]??[])),r=[...new Set(n)].sort();if(s.kinds.includes("kit-dep")){const e=r.filter(e=>"kit-dep"===x(e));S=e.filter(e=>!i.has(e)),j=e.filter(e=>i.has(e)),S.length&&$.set(A(N,"kit-dep"),S.length)}s.kinds.includes("chart-dep")&&(L=r.filter(e=>"chart-dep"===x(e)),L.length&&$.set(A(N,"chart-dep"),L.length))}else for(const e of R)r.push(`"kinds" includes "${e}", and there is no ${N} here to read.`)}for(const e of s.allow)(d(e.kind)?e.file===N:p.has(e.file))||r.push(`"allow": ${e.file} (${e.kind}) is not a file this check reads. Delete the entry, or fix the path.`);return{files:w,hits:b,counts:$,kitDeps:S,shellPeers:j,chartDeps:L,problems:r}}(g,t.cwd,f);if(0===k.files.length)return c(`read no files. "include" in ${_e} matches nothing, so a pass would mean nothing.`);const b=n(t.cwd,Ge),$=r.json,v=e=>{$||t.out(e)};if(r.print)return t.out(M(Me(f,k,f.kinds)).trimEnd()),0;if(r.summary){for(const e of function(e,t){const n=new Map,i=new Map;for(const[e,o]of t.counts){const{file:t,kind:s}=z(e);if(!l(s))continue;const r=n.get(s)??{count:0,files:new Set};r.count+=o,r.files.add(t),n.set(s,r);const a=t.split("/"),c=a.length>2?a.slice(0,2).join("/"):2===a.length?a[0]:".",d=i.get(c)??{};d[s]=(d[s]??0)+o,i.set(c,d)}const o=e.kinds.filter(e=>n.has(e)),s=[`**UI kit check (harness UI-24):** ${new Set([...t.counts.keys()].map(e=>z(e).file)).size} of ${Qe(t.files.length,"file")} still draw UI of their own.`,"","| Kind | Count | Files | The shell has |","|---|---:|---:|---|",...e.kinds.map(e=>{const t=n.get(e);return`| \`${e}\` | ${t?.count??0} | ${t?.files.size??0} | ${h[e].instead} |`})];if(o.length&&i.size){const e=e=>o.reduce((t,n)=>t+(e[n]??0),0),t=[...i].sort((t,n)=>e(n[1])-e(t[1])||(t[0]<n[0]?-1:1));s.push("",`| Folder | ${o.map(e=>`\`${e}\``).join(" | ")} | Total |`,`|---|${o.map(()=>"---:").join("|")}|---:|`,...t.map(([t,n])=>`| \`${t}\` | ${o.map(e=>n[e]??0).join(" | ")} | ${e(n)} |`))}return s}(f,k))t.out(e);return 0}let S=null;if(i(b))try{S=T(o(b,"utf8"),Ge)}catch(e){return c(e instanceof R?e.message:String(e))}if(r.init){const e=r.kinds.filter(e=>!l(e)||!f.kinds.includes(e));if(e.length)return c(`--kind ${e.join(", ")}: not in "kinds" in ${_e}. Add it there first.`);const t=r.kinds;if(S){if(0===t.length)return c(`${Ge} already exists, and --init would overwrite what it holds. It is for the adoption pull request only. To start checking a kind, add it to "kinds" and run --init --kind <kind>.`);const e=t.filter(e=>S.kinds.includes(e));if(e.length)return c(`the baseline was already taken for ${e.join(", ")}. Its lines only go down; use --update.`);const n=Me(f,k,t);S={kinds:[...S.kinds,...t],counts:new Map([...S.counts,...n.counts])}}else{if(t.length)return c(`there is no ${Ge} yet. Run --init on its own first.`);S=Me(f,k,f.kinds)}s(b,M(S)),v(`${Ke}: wrote ${Ge} (${Qe(S.counts.size,"line")}: ${Ve(S.counts,S.kinds)})`)}if(!S)return c(`no ${Ge}. This repository has not adopted the check yet: run ${Ke} --init, and commit the file.`);if(r.update){const e=function(e,t,n,{allowMove:i=!1}={}){const o=Ce(e,t),s=Me(e,n,o),r=new Map([...t.counts].filter(([e])=>o.includes(z(e).kind)));if(i){const e=B(r),n=B(s.counts),i=o.filter(t=>(n[t]??0)>(e[t]??0)).map(t=>`${t}: ${n[t]??0} across the repository, and the baseline holds ${e[t]??0}`);return i.length?{baseline:t,lowered:0,refused:i}:{baseline:s,lowered:Be(r,s.counts),refused:[]}}const a=new Map;for(const[e,t]of r){const n=Math.min(t,s.counts.get(e)??0);n>0&&a.set(e,n)}return{baseline:{kinds:o,counts:a},lowered:Be(r,a),refused:[]}}(f,S,k,{allowMove:r.allowMove});if(e.refused.length)return c(`--allow-move follows code that moved, and this is more of it than before:\n - ${e.refused.join("\n - ")}\nNothing was written.`);S=e.baseline,s(b,M(S)),v(`${Ke}: ${e.lowered?`changed ${Qe(e.lowered,"line")} in`:"nothing to change in"} ${Ge}`)}const j=function(e,t,n){const i=[],o=[],s=[...n.problems],r=Ee(e),a=new Set(Ce(e,t)),c=e.kinds.filter(e=>!t.kinds.includes(e));c.length&&s.push(`"kinds" names ${c.map(e=>`"${e}"`).join(", ")}, and the baseline was never taken for ${1===c.length?"it":"them"}. Run: efficient-shell-ui-check --init ${c.map(e=>`--kind ${e}`).join(" ")}`);const d=t.kinds.filter(t=>!e.kinds.includes(t));d.length&&o.push(`the baseline still carries ${d.map(e=>`"${e}"`).join(", ")}, which "kinds" no longer names`);const u=new Set([...n.counts.keys(),...t.counts.keys(),...r.keys()]);for(const e of[...u].sort(C)){const{file:c,kind:d}=z(e);if(!l(d)||!a.has(d))continue;const u=n.counts.get(e)??0,p=r.get(e)??0,f=t.counts.get(e)??0;u>p+f?i.push(`${c}: ${d} ${u}, and its line allows ${p+f}${Te(n,c,d)}. ${h[d].counts} is counted; use ${h[d].instead}.`):u<p?s.push(`${c}: ${d} ${u}, and "allow" in ui-kit.config.json says ${p}. ${0===u?"Delete the entry":`Lower its count to ${u}`}: an exception does not outlive what it excused.`):u<p+f&&o.push(`${c}: ${d} ${u}, and its line says ${p+f}`)}return{grown:i,shrunk:o,other:s,updateFixes:0===i.length&&0===s.length&&o.length>0}}(f,S,k),L=r.noBase?{problems:[],note:""}:function(e,t,n){const i=e.env.GITHUB_BASE_REF;if(!i)return{problems:[],note:""};const o=e.git(["rev-parse","--show-prefix"]);if(null===o)return{problems:[],note:"not a git checkout; the base branch was not compared"};const s=`origin/${i}`;if(null===e.git(["rev-parse","--verify","--quiet",`${s}^{commit}`])&&(e.git(["fetch","--no-tags","--depth=1","origin",`+refs/heads/${i}:refs/remotes/origin/${i}`]),null===e.git(["rev-parse","--verify","--quiet",`${s}^{commit}`])))return{problems:[],note:`${s} could not be fetched; the base branch was not compared`};const r=e.git(["show",`${s}:${o.trim()}${Ge}`]);if(null===r)return{problems:[],note:`${s} has no ${Ge} yet (adoption)`};let a;try{a=T(r,`${s}:${Ge}`)}catch{return{problems:[],note:`${s}'s ${Ge} could not be read; the base branch was not compared`}}const l=B(a.counts),c=B(t.counts);return{problems:n.filter(e=>a.kinds.includes(e)&&(c[e]??0)>(l[e]??0)).map(e=>`${Ge} holds ${c[e]??0} of "${e}", and ${s} holds ${l[e]??0}. The baseline only goes down: use ${h[e].instead}. A count that is meant to stay goes in "allow" in ${_e}, with its reason.`),note:`compared with ${s}`}}(t,S,f.kinds),E=f.kinds.filter(e=>S.kinds.includes(e)),F=`${Ke} --update`,J=[...j.other,...j.grown,...j.shrunk.map(e=>`${e}. Run: ${F}`),...L.problems],U=0===J.length;if(r.json){const e=new Map(f.allow.map(e=>[`${e.file}:${e.kind}`,e.count]));return t.out(JSON.stringify({tool:Ke,version:t.version,ok:U,schema:f.schema,kinds:f.kinds,files:k.files.length,counts:B(k.counts),baseline:B(S.counts),allowed:B(e),kitDeps:k.kitDeps,shellPeers:k.shellPeers,chartDeps:k.chartDeps,failures:J},null,2)),U?0:1}t.out(`UI kit check (harness UI-24), efficient-shell ${t.version}\n`);const W=(e,n,i="")=>{if(0===n.length)return t.out(` ok ${e}`);t.err(` FAIL ${e}`);for(const e of n)t.err(` ${e}`);i&&t.err(` ${i}`)};t.out(` ok the reader reads its own fixtures (typescript ${g.version})`),t.out(` ok read ${Qe(k.files.length,"file")}`),W(`${_e} and ${Ge} describe this repository`,j.other),W("no file draws more of its own UI than its line allows",j.grown),W("every line is exact: a count that fell is a line to lower",j.shrunk,`Run: ${F}${j.updateFixes?"":" (after the failures above are fixed)"}`),L.note&&W(`the baseline is no higher than the base branch (${L.note})`,L.problems);const q=new Set([...k.counts.keys()].map(e=>z(e).file));return t.out(` ok PROGRESS: ${q.size} of ${Qe(k.files.length,"file")} still draw UI of their own: `+Ve(k.counts,E)),t.out(""),U?t.out("UI kit check: ok"):t.err(`UI kit check: FAILED (${Qe(J.length,"problem")})`),U?0:1}(process.argv.slice(2),{cwd:process.cwd(),env:process.env,out:e=>console.log(e),err:e=>console.error(e),loadTypeScript:()=>function(e){for(const i of[n(process.cwd(),"package.json"),e])try{return t(i)("typescript")}catch{}throw new Error("typescript is not installed")}(import.meta.url),git:function(t){try{return e("git",t,{cwd:process.cwd(),encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:6e4,maxBuffer:67108864})}catch{return null}},version:"10.18.0"});
2
+ import{execFileSync as e}from"child_process";import{createRequire as t}from"module";import{join as n}from"path";import{existsSync as i,readFileSync as o,writeFileSync as s,readdirSync as r}from"fs";var a=["button","input","range","textarea","select","dialog","title","portal","native","dark","hex","radius","spacing","font-size","z-index","shadow","kit","icon","svg","kit-dep","chart","chart-dep","ellipsis-label","colour"],l=e=>"string"==typeof e&&a.includes(e),c=["kit-dep","chart-dep"],d=e=>c.includes(e),u=a.filter(e=>!d(e)),h={button:{counts:"a raw <button>",instead:"Button or IconButton from efficient-shell/ui"},input:{counts:"a raw <input> (not hidden, not a range)",instead:"Input, InputNumber, Checkbox, Radio or Switch from efficient-shell/ui"},range:{counts:'a raw <input type="range">',instead:"Slider from efficient-shell/ui"},textarea:{counts:"a raw <textarea>",instead:"Textarea from efficient-shell/ui"},select:{counts:"a raw <select>",instead:"Select or SearchableSelect from efficient-shell/ui"},dialog:{counts:'a raw <dialog>, or role="dialog" / role="alertdialog" on a raw element',instead:"Dialog or Modal from efficient-shell"},title:{counts:"a title= on a raw element (the browser's own tooltip)",instead:"Tooltip from efficient-shell/ui (harness UI-17)"},portal:{counts:"a createPortal(…) call (a layer the file floats itself)",instead:"Popover, PopupMenu, DropdownMenu, Tooltip or Dialog from efficient-shell/ui"},native:{counts:"window.confirm / alert / prompt, or a bare call that resolves to one",instead:"confirm, confirmDestructive, prompt or toast from efficient-shell (harness UI-20)"},dark:{counts:"a dark: variant in a class string",instead:"the light Tailwind class alone; the shell remaps it in dark mode (harness UI-7)"},hex:{counts:"a hex colour literal in a .tsx string",instead:"a colour role from efficient-shell: its utility or var(--role), COLOUR_ROLES lists them (harness FT-1; the colour kind counts palette classes too)"},radius:{counts:"a literal corner radius (an arbitrary-value radius class, or an inline borderRadius)",instead:"a radius utility from the scale or a role token such as rounded-(--radius-control); the theme sets how round they are (harness UI-7)"},spacing:{counts:"a padding, margin or gap off the scale (6px, 10px, 14px …) or written as a literal length (an arbitrary-value class, an inline style)",instead:"a step of the scale 2/4/8/12/16/20/24/32/40/48 — a Tailwind step, or a role such as var(--space-control-x) (owner ruling 2026-10-12)"},"font-size":{counts:"a literal font size (an arbitrary-value text class, an inline fontSize)",instead:"a type step 9/11/12/14/16/18/20/24/30 — Tailwind's 3xs … 3xl text steps (owner ruling 2026-10-12)"},"z-index":{counts:"a stack order above 30 written as a number (a z utility, an arbitrary value, an inline zIndex)",instead:"a named layer: Z_LAYERS (efficient-shell/ui) in code, its --z-* custom property in markup"},shadow:{counts:"a literal shadow, or a shadow size that is not an elevation level (md, 2xl, xs)",instead:"an elevation: the sm / lg / xl utilities, or var(--elevation-panel) and its siblings (owner ruling 2026-10-12)"},kit:{counts:"an import of a second UI kit",instead:"the component from efficient-shell/ui, or fold it into the shell (harness FT-3)"},icon:{counts:"an import of an icon package",instead:"<Icon name> from efficient-shell/icons, drawn by the one set (harness UI-24)"},svg:{counts:"an <svg> element written in JSX: an icon drawn in place",instead:"<Icon name> from efficient-shell/icons, drawn by the one set (harness UI-24). A chart, an illustration or a mark a host supplies stays on the baseline"},"kit-dep":{counts:"a UI kit or icon package declared in package.json (not one the shell entries imported here need)",instead:"remove the dependency once nothing imports it (harness FT-3)"},chart:{counts:"an import of a second chart library",instead:"a chart from efficient-shell/ui (ChartFrame, TimeSeriesChart, ColumnChart, RankedBars, PieChart, FunnelChart, ScatterChart, …), or add the chart there: one chart system (harness FT-3)"},"chart-dep":{counts:"a chart library declared in package.json",instead:"remove the dependency once nothing imports it (harness FT-3)"},"ellipsis-label":{counts:'a button, link or menu label that ends in "…" or "..."',instead:'the label without the dots, saying what it does ("Extend trial"): "…" means only "the words are cut" (owner ruling 2026-10-14)'},colour:{counts:"a literal colour, in a script string or a stylesheet: a hex, an rgb() / hsl() / oklch() value, a Tailwind palette class (a hue and a step, or white / black), a --color-<hue>-<step> variable, or a named colour in a colour property — a var() fallback included",instead:"a colour role from efficient-shell: its utility (the text, background or border utility of ink, ink-faint, surface, line, accent-fill, accent-text, danger-text, status-danger-line …) or var(--role); COLOUR_ROLES lists them. A merchant site reads the site theme (owner ruling 2026-10-23)"}},p=["@headlessui/","@radix-ui/","@mui/","@chakra-ui/","@mantine/","@floating-ui/","antd","react-aria","react-aria-","react-bootstrap","react-select","react-colorful","react-tooltip","react-hot-toast","react-toastify","sonner"],f=["@heroicons/","@tabler/icons","@tabler/icons-","@phosphor-icons/","@fortawesome/","@iconify/","@radix-ui/react-icons","@mui/icons-material","lucide","lucide-react","simple-icons","react-icons","react-feather"],g=["recharts","chart.js","react-chartjs-2","d3","d3-","@nivo/","victory","victory-","echarts","echarts-for-react","apexcharts","react-apexcharts","@visx/","highcharts","highcharts-react-official","plotly.js","plotly.js-dist","react-plotly.js","lightweight-charts","@antv/g2","@antv/g2plot","chartist","billboard.js","c3","uplot"],m={"efficient-shell":["@headlessui/react"]};function w(e,t){return t.some(t=>t.endsWith("/")||t.endsWith("-")?e.startsWith(t):e===t||e.startsWith(`${t}/`))}function k(e){return w(e,f)?"icon":w(e,p)?"kit":w(e,g)?"chart":null}function x(e){const t=k(e);return"kit"===t||"icon"===t?"kit-dep":"chart"===t?"chart-dep":null}var b=/[.+^$()|[\]\\]/g;function $(e){let t="",n=0;for(let i=0;i<e.length;i++){const o=e[i];"*"===o?"*"===e[i+1]?"/"===e[i+2]?(t+="(?:[^/]+/)*",i+=2):(t+=".*",i+=1):t+="[^/]*":"?"===o?t+="[^/]":"{"===o?(t+="(?:",n+=1):"}"===o&&n>0?(t+=")",n-=1):t+=","===o&&n>0?"|":o.replace(b,"\\$&")}if(0!==n)throw new Error(`unbalanced { in glob "${e}"`);return new RegExp(`^${t}$`)}function y(e){const t=e.map($);return e=>t.some(t=>t.test(e))}var v=new Set(["node_modules",".git"]),S=new Set(["dist","coverage",".next",".turbo"]);function j(e){const t=e.search(/[*?{]/),n=-1===t?e:e.slice(0,t),i=n.lastIndexOf("/");return-1===i?"":n.slice(0,i)}function I(e,t){const i=y(t),o=[...new Set(t.map(j))].sort(),s=o.filter(e=>!o.some(t=>t!==e&&(""===t||e.startsWith(`${t}/`)))),a=new Set,l=t=>{let o;try{o=r(n(e,t),{withFileTypes:!0})}catch{return}for(const e of o){const n=t?`${t}/${e.name}`:e.name;e.isDirectory()?v.has(e.name)||""===t&&S.has(e.name)||l(n):e.isFile()&&i(n)&&a.add(n)}};for(const e of s)l(e);return[...a].sort(L)}var L=(e,t)=>e<t?-1:e>t?1:0,R=class extends Error{},A=(e,t)=>`${e}:${t}`;function z(e){const t=e.lastIndexOf(":");return{file:e.slice(0,t),kind:e.slice(t+1)}}var E=e=>a.indexOf(e);function C(e,t){const n=z(e),i=z(t);return L(n.file,i.file)||E(n.kind)-E(i.kind)}function T(e,t="ui-kit.baseline.json"){let n;try{n=JSON.parse(e)}catch(e){throw new R(`${t} is not valid JSON: ${e.message}`)}const i=e=>{throw new R(`${t}: ${e}. The tool writes this file; do not edit it by hand.`)};if("object"!=typeof n||null===n||Array.isArray(n))return i("must be a JSON object");const o=n;if(1!==o.schema)return i("number"==typeof o.schema&&o.schema>1?`"schema": ${o.schema} is newer than this efficient-shell reads (1); upgrade efficient-shell`:'"schema" must be 1');if(!Array.isArray(o.kinds)||o.kinds.some(e=>"string"!=typeof e))return i('"kinds" must be a list');const s=o.kinds.filter(l);if("object"!=typeof o.counts||null===o.counts||Array.isArray(o.counts))return i('"counts" must be an object');const r=new Map;for(const[e,t]of Object.entries(o.counts)){const{file:n,kind:o}=z(e);if(!n||!o)return i(`"${e}" is not "<file>:<kind>"`);if("number"!=typeof t||!Number.isInteger(t)||t<1)return i(`"${e}" must be a whole number, 1 or more (a line that reaches 0 is deleted)`);l(o)&&r.set(e,t)}return{kinds:s,counts:r}}function M(e){const t=a.filter(t=>e.kinds.includes(t)),n=[...e.counts.keys()].filter(t=>(e.counts.get(t)??0)>0).sort(C).map(t=>` ${JSON.stringify(t)}: ${e.counts.get(t)}`);return["{",' "schema": 1,',` "kinds": [${t.map(e=>JSON.stringify(e)).join(", ")}],`,n.length?` "counts": {\n${n.join(",\n")}\n }`:' "counts": {}',"}",""].join("\n")}function B(e){const t={};for(const[n,i]of e){const{kind:e}=z(n);l(e)&&(t[e]=(t[e]??0)+i)}return t}var P=class extends Error{},O=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),D=new Set(["$schema","schema","kinds","include","exclude","includeImporting","output","allow"]);var N="package.json",F=[2,4,8,12,16,20,24,32,40,48];function J(e){if("0"===e||"px"===e)return!0;const t=Number(e);return!!Number.isFinite(t)&&F.includes(4*t)}var U=new Set(["iframe","frame","object","embed"]),W=new Set(["href","xlinkHref","to","id","key","htmlFor"]),q=/(?<![&\w])(?<!url\()#(?:[0-9a-fA-F]{8}|[0-9a-fA-F]{6}|[0-9a-fA-F]{3,4})(?![\w-])/g,_=/(?<![\w-])rounded(?:-(?:[trblse]|tl|tr|br|bl|ss|se|ee|es))?-\[([^\]]*)\]/g,G=/^border(?:(?:Top|Bottom)(?:Left|Right)|(?:Start|End)(?:Start|End))?Radius$/,K=/^(?:inherit|initial|unset|revert)$|var\(|^(?:50|100)%$|^(?:999|9999)(?:px)?$/,H=/(?<![\w-])-?(?:p|px|py|pt|pr|pb|pl|ps|pe|m|mx|my|mt|mr|mb|ml|ms|me|gap|gap-x|gap-y|space-x|space-y)-(\d+(?:\.\d+)?|px|\[[^\]]*\])(?![\w.[/-])/g,Q=/(?<![\w-])text-\[(?:length:)?(\d*\.?\d+(?:px|rem|em|%))\]/g,V=/(?<![\w-])z-(\d+|\[[^\]]*\])(?![\w.[/-])/g,X=/(?<![\w-])shadow-(xs|2xs|md|2xl|\[[^\]]*\])(?![\w.[/-])/g,Z=/var\(|^(?:inherit|initial|unset|revert|revert-layer|none|auto)$/,Y=/^(?:(?:padding|margin)(?:Top|Right|Bottom|Left|Inline|Block|InlineStart|InlineEnd|BlockStart|BlockEnd)?|gap|rowGap|columnGap)$/,ee=new Set([0,...F]),te=/(?<![\w-])dark:(?=[\w[\-!@*(])/g,ne="slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose",ie="(?:50|[1-9]00|950)",oe=new RegExp(`(?<![\\w-])(?:bg|text|border(?:-[xytrblse])?|ring(?:-offset)?|inset-ring|outline|divide|fill|stroke|from|via|to|shadow|inset-shadow|drop-shadow|accent|caret|decoration|placeholder)-(?:(?:${ne})-${ie}|white|black)(?:\\/[\\w.]+)?(?![\\w-])`,"g"),se=new RegExp(`--color-(?:(?:${ne})-${ie}|white|black)(?![\\w-])`,"g"),re=/(?<![\w-])(?:rgba?|hsla?|hwb|oklch|oklab|lab|lch)\(\s*[\d.]/g,ae=/(?<![\w-])(?:white|black|red|green|blue|yellow|orange|purple|pink|gray|grey|silver|maroon|navy|teal|olive|lime|aqua|fuchsia|brown|gold|beige|ivory|tan|crimson|coral|salmon|indigo|violet)(?![\w-])/gi,le=/^(?:color|background(?:Color)?|border(?:Top|Right|Bottom|Left|Inline|Block)?(?:Color)?|outline(?:Color)?|fill|stroke|caretColor|accentColor|textDecorationColor|boxShadow|textShadow)$/,ce=/(?<![&a-zA-Z0-9])(?<!url\()#(?:[0-9a-fA-F]{8}|[0-9a-fA-F]{6}|[0-9a-fA-F]{3,4})(?![\w-])/g,de=e=>[...e.matchAll(ce)].length+[...e.matchAll(re)].length+[...e.matchAll(oe)].length+[...e.matchAll(se)].length,ue=new Set(["button","a","option","Button","IconButton","SplitButton","Link","NavLink","PopupMenuItem","PopupMenuLabel","DropdownMenuItem","MenuItem","ContextMenuItem"]),he=/(?:…|\.\.\.|&hellip;)\s*$/,pe=new RegExp("\\p{L}","u"),fe=new RegExp("\\p{L}[\\p{L}-]*","u"),ge={busy:{words:["Accepting","Adding","Applying","Approving","Arranging","Asking","Assigning","Booking","Building","Calculating","Cancelling","Capturing","Changing","Checking","Choosing","Closing","Combining","Comparing","Completing","Confirming","Connecting","Converting","Copying","Correcting","Counting","Creating","Deleting","Detaching","Downloading","Drawing","Duplicating","Emailing","Ending","Exporting","Fetching","Filing","Finding","Flushing","Generating","Grouping","Importing","Linking","Loading","Locating","Looking","Making","Marking","Matching","Measuring","Merging","Moving","Opening","Ordering","Paying","Pending","Posting","Preparing","Previewing","Pricing","Processing","Provisioning","Publishing","Purging","Pushing","Queued","Queuing","Quoting","Re-booking","Re-importing","Re-opening","Reading","Rebooting","Rebuilding","Receiving","Reconciling","Reconnecting","Recording","Refreshing","Refunding","Regenerating","Registering","Reinstating","Rejecting","Removing","Reopening","Requesting","Resending","Resetting","Resolving","Restarting","Restoring","Resuming","Retrying","Reversing","Reverting","Running","Saving","Searching","Sending","Setting","Settling","Sharing","Signing","Splitting","Starting","Submitting","Suggesting","Switching","Syncing","Taking","Testing","Transferring","Typing","Updating","Uploading","Verifying","Waiting","Withdrawing","Working"],zhStarts:["正在"],zhEnds:["中"]},placeholder:{},prompt:{}},me=new Set((ge.busy?.words??[]).map(e=>e.toLowerCase())),we=new Set(["label","aria-label",...ge.placeholder?[]:["placeholder","searchPlaceholder","emptyOptionLabel","blankLabel"]]),ke=(e,t)=>{if(!he.test(t)||!pe.test(e))return!1;const n=e.match(fe)?.[0]?.toLowerCase();if(n&&me.has(n))return!1;const i=e.replace(he,"").trim(),o=ge.busy;return!(o&&(o.zhStarts.some(e=>i.startsWith(e))||o.zhEnds.some(e=>i.endsWith(e))))},xe=new Set(["confirm","alert","prompt"]),be=new Set(["window","globalThis","self"]);var $e=e=>/\.(?:[cm]?[jt]s|[jt]sx)$/.test(e)&&!e.endsWith(".d.ts"),ye=e=>/\.(?:css|scss)$/.test(e),ve=/^(?:color|background(?:-color)?|border(?:-(?:top|right|bottom|left|inline|block)(?:-(?:start|end))?)?(?:-color)?|outline(?:-color)?|fill|stroke|caret-color|accent-color|text-decoration(?:-color)?|box-shadow|text-shadow|column-rule(?:-color)?)$/;function Se(e,t){if(!t.includes("colour"))return{};const n=e.replace(/\/\*[\s\S]*?\*\//g,e=>e.replace(/[^\n]/g," ")),i=[],o=e=>n.slice(0,e).split("\n").length;let s=0,r=0;for(let e=0;e<n.length;e++){const t=n[e];if("{"===t||"}"===t||";"===t){const a=n.slice(r,e);if("{"!==t&&s>0){const e=r+(a.length-a.trimStart().length),t=a.trim(),n=t.indexOf(":");if(t.startsWith("@apply"))for(let n=[...t.matchAll(oe)].length;n>0;n--)i.push(o(e));else if(n>0){const s=t.slice(0,n).trim().toLowerCase(),r=t.slice(n+1);if(!/^(?:-webkit-)?mask/.test(s)){const t=de(r)+(ve.test(s)?[...r.matchAll(ae)].length:0);for(let n=0;n<t;n++)i.push(o(e))}}}"{"===t?s++:"}"===t&&(s=Math.max(0,s-1)),r=e+1}}return i.length?{colour:i}:{}}function je(e,t,n,i,o){const s=new Set(i),r=e.createSourceFile(t,n,e.ScriptTarget.Latest,!0,function(e,t){return t.endsWith(".tsx")?e.ScriptKind.TSX:t.endsWith(".jsx")?e.ScriptKind.JSX:/\.[cm]?js$/.test(t)?e.ScriptKind.JS:e.ScriptKind.TS}(e,t)),a={},l=/\.[jt]sx$/.test(t),c=e=>r.getLineAndCharacterOfPosition(e).line+1,d=(e,t)=>{s.has(e)&&(a[e]??=[]).push(c(t.getStart(r)))},u=(t,n)=>t.attributes.properties.find(t=>e.isJsxAttribute(t)&&t.name.getText(r)===n),h=t=>{const n=t?.initializer;if(n)return e.isStringLiteral(n)?n.text:e.isJsxExpression(n)&&n.expression&&e.isStringLiteralLike(n.expression)?n.expression.text:void 0},p=new Set;if(s.has("native")){const t=n=>{if(n)if(e.isIdentifier(n))xe.has(n.text)&&p.add(n.text);else if(e.isObjectBindingPattern(n)||e.isArrayBindingPattern(n))for(const i of n.elements)e.isBindingElement(i)&&t(i.name)},n=i=>{(e.isImportClause(i)||e.isImportSpecifier(i)||e.isNamespaceImport(i)||e.isVariableDeclaration(i)||e.isParameter(i)||e.isFunctionDeclaration(i))&&t(i.name),e.forEachChild(i,n)};n(r)}const f=t=>t&&e.isStringLiteralLike(t)?t.text:void 0,g=(e,t)=>{e&&("efficient-shell"===e||e.startsWith("efficient-shell/"))&&o?.add(e);const n=e?k(e):null;n&&d(n,t)},m=(e,t,n)=>{if(s.has("dark"))for(const n of e.matchAll(te))d("dark",t);if(s.has("radius"))for(const n of e.matchAll(_))K.test(n[1].trim())||d("radius",t);if(n&&l&&s.has("hex"))for(const n of e.matchAll(q))d("hex",t);if(n&&s.has("colour"))for(let n=de(e);n>0;n--)d("colour",t);if(s.has("spacing"))for(const n of e.matchAll(H)){const e=n[1];(e.startsWith("[")?Z.test(e.slice(1,-1).trim()):J(e))||d("spacing",t)}if(s.has("font-size"))for(const n of e.matchAll(Q))d("font-size",t);if(s.has("z-index"))for(const n of e.matchAll(V)){const e=n[1].startsWith("[")?n[1].slice(1,-1).trim():n[1];/^\d+$/.test(e)&&Number(e)>30&&d("z-index",t)}if(s.has("shadow"))for(const n of e.matchAll(X))n[1].startsWith("[")&&Z.test(n[1].slice(1,-1).trim())||d("shadow",t)},w=(t,n,i)=>{const o=e.isStringLiteralLike(n)?n.text.trim():void 0;if(s.has("colour")&&void 0!==o&&le.test(t))for(const e of o.matchAll(ae))d("colour",i);if(s.has("spacing")&&Y.test(t))e.isNumericLiteral(n)?ee.has(Number(n.text))||d("spacing",i):void 0!==o&&!Z.test(o)&&(e=>[...e.matchAll(/(-?\d*\.?\d+)(px|rem|em)\b/g)].map(e=>Math.abs(Number(e[1]))*("px"===e[2]?1:16)))(o).some(e=>!ee.has(e))&&d("spacing",i);else if(s.has("font-size")&&"fontSize"===t)(e.isNumericLiteral(n)||void 0!==o&&!Z.test(o)&&!/^(?:smaller|larger)$/.test(o))&&d("font-size",i);else if(s.has("z-index")&&"zIndex"===t){const t=[],o=n=>{e.isNumericLiteral(n)||e.isStringLiteralLike(n)&&/^\d+$/.test(n.text.trim())?t.push(Number(n.text)):e.forEachChild(n,o)};o(n);for(const e of t)e>30&&d("z-index",i)}else s.has("shadow")&&"boxShadow"===t&&(void 0===o||""===o||Z.test(o)||d("shadow",i))},x=(t,n)=>{if(e.isJsxOpeningElement(t)||e.isJsxSelfClosingElement(t)){const e=t.tagName.getText(r);if(/^[a-z]/.test(e)){const n=h(u(t,"type"));"svg"===e&&d("svg",t),"button"===e?d("button",t):"select"===e?d("select",t):"textarea"===e?d("textarea",t):"input"===e&&("range"===n?d("range",t):"hidden"!==n&&d("input",t));const i=h(u(t,"role"));"dialog"!==e&&"dialog"!==i&&"alertdialog"!==i||d("dialog",t),!U.has(e)&&u(t,"title")&&d("title",t)}}else if(e.isCallExpression(t)){const n=t.expression;e.isIdentifier(n)?"createPortal"===n.text?d("portal",t):xe.has(n.text)&&!p.has(n.text)?d("native",t):"require"===n.text&&g(f(t.arguments[0]),t):e.isPropertyAccessExpression(n)?"createPortal"===n.name.text?d("portal",t):xe.has(n.name.text)&&e.isIdentifier(n.expression)&&be.has(n.expression.text)&&d("native",t):n.kind===e.SyntaxKind.ImportKeyword&&g(f(t.arguments[0]),t)}else{if(e.isImportDeclaration(t)||e.isExportDeclaration(t))return void g(f(t.moduleSpecifier),t);if(e.isPropertyAssignment(t)){const n=e.isIdentifier(t.name)||e.isStringLiteralLike(t.name)?t.name.text:"",i=t.initializer;w(n,i,t),s.has("radius")&&G.test(n)&&(e.isNumericLiteral(i)?K.test(i.text)||d("radius",t):e.isStringLiteralLike(i)&&!K.test(i.text.trim())&&d("radius",t))}else if(e.isStringLiteralLike(t))m(t.text,t,n);else if(e.isTemplateExpression(t)){m(t.head.text,t.head,n);for(const e of t.templateSpans)m(e.literal.text,e.literal,n)}}e.isJsxAttribute(t)&&W.has(t.name.getText(r))?e.forEachChild(t,e=>x(e,!1)):e.forEachChild(t,e=>x(e,n))};return x(r,!0),s.has("ellipsis-label")&&function(e,t,n){const i=new Set,o=(e,t)=>{i.has(e)||(i.add(e),n(t))},s=n=>{if(n)if(e.isStringLiteralLike(n))ke(n.text,n.text)&&o(n,n.getStart(t));else if(e.isTemplateExpression(n)){const e=[n.head.text,...n.templateSpans.map(e=>e.literal.text)];ke(e.join(" "),e[e.length-1])&&o(n,n.getStart(t))}else e.isConditionalExpression(n)?(s(n.whenTrue),s(n.whenFalse)):e.isBinaryExpression(n)?(s(n.left),s(n.right)):e.isParenthesizedExpression(n)||e.isAsExpression(n)||e.isJsxExpression(n)?s(n.expression):e.isCallExpression(n)&&Ie.has(Le(n.expression))&&n.arguments[0]&&s(n.arguments[0])},r=n=>{for(const i of n)if(e.isJsxText(i)){const e=i.getText(t);ke(e,e)&&o(i,i.getStart(t)+(e.length-e.trimStart().length))}else e.isJsxExpression(i)?s(i.expression):(e.isJsxElement(i)||e.isJsxFragment(i))&&r(i.children)},a=(n,i)=>{const o=n.attributes.properties.find(n=>e.isJsxAttribute(n)&&n.name.getText(t)===i),s=o?.initializer;return s&&e.isStringLiteral(s)?s.text:s&&e.isJsxExpression(s)&&s.expression&&e.isStringLiteralLike(s.expression)?s.expression.text:void 0},l=t=>t.properties.some(t=>e.isPropertyAssignment(t)&&(e.isIdentifier(t.name)||e.isStringLiteralLike(t.name))&&"value"===t.name.text&&e.isStringLiteralLike(t.initializer)&&""===t.initializer.text),c=n=>{if(e.isJsxElement(n)){const e=n.openingElement,i=e.tagName.getText(t),o="option"===i&&ge.prompt&&""===a(e,"value");ue.has(i)&&!o&&r(n.children)}else if(e.isJsxAttribute(n))we.has(n.name.getText(t))&&s(n.initializer);else if(e.isPropertyAssignment(n)){const t=e.isIdentifier(n.name)||e.isStringLiteralLike(n.name)?n.name.text:"",i=ge.prompt&&e.isObjectLiteralExpression(n.parent)&&l(n.parent);we.has(t)&&!i&&s(n.initializer)}e.forEachChild(n,c)};c(t)}(e,r,e=>(a["ellipsis-label"]??=[]).push(c(e))),a}var Ie=new Set(["say","t"]),Le=e=>{const t=e.getText();return t.slice(t.lastIndexOf(".")+1)};function Re(e){const t={};for(const[n,i]of Object.entries(e))i.length&&(t[n]=i.length);return t}function Ae(e,t,n){const i=e.createSourceFile(t,n,e.ScriptTarget.Latest,!1),o=[];for(const t of i.statements)(e.isImportDeclaration(t)||e.isExportDeclaration(t))&&t.moduleSpecifier&&e.isStringLiteralLike(t.moduleSpecifier)&&o.push(t.moduleSpecifier.text);return o}var ze=(e,t)=>e.some(e=>t.some(t=>t.endsWith("/*")?e.startsWith(t.slice(0,-1)):e===t));var Ee=e=>new Map(e.allow.map(e=>[A(e.file,e.kind),e.count]));function Ce(e,t){return e.kinds.filter(e=>t.kinds.includes(e))}var Te=(e,t,n)=>{if("kit-dep"===n)return` (${e.kitDeps.join(", ")})`;if("chart-dep"===n)return` (${e.chartDeps.join(", ")})`;const i=e.hits.get(t)?.[n]??[];if(0===i.length)return"";const o=i.slice(0,12).join(", ");return` (line${1===i.length?"":"s"} ${o}${i.length>12?", …":""})`};function Me(e,t,n){const i=Ee(e),o=new Map;for(const[e,s]of t.counts){const{kind:t}=z(e);if(!l(t)||!n.includes(t))continue;const r=s-(i.get(e)??0);r>0&&o.set(e,r)}return{kinds:a.filter(e=>n.includes(e)),counts:o}}function Be(e,t){let n=0;for(const i of new Set([...e.keys(),...t.keys()]))(e.get(i)??0)!==(t.get(i)??0)&&(n+=1);return n}var Pe="\n// <button> in a comment is not a button, and <svg> in one is not a drawing\n/* nor is <input title=\"x\"> in this one, or dark:bg-black, or #fff */\nimport { createPortal } from 'react-dom';\nimport { Dialog } from '@headlessui/react';\nimport { TrashIcon } from '@heroicons/react/24/outline';\nimport type { Icon } from 'lucide-react';\nimport { Button, confirm } from 'efficient-shell';\nexport { Slot } from '@radix-ui/react-slot';\nexport { CheckIcon } from '@radix-ui/react-icons';\nimport { LineChart } from 'recharts';\nimport 'd3-scale';\nexport { VictoryPie } from 'victory';\nimport { BarChart } from '@mui/x-charts';\nimport Tree from 'react-d3-tree';\nimport { TimeSeriesChart } from 'efficient-shell/ui';\n// import 'chart.js' in a comment is not an import, and 'echarts' in a string is not one either\nconst chartLabel = 'd3-array';\n\nconst a = <button title=\"Says what it does\">x</button>;\nconst b = <input type=\"range\" />;\nconst c = <input type=\"text\" />;\nconst c2 = <input type={\"hidden\"} name=\"csrf\" />;\nconst c3 = <input type=\"hidden\" />;\nconst c4 = <input type={kind} />;\nconst d = <select />;\nconst d2 = <textarea />;\nconst e = <div role=\"dialog\" />;\nconst e2 = <dialog open />;\nconst e3 = <section role={'alertdialog'} />;\nconst f = <iframe title=\"Preview\" />;\nconst f2 = <object title=\"Chart\" />;\nconst g = <Button title=\"a prop, not a tooltip\" role=\"dialog\" />;\nconst g2 = (\n <button\n type=\"button\"\n title={hint}\n >\n y\n </button>\n);\nconst h = ReactDOM.createPortal(a, document.body);\nconst i = createPortal(a, document.body);\n\nasync function leave() {\n if (window.confirm('Sure?')) return;\n globalThis.alert('No');\n alert('native: nothing binds the name');\n prompt('native too');\n await confirm('the shell: the import binds it');\n record.confirm('a method, not the popup');\n}\n\nconst j = <div className=\"bg-white dark:bg-black dark:hover:text-white is-dark:no\" />;\nconst k = clsx('text-gray-900', on && 'dark:text-gray-100');\nconst l = <span style={{ color: '#fff', background: \"#12ab34\" }} className={`border-[#0a0b0c80] ${x}`} />;\nconst m = <a href=\"#faded\" id=\"#bad\" key=\"#abc\" to=\"#face\">skip</a>;\nconst n = <label htmlFor={'#dead'}>skip</label>;\nconst o = <span>&#1234; and BG#00340 and #12345 and #added are not colours</span>;\nconst p = 'entity &#x1f; ref BG#00340';\nconst q = <use xlinkHref=\"#abc\" fill=\"url(#fed)\" />;\nconst t = <div className=\"rounded-[4px] rounded-t-[0.5rem] hover:rounded-[2px] rounded-lg rounded-(--radius-card) rounded-[inherit] rounded-[var(--r)]\" />;\nconst u = <div style={{ borderRadius: 6, borderTopLeftRadius: '3px', borderBottomRightRadius: '50%', borderEndEndRadius: 'var(--radius-card)' }} />;\nconst v = <i style={{ borderRadius: 9999 }} />;\nconst w = <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M4 4h16\" /></svg>;\nconst w2 = <Svg viewBox=\"0 0 24 24\" />;\nconst w3 = '<svg viewBox=\"0 0 1 1\"></svg> in a string is not an element';\nconst r = lazy(() => import('@mui/material'));\nconst s = require('react-select');\nconst s2 = require('chart.js/auto');\nconst s3 = import('@nivo/line');\n",Oe={button:2,input:2,range:1,textarea:1,select:1,dialog:3,title:2,portal:2,native:4,dark:3,hex:3,radius:5,kit:5,icon:3,svg:1,chart:5,colour:8},De={kit:1,dark:1,portal:1,radius:2,chart:1,colour:2},Ne=(...e)=>e.join("-"),Fe=`\nconst s1 = <i className="${[Ne("px","2.5"),Ne("py","1.5"),"md:"+Ne("gap","1.5"),"-"+Ne("mt","1.5"),Ne("p","[10px]")].join(" ")}" />;\nconst s2 = <i className="${[Ne("p","0"),Ne("px","px"),Ne("p","0.5"),Ne("p","3"),Ne("gap-x","4"),Ne("p","12"),Ne("p","(--space-12)"),Ne("p","[var(--space-12)]"),Ne("space-x","reverse"),Ne("top","1.5")].join(" ")}" />;\nconst s3 = <i style={{ padding: 6, marginTop: '10px', gap: 8, margin: '0 auto', paddingInline: 'var(--space-12)' }} />;\nconst f1 = <i className="${[Ne("text","[11px]"),Ne("text","[0.8rem]"),Ne("text","xs"),Ne("text","[#fff]"),Ne("text","(--text-2xs)")].join(" ")}" />;\nconst f2 = <i style={{ fontSize: 12 }} />;\nconst f3 = { fontSize: 'var(--x)', font: 'inherit' };\nconst z1 = <i className="${[Ne("z","[9999]"),Ne("z","50"),Ne("z","10"),Ne("z","30"),"-"+Ne("z","10"),Ne("z","auto"),Ne("z","(--z-popup)"),Ne("z","[var(--z-popup)]")].join(" ")}" />;\nconst z2 = { zIndex: on ? 2020 : 2010 };\nconst z3 = { zIndex: Z_LAYERS.popup, top: 9999 };\nconst h1 = <i className="${[Ne("shadow","[0_1px_2px_#000]"),Ne("shadow","md"),"shadow",Ne("shadow","lg"),Ne("shadow","(--elevation-panel)"),Ne("shadow","black/20"),Ne("drop-shadow","md")].join(" ")}" />;\nconst h2 = { boxShadow: '0 1px 2px rgba(0,0,0,.1)' };\nconst h3 = { boxShadow: 'none', outline: 'var(--elevation-raised)' };\n`,Je={spacing:7,"font-size":3,"z-index":4,shadow:3,hex:1,colour:4},Ue={colour:4},We={"ellipsis-label":9},qe=e=>a.filter(t=>e[t]).map(t=>`${t} ${e[t]}`).join(", ")||"nothing";var _e="ui-kit.config.json",Ge="ui-kit.baseline.json",Ke="efficient-shell-ui-check",He=`${Ke}: every surface a person operates takes its UI from efficient-shell (harness UI-24).\n\n ${Ke} check this repository against ${Ge}\n ${Ke} --print print today's counts as a baseline, and change nothing\n ${Ke} --summary print totals per kind and per folder, as Markdown\n ${Ke} --json print the result as JSON\n ${Ke} --update lower the lines whose counts fell, and delete the ones at zero\n ${Ke} --update --allow-move also follow a renamed or split file (no total may rise)\n ${Ke} --init write the first ${Ge}\n ${Ke} --init --kind <kind> take the baseline for a kind just added to "kinds"\n ${Ke} --no-base do not compare with the pull request's base branch\n\nKinds: ${a.join(", ")}\nReads ${_e} in the current directory.`;var Qe=(e,t)=>`${e} ${t}${1===e?"":"s"}`,Ve=(e,t)=>{const n=B(e);return t.map(e=>`${e} ${n[e]??0}`).join(" · ")};process.exitCode=function(e,t){const r=function(e){const t={print:!1,summary:!1,json:!1,update:!1,allowMove:!1,init:!1,noBase:!1,help:!1,version:!1,kinds:[]};for(let n=0;n<e.length;n++){const i=e[n];if("--print"===i)t.print=!0;else if("--summary"===i)t.summary=!0;else if("--json"===i)t.json=!0;else if("--update"===i)t.update=!0;else if("--allow-move"===i)t.allowMove=!0;else if("--init"===i)t.init=!0;else if("--no-base"===i)t.noBase=!0;else if("--help"===i||"-h"===i)t.help=!0;else if("--version"===i||"-v"===i)t.version=!0;else if("--kind"===i){const i=e[++n];if(!i)return"--kind needs a kind after it";t.kinds.push(...i.split(","))}else{if(!i.startsWith("--kind="))return`unknown argument "${i}"`;t.kinds.push(...i.slice(7).split(","))}}return t.allowMove&&!t.update?"--allow-move goes with --update":t.kinds.length&&!t.init?"--kind goes with --init":[t.print,t.summary,t.update,t.init].filter(Boolean).length>1?"choose one of --print, --summary, --update and --init":t}(e);if("string"==typeof r)return t.err(`${Ke}: ${r}\n\n${He}`),2;if(r.help)return t.out(He),0;if(r.version)return t.out(t.version),0;const c=e=>(r.json?t.out(JSON.stringify({tool:Ke,version:t.version,ok:!1,failures:[e]},null,2)):t.err(`${Ke}: ${e}`),1),p=n(t.cwd,_e);if(!i(p))return c(`no ${_e} in ${t.cwd}. Run it from the repository root; the harness has the template.`);let f,g;try{f=function(e,t="ui-kit.config.json"){const n=[],i=e=>{n.push(e)},o=(e,t,{required:n=!1}={})=>{if(void 0===e&&!n)return[];if(!Array.isArray(e)||e.some(e=>"string"!=typeof e||""===e))return i(`${t} must be a list of non-empty strings`),[];n&&0===e.length&&i(`${t} must name at least one entry`);for(const n of e)(n.startsWith("/")||n.startsWith("./")||n.includes("\\")||n.split("/").includes(".."))&&i(`${t}: "${n}" must be a path from the repository root, written with / (no ./, .. or \\)`);return e},s=(e,t)=>"string"!=typeof e||e.trim().length<10?(i(`${t} needs a "reason" a reviewer can read (a sentence, not a word)`),""):e,r=(e,t)=>void 0===e?[]:!Array.isArray(e)||e.some(e=>!O(e))?(i(`${t} must be a list of objects`),[]):e;if(!O(e))throw new P(`${t}: must be a JSON object`);for(const t of Object.keys(e))D.has(t)||i(`unknown key "${t}"`);1!==e.schema&&i("number"==typeof e.schema&&e.schema>1?`"schema": ${e.schema} is newer than this efficient-shell reads (1); upgrade efficient-shell`:'"schema" must be 1');const c=[];if(Array.isArray(e.kinds)&&0!==e.kinds.length)for(const t of e.kinds)l(t)?c.includes(t)?i(`"kinds": "${t}" is listed twice`):c.push(t):i(`"kinds": unknown kind ${JSON.stringify(t)} (this efficient-shell knows: ${a.join(", ")})`);else i(`"kinds" must list the kinds this repository checks, from: ${a.join(", ")}`);const d=o(e.include,'"include"'),u=o(e.exclude,'"exclude"'),h=r(e.includeImporting,'"includeImporting"').map((e,t)=>({files:o(e.files,`"includeImporting"[${t}].files`,{required:!0}),modules:o(e.modules,`"includeImporting"[${t}].modules`,{required:!0}),reason:s(e.reason,`"includeImporting"[${t}]`)}));0===d.length&&0===h.length&&i('"include" must name the files that are operator UI (for example ["src/**/*.tsx"])');const p=r(e.output,'"output"').map((e,t)=>({files:o(e.files,`"output"[${t}].files`,{required:!0}),reason:s(e.reason,`"output"[${t}]`)})),f=[],g=new Set;if(r(e.allow,'"allow"').forEach((e,t)=>{const n=`"allow"[${t}]`,[r]=o([e.file],`${n}.file`),d=s(e.reason,n);if(!l(e.kind))return void i(`${n}.kind must be one of: ${a.join(", ")}`);if(c.includes(e.kind)||i(`${n}: kind "${e.kind}" is not in "kinds"`),"number"!=typeof e.count||!Number.isInteger(e.count)||e.count<1)return void i(`${n}.count must be a whole number, 1 or more`);if(!r)return;const u=`${r}:${e.kind}`;g.has(u)&&i(`${n}: ${r} already has an allow entry for "${e.kind}"`),g.add(u),f.push({file:r,kind:e.kind,count:e.count,reason:d})}),n.length)throw new P(`${t}:\n - ${n.join("\n - ")}`);return{schema:1,kinds:a.filter(e=>c.includes(e)),include:d,exclude:u,includeImporting:h,output:p,allow:f}}(JSON.parse(o(p,"utf8")),_e)}catch(e){return c(e instanceof P?e.message:`${_e} is not valid JSON: ${e.message}`)}try{g=t.loadTypeScript()}catch{return c('this check reads the TypeScript AST and found no "typescript" package here. Install it as a devDependency.')}const w=function(e){const t=[],n=u,i=[["fixture.tsx",Pe,Oe],["fixture.ts","\nimport { toast } from 'sonner';\nimport { extent } from 'd3-array';\nexport const tone = { warn: '#f59e0b' };\nexport const cls = 'ring-1 dark:ring-white rounded-[3px]';\nexport const box = { borderRadius: '0.25rem', radius: 4 };\nexport function ask(confirm: (message: string) => boolean) {\n return confirm('a parameter binds the name');\n}\nexport const mount = (node: unknown) => ReactDOM.createPortal(node, document.body);\n",De],["tokens.tsx",Fe,Je],["labels.tsx","\n// <Button>Save…</Button> in a comment is not a label\nconst l1 = <Button>Extend trial…</Button>;\nconst l2 = <PopupMenuItem onClick={go}><span>Read from a PDF...</span></PopupMenuItem>;\nconst l3 = <Button>{busy ? 'Saving…' : 'Duplicate site…'}</Button>;\nconst l4 = <Item label=\"Translate…\" aria-label={'More…'} />;\nconst l5 = [{ label: 'Reject…' }, { value: CUSTOM, label: 'Custom…' }];\nconst l6 = <option value={CUSTOM}>Different address…</option>;\nconst l7 = <PopupMenuLabel>{say(\"Duplicate to page…\")}</PopupMenuLabel>;\nconst n7 = <Button>{t('team:menu.remove')}</Button>;\nconst n1 = <Button>{`${name.slice(0, 9)}…`}</Button>;\nconst n2 = <p>Loading weather…</p>;\nconst n3 = <Input placeholder=\"Search…\" />;\nconst n4 = <option value=\"\">Pick a carrier…</option>;\nconst n5 = [{ value: '', label: 'Select…' }];\nconst n6 = <Button>Extend trial</Button>;\n",We]];for(const[o,s,r]of i){const i=Re(je(e,o,s,n));n.some(e=>(i[e]??0)!==(r[e]??0))&&t.push(`${o}: read ${qe(i)}; it holds ${qe(r)}`)}const o=Re(Se('\n/* #fff in a comment */\n.a:hover { color: #111; border: 1px solid white; }\n[data-x="#fff"] { mask-image: linear-gradient(#000, transparent); color: var(--ink); }\n.b { --mine: rgb(0 0 0 / .5); background: var(--surface, #fff); }\n',n));n.some(e=>(o[e]??0)!==(Ue[e]??0))&&t.push(`style.css: read ${qe(o)}; it holds ${qe(Ue)}`);const s=Re(je(e,"fixture.tsx",Pe,["button"]));return"button"!==Object.keys(s).join()&&t.push(`asked for button alone, the reader reported ${qe(s)}`),t}(g);if(w.length)return c(`the reader misread its own fixtures with typescript ${g.version}, so nothing it says about this repository can be trusted:\n - `+w.join("\n - "));const k=function(e,t,s){const r=[],a=y(s.exclude),l=y(s.output.flatMap(e=>e.files)),c=new Map,u=e=>{let i=c.get(e);return void 0===i&&c.set(e,i=o(n(t,e),"utf8")),i},h=(e,n)=>{for(const i of e)0===I(t,[i]).length&&r.push(`${n}: "${i}" matches no file. Delete the line, or fix the path.`)};h(s.include,'"include"'),s.output.forEach((e,t)=>h(e.files,`"output"[${t}]`)),s.includeImporting.forEach((e,t)=>h(e.files,`"includeImporting"[${t}]`));const p=new Set,f=s.kinds.includes("colour"),g=e=>($e(e)||f&&ye(e))&&!a(e)&&!l(e);for(const e of I(t,s.include))g(e)&&p.add(e);for(const n of s.includeImporting)for(const i of I(t,n.files))g(i)&&$e(i)&&!p.has(i)&&ze(Ae(e,i,u(i)),n.modules)&&p.add(i);const w=[...p].sort(),k=s.kinds.filter(e=>!d(e)),b=new Map,$=new Map,v=new Set;for(const t of w){const n=ye(t)?Se(u(t),k):je(e,t,u(t),k,v);let i=!1;for(const e of k){const o=n[e]?.length??0;o&&($.set(A(t,e),o),i=!0)}i&&b.set(t,n)}let S=[],j=[],L=[];const R=s.kinds.filter(d);if(R.length){const e=n(t,N);if(i(e)){const t=JSON.parse(o(e,"utf8")),n=["dependencies","peerDependencies","optionalDependencies"].flatMap(e=>Object.keys(t[e]??{})),i=new Set([...v].flatMap(e=>m[e]??[])),r=[...new Set(n)].sort();if(s.kinds.includes("kit-dep")){const e=r.filter(e=>"kit-dep"===x(e));S=e.filter(e=>!i.has(e)),j=e.filter(e=>i.has(e)),S.length&&$.set(A(N,"kit-dep"),S.length)}s.kinds.includes("chart-dep")&&(L=r.filter(e=>"chart-dep"===x(e)),L.length&&$.set(A(N,"chart-dep"),L.length))}else for(const e of R)r.push(`"kinds" includes "${e}", and there is no ${N} here to read.`)}for(const e of s.allow)(d(e.kind)?e.file===N:p.has(e.file))||r.push(`"allow": ${e.file} (${e.kind}) is not a file this check reads. Delete the entry, or fix the path.`);return{files:w,hits:b,counts:$,kitDeps:S,shellPeers:j,chartDeps:L,problems:r}}(g,t.cwd,f);if(0===k.files.length)return c(`read no files. "include" in ${_e} matches nothing, so a pass would mean nothing.`);const b=n(t.cwd,Ge),$=r.json,v=e=>{$||t.out(e)};if(r.print)return t.out(M(Me(f,k,f.kinds)).trimEnd()),0;if(r.summary){for(const e of function(e,t){const n=new Map,i=new Map;for(const[e,o]of t.counts){const{file:t,kind:s}=z(e);if(!l(s))continue;const r=n.get(s)??{count:0,files:new Set};r.count+=o,r.files.add(t),n.set(s,r);const a=t.split("/"),c=a.length>2?a.slice(0,2).join("/"):2===a.length?a[0]:".",d=i.get(c)??{};d[s]=(d[s]??0)+o,i.set(c,d)}const o=e.kinds.filter(e=>n.has(e)),s=[`**UI kit check (harness UI-24):** ${new Set([...t.counts.keys()].map(e=>z(e).file)).size} of ${Qe(t.files.length,"file")} still draw UI of their own.`,"","| Kind | Count | Files | The shell has |","|---|---:|---:|---|",...e.kinds.map(e=>{const t=n.get(e);return`| \`${e}\` | ${t?.count??0} | ${t?.files.size??0} | ${h[e].instead} |`})];if(o.length&&i.size){const e=e=>o.reduce((t,n)=>t+(e[n]??0),0),t=[...i].sort((t,n)=>e(n[1])-e(t[1])||(t[0]<n[0]?-1:1));s.push("",`| Folder | ${o.map(e=>`\`${e}\``).join(" | ")} | Total |`,`|---|${o.map(()=>"---:").join("|")}|---:|`,...t.map(([t,n])=>`| \`${t}\` | ${o.map(e=>n[e]??0).join(" | ")} | ${e(n)} |`))}return s}(f,k))t.out(e);return 0}let S=null;if(i(b))try{S=T(o(b,"utf8"),Ge)}catch(e){return c(e instanceof R?e.message:String(e))}if(r.init){const e=r.kinds.filter(e=>!l(e)||!f.kinds.includes(e));if(e.length)return c(`--kind ${e.join(", ")}: not in "kinds" in ${_e}. Add it there first.`);const t=r.kinds;if(S){if(0===t.length)return c(`${Ge} already exists, and --init would overwrite what it holds. It is for the adoption pull request only. To start checking a kind, add it to "kinds" and run --init --kind <kind>.`);const e=t.filter(e=>S.kinds.includes(e));if(e.length)return c(`the baseline was already taken for ${e.join(", ")}. Its lines only go down; use --update.`);const n=Me(f,k,t);S={kinds:[...S.kinds,...t],counts:new Map([...S.counts,...n.counts])}}else{if(t.length)return c(`there is no ${Ge} yet. Run --init on its own first.`);S=Me(f,k,f.kinds)}s(b,M(S)),v(`${Ke}: wrote ${Ge} (${Qe(S.counts.size,"line")}: ${Ve(S.counts,S.kinds)})`)}if(!S)return c(`no ${Ge}. This repository has not adopted the check yet: run ${Ke} --init, and commit the file.`);if(r.update){const e=function(e,t,n,{allowMove:i=!1}={}){const o=Ce(e,t),s=Me(e,n,o),r=new Map([...t.counts].filter(([e])=>o.includes(z(e).kind)));if(i){const e=B(r),n=B(s.counts),i=o.filter(t=>(n[t]??0)>(e[t]??0)).map(t=>`${t}: ${n[t]??0} across the repository, and the baseline holds ${e[t]??0}`);return i.length?{baseline:t,lowered:0,refused:i}:{baseline:s,lowered:Be(r,s.counts),refused:[]}}const a=new Map;for(const[e,t]of r){const n=Math.min(t,s.counts.get(e)??0);n>0&&a.set(e,n)}return{baseline:{kinds:o,counts:a},lowered:Be(r,a),refused:[]}}(f,S,k,{allowMove:r.allowMove});if(e.refused.length)return c(`--allow-move follows code that moved, and this is more of it than before:\n - ${e.refused.join("\n - ")}\nNothing was written.`);S=e.baseline,s(b,M(S)),v(`${Ke}: ${e.lowered?`changed ${Qe(e.lowered,"line")} in`:"nothing to change in"} ${Ge}`)}const j=function(e,t,n){const i=[],o=[],s=[...n.problems],r=Ee(e),a=new Set(Ce(e,t)),c=e.kinds.filter(e=>!t.kinds.includes(e));c.length&&s.push(`"kinds" names ${c.map(e=>`"${e}"`).join(", ")}, and the baseline was never taken for ${1===c.length?"it":"them"}. Run: efficient-shell-ui-check --init ${c.map(e=>`--kind ${e}`).join(" ")}`);const d=t.kinds.filter(t=>!e.kinds.includes(t));d.length&&o.push(`the baseline still carries ${d.map(e=>`"${e}"`).join(", ")}, which "kinds" no longer names`);const u=new Set([...n.counts.keys(),...t.counts.keys(),...r.keys()]);for(const e of[...u].sort(C)){const{file:c,kind:d}=z(e);if(!l(d)||!a.has(d))continue;const u=n.counts.get(e)??0,p=r.get(e)??0,f=t.counts.get(e)??0;u>p+f?i.push(`${c}: ${d} ${u}, and its line allows ${p+f}${Te(n,c,d)}. ${h[d].counts} is counted; use ${h[d].instead}.`):u<p?s.push(`${c}: ${d} ${u}, and "allow" in ui-kit.config.json says ${p}. ${0===u?"Delete the entry":`Lower its count to ${u}`}: an exception does not outlive what it excused.`):u<p+f&&o.push(`${c}: ${d} ${u}, and its line says ${p+f}`)}return{grown:i,shrunk:o,other:s,updateFixes:0===i.length&&0===s.length&&o.length>0}}(f,S,k),L=r.noBase?{problems:[],note:""}:function(e,t,n){const i=e.env.GITHUB_BASE_REF;if(!i)return{problems:[],note:""};const o=e.git(["rev-parse","--show-prefix"]);if(null===o)return{problems:[],note:"not a git checkout; the base branch was not compared"};const s=`origin/${i}`;if(null===e.git(["rev-parse","--verify","--quiet",`${s}^{commit}`])&&(e.git(["fetch","--no-tags","--depth=1","origin",`+refs/heads/${i}:refs/remotes/origin/${i}`]),null===e.git(["rev-parse","--verify","--quiet",`${s}^{commit}`])))return{problems:[],note:`${s} could not be fetched; the base branch was not compared`};const r=e.git(["show",`${s}:${o.trim()}${Ge}`]);if(null===r)return{problems:[],note:`${s} has no ${Ge} yet (adoption)`};let a;try{a=T(r,`${s}:${Ge}`)}catch{return{problems:[],note:`${s}'s ${Ge} could not be read; the base branch was not compared`}}const l=B(a.counts),c=B(t.counts);return{problems:n.filter(e=>a.kinds.includes(e)&&(c[e]??0)>(l[e]??0)).map(e=>`${Ge} holds ${c[e]??0} of "${e}", and ${s} holds ${l[e]??0}. The baseline only goes down: use ${h[e].instead}. A count that is meant to stay goes in "allow" in ${_e}, with its reason.`),note:`compared with ${s}`}}(t,S,f.kinds),E=f.kinds.filter(e=>S.kinds.includes(e)),F=`${Ke} --update`,J=[...j.other,...j.grown,...j.shrunk.map(e=>`${e}. Run: ${F}`),...L.problems],U=0===J.length;if(r.json){const e=new Map(f.allow.map(e=>[`${e.file}:${e.kind}`,e.count]));return t.out(JSON.stringify({tool:Ke,version:t.version,ok:U,schema:f.schema,kinds:f.kinds,files:k.files.length,counts:B(k.counts),baseline:B(S.counts),allowed:B(e),kitDeps:k.kitDeps,shellPeers:k.shellPeers,chartDeps:k.chartDeps,failures:J},null,2)),U?0:1}t.out(`UI kit check (harness UI-24), efficient-shell ${t.version}\n`);const W=(e,n,i="")=>{if(0===n.length)return t.out(` ok ${e}`);t.err(` FAIL ${e}`);for(const e of n)t.err(` ${e}`);i&&t.err(` ${i}`)};t.out(` ok the reader reads its own fixtures (typescript ${g.version})`),t.out(` ok read ${Qe(k.files.length,"file")}`),W(`${_e} and ${Ge} describe this repository`,j.other),W("no file draws more of its own UI than its line allows",j.grown),W("every line is exact: a count that fell is a line to lower",j.shrunk,`Run: ${F}${j.updateFixes?"":" (after the failures above are fixed)"}`),L.note&&W(`the baseline is no higher than the base branch (${L.note})`,L.problems);const q=new Set([...k.counts.keys()].map(e=>z(e).file));return t.out(` ok PROGRESS: ${q.size} of ${Qe(k.files.length,"file")} still draw UI of their own: `+Ve(k.counts,E)),t.out(""),U?t.out("UI kit check: ok"):t.err(`UI kit check: FAILED (${Qe(J.length,"problem")})`),U?0:1}(process.argv.slice(2),{cwd:process.cwd(),env:process.env,out:e=>console.log(e),err:e=>console.error(e),loadTypeScript:()=>function(e){for(const i of[n(process.cwd(),"package.json"),e])try{return t(i)("typescript")}catch{}throw new Error("typescript is not installed")}(import.meta.url),git:function(t){try{return e("git",t,{cwd:process.cwd(),encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:6e4,maxBuffer:67108864})}catch{return null}},version:"10.20.0"});
@@ -0,0 +1,4 @@
1
+ import{jsxs as r,jsx as e}from"react/jsx-runtime";function t({size:t=18,...o}){/* @__PURE__ */
2
+ return r("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",...o,children:[
3
+ /* @__PURE__ */e("path",{d:"M18.75 3.75L18.75 20.25"}),
4
+ /* @__PURE__ */e("path",{fill:"currentColor",d:"M5.5 6.75H15.5A0.25 0.25 0 0 1 15.75 7V9A0.25 0.25 0 0 1 15.5 9.25H5.5A0.25 0.25 0 0 1 5.25 9V7A0.25 0.25 0 0 1 5.5 6.75ZM10.5 14.75H15.5A0.25 0.25 0 0 1 15.75 15V17A0.25 0.25 0 0 1 15.5 17.25H10.5A0.25 0.25 0 0 1 10.25 17V15A0.25 0.25 0 0 1 10.5 14.75Z"})]})}export{t as BoxXEndIcon};
@@ -0,0 +1,2 @@
1
+ import{jsx as c}from"react/jsx-runtime";function e({size:e=18,...h}){/* @__PURE__ */
2
+ return c("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",...h,children:/* @__PURE__ */c("path",{fillRule:"evenodd",d:"M7,6h2c0.22227,0.03274 0.56735,0.15314 0.70711,0.29289c0.13975,0.13975 0.26016,0.48484 0.29289,0.70711v10c-0.03274,0.22227 -0.15314,0.56735 -0.29289,0.70711c-0.13975,0.13975 -0.48484,0.26016 -0.70711,0.29289h-2c-0.22227,-0.03274 -0.56735,-0.15314 -0.70711,-0.29289c-0.13975,-0.13975 -0.26016,-0.48484 -0.29289,-0.70711v-10c0.03274,-0.22227 0.15314,-0.56735 0.29289,-0.70711c0.13975,-0.13975 0.48484,-0.26016 0.70711,-0.29289zM15,6h2c0.22227,0.03274 0.56735,0.15314 0.70711,0.29289c0.13975,0.13975 0.26016,0.48484 0.29289,0.70711v10c-0.03274,0.22227 -0.15314,0.56735 -0.29289,0.70711c-0.13975,0.13975 -0.48484,0.26016 -0.70711,0.29289h-2c-0.22227,-0.03274 -0.56735,-0.15314 -0.70711,-0.29289c-0.13975,-0.13975 -0.26016,-0.48484 -0.29289,-0.70711v-10c0.03274,-0.22227 0.15314,-0.56735 0.29289,-0.70711c0.13975,-0.13975 0.48484,-0.26016 0.70711,-0.29289zM3,3.75c0,-0.41421 0.33579,-0.75 0.75,-0.75h16.5c0.41421,0 0.75,0.33579 0.75,0.75c0,0.41421 -0.33579,0.75 -0.75,0.75h-16.5c-0.41421,0 -0.75,-0.33579 -0.75,-0.75zM3,20.25c0,-0.41421 0.33579,-0.75 0.75,-0.75h16.5c0.41421,0 0.75,0.33579 0.75,0.75c0,0.41421 -0.33579,0.75 -0.75,0.75h-16.5c-0.41421,0 -0.75,-0.33579 -0.75,-0.75z"})})}export{e as BoxYStretchSolidIcon};
@@ -1,4 +1,4 @@
1
- import{useWindowMenuItem as e,Modal as t}from"./chunk-2YSGXZOL.js";import{navIcons as r}from"./chunk-CY5N5OA3.js";import{VERSION as s}from"./chunk-VNKAIEJ6.js";import{Icon as n}from"./chunk-2UO47XB4.js";import{DEFAULT_SHELL_STRINGS as o,useShellStrings as i,splitAround as a}from"./chunk-GDQJBQ5B.js";import{useState as m,useCallback as c,isValidElement as l,cloneElement as d}from"react";import{jsx as p,jsxs as h}from"react/jsx-runtime";var f=o.aboutApp,u={spreadsheet:{name:"Spreadsheets",version:"1.2.0",route:"/spreadsheet",description:f.spreadsheet},notepad:{name:"Notepad",version:"1.1.0",route:"/notepad",description:f.notepad},documents:{name:"Documents",version:"1.1.1",route:"/documents",description:f.documents},preview:{name:"Preview",version:"1.4.3",route:"/preview",description:f.preview},files:{name:"Files",version:"1.1.4",route:"/files",description:f.files},browser:{name:"Browser",version:"1.0.2",route:"/browser",description:f.browser}},x=/* @__PURE__ */p(n,{name:"info",className:"h-4 w-4",strokeWidth:1.5}),v=/* @__PURE__ */p(n,{name:"window",className:"h-9 w-9",strokeWidth:1.5});function w({app:n}){const o=u[n],[f,w]=m(!1),N=c(()=>w(!0),[]),b=i().aboutApp,k=b.title(o.name);if(e(k,N,x),!f)return null;const g=r[o.route],y=l(g)?d(g,{className:"h-9 w-9"}):v,[j,A]=a(b.partOf);/* @__PURE__ */
1
+ import{useWindowMenuItem as e,Modal as t}from"./chunk-2YSGXZOL.js";import{navIcons as r}from"./chunk-CY5N5OA3.js";import{VERSION as s}from"./chunk-RMUSRDWV.js";import{Icon as n}from"./chunk-2UO47XB4.js";import{DEFAULT_SHELL_STRINGS as o,useShellStrings as i,splitAround as a}from"./chunk-GDQJBQ5B.js";import{useState as m,useCallback as c,isValidElement as l,cloneElement as d}from"react";import{jsx as p,jsxs as h}from"react/jsx-runtime";var f=o.aboutApp,u={spreadsheet:{name:"Spreadsheets",version:"1.2.0",route:"/spreadsheet",description:f.spreadsheet},notepad:{name:"Notepad",version:"1.1.0",route:"/notepad",description:f.notepad},documents:{name:"Documents",version:"1.1.1",route:"/documents",description:f.documents},preview:{name:"Preview",version:"1.4.3",route:"/preview",description:f.preview},files:{name:"Files",version:"1.1.4",route:"/files",description:f.files},browser:{name:"Browser",version:"1.0.2",route:"/browser",description:f.browser}},x=/* @__PURE__ */p(n,{name:"info",className:"h-4 w-4",strokeWidth:1.5}),v=/* @__PURE__ */p(n,{name:"window",className:"h-9 w-9",strokeWidth:1.5});function w({app:n}){const o=u[n],[f,w]=m(!1),N=c(()=>w(!0),[]),b=i().aboutApp,k=b.title(o.name);if(e(k,N,x),!f)return null;const g=r[o.route],y=l(g)?d(g,{className:"h-9 w-9"}):v,[j,B]=a(b.partOf);/* @__PURE__ */
2
2
  return p(t,{open:!0,onClose:()=>w(!1),title:k,size:"sm",compact:!0,bodyScroll:!1,autoHeight:!0,dimensions:[320,320],children:/* @__PURE__ */h("div",{className:"flex flex-col items-center text-center px-5 pt-5 pb-4",children:[
3
3
  /* @__PURE__ */p("div",{className:"flex h-16 w-16 items-center justify-center rounded-2xl bg-gray-100 text-gray-600 shrink-0",children:y}),
4
4
  /* @__PURE__ */p("h2",{className:"mt-3 text-lg font-bold text-gray-900",children:o.name}),
@@ -6,4 +6,4 @@ return p(t,{open:!0,onClose:()=>w(!1),title:k,size:"sm",compact:!0,bodyScroll:!1
6
6
  /* @__PURE__ */p("p",{className:"mt-2 text-xs text-gray-500 leading-relaxed",children:b[n]}),
7
7
  /* @__PURE__ */h("div",{className:"mt-4 pt-3 border-t border-gray-200 w-full",children:[
8
8
  /* @__PURE__ */h("p",{className:"text-2xs text-ink-faint",children:[j,
9
- /* @__PURE__ */p("span",{className:"font-medium text-gray-700",children:"efficient-shell"}),A]}),s&&/* @__PURE__ */p("p",{className:"mt-0.5 text-2xs font-mono text-ink-faintest",children:b.shellVersion(s)})]})]})})}export{w as AboutApp,u as BUILTIN_APP_INFO};
9
+ /* @__PURE__ */p("span",{className:"font-medium text-gray-700",children:"efficient-shell"}),B]}),s&&/* @__PURE__ */p("p",{className:"mt-0.5 text-2xs font-mono text-ink-faintest",children:b.shellVersion(s)})]})]})})}export{w as AboutApp,u as BUILTIN_APP_INFO};
@@ -0,0 +1,4 @@
1
+ import{jsxs as r,jsx as e}from"react/jsx-runtime";function t({size:t=18,...o}){/* @__PURE__ */
2
+ return r("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",...o,children:[
3
+ /* @__PURE__ */e("path",{d:"M3.75 3.75L3.75 20.25M20.25 3.75L20.25 20.25"}),
4
+ /* @__PURE__ */e("path",{fill:"currentColor",d:"M7 6.75H17A0.25 0.25 0 0 1 17.25 7V9A0.25 0.25 0 0 1 17 9.25H7A0.25 0.25 0 0 1 6.75 9V7A0.25 0.25 0 0 1 7 6.75ZM7 14.75H17A0.25 0.25 0 0 1 17.25 15V17A0.25 0.25 0 0 1 17 17.25H7A0.25 0.25 0 0 1 6.75 17V15A0.25 0.25 0 0 1 7 14.75Z"})]})}export{t as BoxXStretchIcon};
@@ -0,0 +1,2 @@
1
+ import{jsx as c}from"react/jsx-runtime";function e({size:e=18,...r}){/* @__PURE__ */
2
+ return c("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",...r,children:/* @__PURE__ */c("path",{fillRule:"evenodd",d:"M7,6h2c0.22227,0.03274 0.56735,0.15314 0.70711,0.29289c0.13975,0.13975 0.26016,0.48484 0.29289,0.70711v10c-0.03274,0.22227 -0.15314,0.56735 -0.29289,0.70711c-0.13975,0.13975 -0.48484,0.26016 -0.70711,0.29289h-2c-0.22227,-0.03274 -0.56735,-0.15314 -0.70711,-0.29289c-0.13975,-0.13975 -0.26016,-0.48484 -0.29289,-0.70711v-10c0.03274,-0.22227 0.15314,-0.56735 0.29289,-0.70711c0.13975,-0.13975 0.48484,-0.26016 0.70711,-0.29289zM15,8.5h2c0.22227,0.03274 0.56735,0.15314 0.70711,0.29289c0.13975,0.13975 0.26016,0.48484 0.29289,0.70711v5c-0.03274,0.22227 -0.15314,0.56735 -0.29289,0.70711c-0.13975,0.13975 -0.48484,0.26016 -0.70711,0.29289h-2c-0.22227,-0.03274 -0.56735,-0.15314 -0.70711,-0.29289c-0.13975,-0.13975 -0.26016,-0.48484 -0.29289,-0.70711v-5c0.03274,-0.22227 0.15314,-0.56735 0.29289,-0.70711c0.13975,-0.13975 0.48484,-0.26016 0.70711,-0.29289zM3.75,3c0.41421,0 0.75,0.33579 0.75,0.75v16.5c0,0.41421 -0.33579,0.75 -0.75,0.75c-0.41421,0 -0.75,-0.33579 -0.75,-0.75v-16.5c0,-0.41421 0.33579,-0.75 0.75,-0.75zM20.25,3c0.41421,0 0.75,0.33579 0.75,0.75v16.5c0,0.41421 -0.33579,0.75 -0.75,0.75c-0.41421,0 -0.75,-0.33579 -0.75,-0.75v-16.5c0,-0.41421 0.33579,-0.75 0.75,-0.75z"})})}export{e as BoxXBetweenSolidIcon};
@@ -0,0 +1,2 @@
1
+ import{jsx as c}from"react/jsx-runtime";function e({size:e=18,...r}){/* @__PURE__ */
2
+ return c("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",...r,children:/* @__PURE__ */c("path",{fillRule:"evenodd",d:"M7,7.5h2c0.22227,0.03274 0.56735,0.15314 0.70711,0.29289c0.13975,0.13975 0.26016,0.48484 0.29289,0.70711v10c-0.03274,0.22227 -0.15314,0.56735 -0.29289,0.70711c-0.13975,0.13975 -0.48484,0.26016 -0.70711,0.29289h-2c-0.22227,-0.03274 -0.56735,-0.15314 -0.70711,-0.29289c-0.13975,-0.13975 -0.26016,-0.48484 -0.29289,-0.70711v-10c0.03274,-0.22227 0.15314,-0.56735 0.29289,-0.70711c0.13975,-0.13975 0.48484,-0.26016 0.70711,-0.29289zM15,7.5h2c0.22227,0.03274 0.56735,0.15314 0.70711,0.29289c0.13975,0.13975 0.26016,0.48484 0.29289,0.70711v5c-0.03274,0.22227 -0.15314,0.56735 -0.29289,0.70711c-0.13975,0.13975 -0.48484,0.26016 -0.70711,0.29289h-2c-0.22227,-0.03274 -0.56735,-0.15314 -0.70711,-0.29289c-0.13975,-0.13975 -0.26016,-0.48484 -0.29289,-0.70711v-5c0.03274,-0.22227 0.15314,-0.56735 0.29289,-0.70711c0.13975,-0.13975 0.48484,-0.26016 0.70711,-0.29289zM3,5.25c0,-0.41421 0.33579,-0.75 0.75,-0.75h16.5c0.41421,0 0.75,0.33579 0.75,0.75c0,0.41421 -0.33579,0.75 -0.75,0.75h-16.5c-0.41421,0 -0.75,-0.33579 -0.75,-0.75z"})})}export{e as BoxYStartSolidIcon};
@@ -0,0 +1 @@
1
+ import{ZoomInMiniIcon as r}from"./chunk-NPCWLBMK.js";import{ZoomInSolidIcon as o}from"./chunk-4H2J5UAB.js";import{WordsFromMiniIcon as m}from"./chunk-BEKDLU25.js";import{WordsFromSolidIcon as t}from"./chunk-2MQ7ESMH.js";import{WrapMiniIcon as c}from"./chunk-NLGDN36O.js";import{WrapSolidIcon as i}from"./chunk-YBRJR7NV.js";import{WrenchMiniIcon as n}from"./chunk-BWDHO77A.js";import{WrenchScrewdriverMiniIcon as s}from"./chunk-HWGKMEYA.js";import{WrenchScrewdriverSolidIcon as p}from"./chunk-H7AHH7OB.js";import{WrenchSolidIcon as u}from"./chunk-A25YVGAG.js";import{WidgetsMiniIcon as h}from"./chunk-K3ZBIFDS.js";import{WidgetsSolidIcon as k}from"./chunk-C7WCAKSH.js";import{WidthMiniIcon as f}from"./chunk-B4GBUSE5.js";import{WidthSolidIcon as e}from"./chunk-W6FRXR6X.js";import{WindowMiniIcon as j}from"./chunk-CNVF67ZV.js";import{WindowSolidIcon as a}from"./chunk-QBRE4MH3.js";import{WindowsMiniIcon as l}from"./chunk-YMECORJ4.js";import{WindowsSolidIcon as d}from"./chunk-XHRWQU2N.js";import{ViewColumnsMiniIcon as b}from"./chunk-KAUUQEZJ.js";import{ViewColumnsSolidIcon as Q}from"./chunk-ZN5SU4ZI.js";import{WalletMiniIcon as C}from"./chunk-ITCE6WFF.js";import{WalletSolidIcon as F}from"./chunk-RLQAX5HN.js";import{WarningMiniIcon as N}from"./chunk-KHXH44V6.js";import{WarningSolidIcon as J}from"./chunk-TAXDMCNG.js";import{WeightMiniIcon as M}from"./chunk-7MBI6K4M.js";import{WeightSolidIcon as K}from"./chunk-JH4N2AGC.js";import{UploadMiniIcon as R}from"./chunk-2NYCHHEX.js";import{UploadSolidIcon as U}from"./chunk-LDY4RXO4.js";import{VAlignMiniIcon as D}from"./chunk-E5XQWSQG.js";import{VAlignSolidIcon as H}from"./chunk-64KV2YO3.js";import{VerifiedMiniIcon as P}from"./chunk-FJXQQ6N4.js";import{VerifiedSolidIcon as X}from"./chunk-C6CI7XH7.js";import{VideoOffMiniIcon as L}from"./chunk-PNVFIQXD.js";import{VideoOffSolidIcon as Z}from"./chunk-F75KLDZK.js";import{TypeMiniIcon as G}from"./chunk-3VZEPYAX.js";import{TypeSolidIcon as g}from"./chunk-RH6C435W.js";import{TyreMiniIcon as A}from"./chunk-PPRJBW5Y.js";import{TyreSolidIcon as W}from"./chunk-IF34QPCV.js";import{UnderlineMiniIcon as E}from"./chunk-23YM7DOW.js";import{UnderlineSolidIcon as Y}from"./chunk-R2KCOXZR.js";import{UndoMiniIcon as T}from"./chunk-O5EP2UNP.js";import{UndoSolidIcon as B}from"./chunk-T2IC4IQA.js";import{TrashAltIcon as I}from"./chunk-X65IANDK.js";import{TrashMiniIcon as O}from"./chunk-J5VO23W3.js";import{TrashSolidIcon as S}from"./chunk-GPFBERFF.js";import{TruckAltIcon as V}from"./chunk-MWG5QRHE.js";import{TruckMiniIcon as w}from"./chunk-JCKOSJNI.js";import{TruckSolidIcon as y}from"./chunk-GYA54DB2.js";import{TvMiniIcon as x}from"./chunk-BQ7RNIBA.js";import{TvSolidIcon as v}from"./chunk-RVA6HGDB.js";import{TextSizeSolidIcon as q}from"./chunk-MU4OIOPU.js";import{TextSmallMiniIcon as z}from"./chunk-QK4B7MO3.js";import{TextSmallSolidIcon as $}from"./chunk-245SGQC7.js";import{TextValueMiniIcon as _}from"./chunk-5XNZORBY.js";import{TextValueSolidIcon as rr}from"./chunk-GKAI5SDL.js";import{TextureMiniIcon as or}from"./chunk-VRGZFJZD.js";import{TextureSolidIcon as mr}from"./chunk-2AGTZHGD.js";import{TrashAlt2Icon as tr}from"./chunk-TEEDZ5O4.js";import{TargetSolidIcon as cr}from"./chunk-LNFKNTO5.js";import{TeamMiniIcon as ir}from"./chunk-ZV5P54O4.js";import{TeamSolidIcon as nr}from"./chunk-ETF6W3D4.js";import{TelephoneMiniIcon as sr}from"./chunk-MLXDPEBV.js";import{TelephoneSolidIcon as pr}from"./chunk-JQSK5ICA.js";import{TextColorMiniIcon as ur}from"./chunk-3WUQ5V4J.js";import{TextColorSolidIcon as hr}from"./chunk-TGNRZLQ6.js";import{TextSizeMiniIcon as kr}from"./chunk-2BAQ3XFD.js";import{TabletSolidIcon as fr}from"./chunk-IU7ZRR62.js";import{TabsMiniIcon as er}from"./chunk-B6RQI2PT.js";import{TabsSolidIcon as jr}from"./chunk-5UZYIM2W.js";import{TagAltIcon as ar}from"./chunk-HXWCDHZQ.js";import{TagMiniIcon as lr}from"./chunk-GGGXLQHC.js";import{TagSolidIcon as dr}from"./chunk-QDHVUIZV.js";import{TargetAltIcon as br}from"./chunk-V5DSMUZ5.js";import{TargetMiniIcon as Qr}from"./chunk-5VRVT4LR.js";import{SunSolidIcon as Cr}from"./chunk-K6ZPLG4O.js";import{SuperscriptMiniIcon as Fr}from"./chunk-YPBEGKV2.js";import{SuperscriptSolidIcon as Nr}from"./chunk-5GJ3SFHP.js";import{SwapMiniIcon as Jr}from"./chunk-FZMJ5JVX.js";import{SwapSolidIcon as Mr}from"./chunk-LO2ENELN.js";import{TableMiniIcon as Kr}from"./chunk-7IQQIDI6.js";import{TableSolidIcon as Rr}from"./chunk-QJ3LE7LI.js";import{TabletMiniIcon as Ur}from"./chunk-7R5JBLPI.js";import{StrikeMiniIcon as Dr}from"./chunk-5GHSWXWB.js";import{StrikeSolidIcon as Hr}from"./chunk-VUOJMDQ6.js";import{StylesAltIcon as Pr}from"./chunk-PP3H5YGZ.js";import{StylesMiniIcon as Xr}from"./chunk-FEN2DONX.js";import{StylesSolidIcon as Lr}from"./chunk-B3Q46H2J.js";import{SubscriptMiniIcon as Zr}from"./chunk-KRWISESU.js";import{SubscriptSolidIcon as Gr}from"./chunk-O3QFU4CP.js";import{SunMiniIcon as gr}from"./chunk-7MOGLM4M.js";import{StatusDotSolidIcon as Ar}from"./chunk-6GLBW3FE.js";import{StickyMiniIcon as Wr}from"./chunk-RL3ZIR6L.js";import{StickySolidIcon as Er}from"./chunk-CAMDJDKT.js";import{StopCircleMiniIcon as Yr}from"./chunk-XRIX6MVS.js";import{StopCircleSolidIcon as Tr}from"./chunk-AQT5PBEU.js";import{StoreBuildingStorefront20SolidIcon as Br}from"./chunk-FXD73VOY.js";import{StoreMiniIcon as Ir}from"./chunk-5HCC7MZN.js";import{StoreSolidIcon as Or}from"./chunk-V3W6W42X.js";import{StarAltIcon as Sr}from"./chunk-TTX2XZKP.js";import{StarMiniIcon as Vr}from"./chunk-RWHVEPNG.js";import{StarSolidIcon as wr}from"./chunk-635BD6WX.js";import{StateMiniIcon as yr}from"./chunk-WFYZJFS5.js";import{StateSolidIcon as xr}from"./chunk-2TO2GMVS.js";import{StatusCircleMiniIcon as vr}from"./chunk-TB3CFNVI.js";import{StatusCircleSolidIcon as qr}from"./chunk-RAE4CUCY.js";import{StatusDotMiniIcon as zr}from"./chunk-LKN4NT7H.js";import{SpeakerWaveMiniIcon as $r}from"./chunk-QNIEDFX6.js";import{SpeakerWaveSolidIcon as _r}from"./chunk-DJNK34UK.js";import{SpecTableMiniIcon as ro}from"./chunk-FUY6TO6Z.js";import{SpecTableSolidIcon as oo}from"./chunk-NZYJ6XYT.js";import{SplitMiniIcon as mo}from"./chunk-6PRAEXF6.js";import{SplitSolidIcon as to}from"./chunk-YOVMFAN3.js";import{SquareMiniIcon as co}from"./chunk-WQ2IFM6M.js";import{SquareSolidIcon as io}from"./chunk-BPWBA2RM.js";import{SortAltIcon as no}from"./chunk-US4TTHEN.js";import{SortMiniIcon as so}from"./chunk-SI37ODJF.js";import{SortSolidIcon as po}from"./chunk-ZUG2JNG4.js";import{SparklesAlt2Icon as uo}from"./chunk-NCLIZZXL.js";import{SparklesAlt3Icon as ho}from"./chunk-FEUIWJ7S.js";import{SparklesAltIcon as ko}from"./chunk-UWNP5QOF.js";import{SparklesMiniIcon as fo}from"./chunk-WNO4AZ67.js";import{SparklesSolidIcon as eo}from"./chunk-NA5HW2RQ.js";import{SlidePickerCardsMiniIcon as jo}from"./chunk-EUQXQRXY.js";import{SlidePickerCardsSolidIcon as ao}from"./chunk-D6RYGKV5.js";import{SlidePickerDotsMiniIcon as lo}from"./chunk-3VYVPN23.js";import{SlidePickerDotsSolidIcon as bo}from"./chunk-PZIPTTVL.js";import{SlidePickerNumbersMiniIcon as Qo}from"./chunk-K5UTUJXX.js";import{SlidePickerNumbersSolidIcon as Co}from"./chunk-CNQOWIKL.js";import{SlidePickerSquaresMiniIcon as Fo}from"./chunk-A7ILTGAE.js";import{SlidePickerSquaresSolidIcon as No}from"./chunk-DI3CJOO2.js";import{SitemapMiniIcon as Jo}from"./chunk-TCWYMY7R.js";import{SitemapSolidIcon as Mo}from"./chunk-P4KZQYYO.js";import{SlideArrowsRoundMiniIcon as Ko}from"./chunk-3LSEVWUJ.js";import{SlideArrowsRoundSolidIcon as Ro}from"./chunk-PSYTC7V2.js";import{SlideArrowsSquareMiniIcon as Uo}from"./chunk-EDEHD47C.js";import{SlideArrowsSquareSolidIcon as Do}from"./chunk-P66ED5XN.js";import{SlidePickerBarMiniIcon as Ho}from"./chunk-BJ2LKUME.js";import{SlidePickerBarSolidIcon as Po}from"./chunk-SZGTWSN4.js";import{ShieldExclamationMiniIcon as Xo}from"./chunk-FB4GEVTA.js";import{ShieldExclamationSolidIcon as Lo}from"./chunk-LZ44UTPP.js";import{SidesEachMiniIcon as Zo}from"./chunk-CNTQKS7H.js";import{SidesEachSolidIcon as Go}from"./chunk-OR2SSAWP.js";import{SignalMiniIcon as go}from"./chunk-PYAU2NDD.js";import{SignalSlashMiniIcon as Ao}from"./chunk-MIMLD6G4.js";import{SignalSlashSolidIcon as Wo}from"./chunk-PLQ23Q7Y.js";import{SignalSolidIcon as Eo}from"./chunk-QTPYKXY7.js";import{ShapeRectMiniIcon as Yo}from"./chunk-7MTKB2PI.js";import{ShapeRectSolidIcon as To}from"./chunk-R3SLDJJX.js";import{ShareMiniIcon as Bo}from"./chunk-HWEV5X53.js";import{ShareSolidIcon as Io}from"./chunk-ZFF7W6EF.js";import{SharedMiniIcon as Oo}from"./chunk-LKRQXIOG.js";import{SharedSolidIcon as So}from"./chunk-YKDKVSAL.js";import{ShieldCheckMiniIcon as Vo}from"./chunk-6UNMFTXG.js";import{ShieldCheckSolidIcon as wo}from"./chunk-A2NRNSJU.js";import{ServerMiniIcon as yo}from"./chunk-7J7SBMPE.js";import{ServerSolidIcon as xo}from"./chunk-TMPZ5QYR.js";import{SettingsMiniIcon as vo}from"./chunk-PJ74S7TQ.js";import{SettingsSolidIcon as qo}from"./chunk-HMPU4WRV.js";import{ShadowMiniIcon as zo}from"./chunk-JQFMEYOH.js";import{ShadowSolidIcon as $o}from"./chunk-Z6DPC6LY.js";import{ShapeEllipseMiniIcon as _o}from"./chunk-HGJLQXQZ.js";import{ShapeEllipseSolidIcon as rm}from"./chunk-J7YSGSYX.js";import{SendAlt2Icon as om}from"./chunk-I3TMILZC.js";import{SendAltIcon as mm}from"./chunk-AZADIQCQ.js";import{SendMiniIcon as tm}from"./chunk-SLALNIKU.js";import{SendSolidIcon as cm}from"./chunk-2L3JB5JJ.js";import{SeparatorSlashMiniIcon as im}from"./chunk-TGXO3CDO.js";import{SeparatorSlashSolidIcon as nm}from"./chunk-YJ5IHIAI.js";import{SeparatorTriangleMiniIcon as sm}from"./chunk-MUXGWDEH.js";import{SeparatorTriangleSolidIcon as pm}from"./chunk-B3CN55UI.js";import{ScrollPointMiniIcon as um}from"./chunk-BGYKEPGH.js";import{ScrollPointSolidIcon as hm}from"./chunk-R2L5KKWD.js";import{SearchAlt2Icon as km}from"./chunk-USRR3ATA.js";import{SearchAltIcon as fm}from"./chunk-VZZXQM7D.js";import{SearchMiniIcon as em}from"./chunk-RFQT33IG.js";import{SearchSolidIcon as jm}from"./chunk-D7AJ7HNA.js";import{SelectAllMiniIcon as am}from"./chunk-XG4LYLHC.js";import{SelectAllSolidIcon as lm}from"./chunk-5FXHHPQN.js";import{RevertSolidIcon as dm}from"./chunk-B2JHVAJZ.js";import{RobotMiniIcon as bm}from"./chunk-2QBUM6BF.js";import{RobotSolidIcon as Qm}from"./chunk-BTMPF6TU.js";import{RotateMiniIcon as Cm}from"./chunk-AZ6PTN7Z.js";import{RotateSolidIcon as Fm}from"./chunk-FMFFO3XW.js";import{ScaleAltIcon as Nm}from"./chunk-WJEFJ7DO.js";import{ScaleMiniIcon as Jm}from"./chunk-AKR2GM4I.js";import{ScaleSolidIcon as Mm}from"./chunk-TGQ6FVOC.js";import{RefreshSolidIcon as Km}from"./chunk-OD57KLTH.js";import{RemoveMiniIcon as Rm}from"./chunk-LC5WQDNZ.js";import{RemoveSolidIcon as Um}from"./chunk-DZGAUI3P.js";import{ReplyAllMiniIcon as Dm}from"./chunk-PF5CU4SO.js";import{ReplyAllSolidIcon as Hm}from"./chunk-S6HJCIO4.js";import{ReplyMiniIcon as Pm}from"./chunk-ITCRUSSN.js";import{ReplySolidIcon as Xm}from"./chunk-QRZVIG54.js";import{RevertMiniIcon as Lm}from"./chunk-TKQLPIHD.js";import{ReceiptRefundMiniIcon as Zm}from"./chunk-6JWPIRCB.js";import{ReceiptRefundSolidIcon as Gm}from"./chunk-4PXK463M.js";import{ReceiptSolidIcon as gm}from"./chunk-P6NGK7DM.js";import{RedoMiniIcon as Am}from"./chunk-RJNAXMDD.js";import{RedoSolidIcon as Wm}from"./chunk-CITR3NCQ.js";import{RefreshAltIcon as Em}from"./chunk-BXPQQPS4.js";import{RefreshArrowPathRoundedSquareIcon as Ym}from"./chunk-7BDQSYOD.js";import{RefreshMiniIcon as Tm}from"./chunk-DQVYLBH3.js";import{QuoteSolidIcon as Bm}from"./chunk-K3JGLNOQ.js";import{RadioDotMiniIcon as Im}from"./chunk-WRWINFV3.js";import{RadioDotSolidIcon as Om}from"./chunk-VKPCYU5H.js";import{RadiusMiniIcon as Sm}from"./chunk-7I2GL4XB.js";import{RadiusSolidIcon as Vm}from"./chunk-SGGFUPQS.js";import{ReceiptMiniIcon as wm}from"./chunk-3FF7CTUA.js";import{ReceiptPercentMiniIcon as ym}from"./chunk-CM6DG7CZ.js";import{ReceiptPercentSolidIcon as xm}from"./chunk-IXXEASEQ.js";import{ProductFieldSolidIcon as vm}from"./chunk-AFHJNVJU.js";import{ProductMiniIcon as qm}from"./chunk-M2STINJB.js";import{ProductSizeMiniIcon as zm}from"./chunk-WOWXRIRW.js";import{ProductSizeSolidIcon as $m}from"./chunk-Y4GH6UXZ.js";import{ProductSolidIcon as _m}from"./chunk-AYYN74HD.js";import{ProgressMiniIcon as rt}from"./chunk-Q3OTCQTQ.js";import{ProgressSolidIcon as ot}from"./chunk-3V5UT7A2.js";import{QuoteMiniIcon as mt}from"./chunk-63LZCLNR.js";import{PlusMinusSolidIcon as tt}from"./chunk-6QBEAJ3X.js";import{PowerMiniIcon as ct}from"./chunk-ETIZX4ZX.js";import{PowerSolidIcon as it}from"./chunk-TXEFPHTL.js";import{PresentationChartBarMiniIcon as nt}from"./chunk-7BMSC5QE.js";import{PresentationChartBarSolidIcon as st}from"./chunk-V56PZIS2.js";import{PrintMiniIcon as pt}from"./chunk-AODSAT7N.js";import{PrintSolidIcon as ut}from"./chunk-HLMTKW5H.js";import{ProductFieldMiniIcon as ht}from"./chunk-WICGNE5J.js";import{PhoneMiniIcon as kt}from"./chunk-KRUKB4JE.js";import{PhoneSolidIcon as ft}from"./chunk-H6OCWYYU.js";import{PlacementMiniIcon as et}from"./chunk-OXHG752A.js";import{PlacementSolidIcon as jt}from"./chunk-74DQMIJU.js";import{PlayAltIcon as at}from"./chunk-ZPQFONMR.js";import{PlayMiniIcon as lt}from"./chunk-CCJHCLQD.js";import{PlaySolidIcon as dt}from"./chunk-DPCVWEGT.js";import{PlusMinusMiniIcon as bt}from"./chunk-T2SS7VMR.js";import{PeopleMiniIcon as Qt}from"./chunk-MJ3GUAXH.js";import{PeopleSolidIcon as Ct}from"./chunk-TDACYSKV.js";import{PeopleUserGroupIcon as Ft}from"./chunk-3GU54QB6.js";import{PercentMiniIcon as Nt}from"./chunk-2LKEZNEE.js";import{PercentSolidIcon as Jt}from"./chunk-CQYBRFCN.js";import{PhoneAltIcon as Mt}from"./chunk-W2SGPRYG.js";import{PhoneHiddenMiniIcon as Kt}from"./chunk-J4BNHZMC.js";import{PhoneHiddenSolidIcon as Rt}from"./chunk-3CWD4INC.js";import{ParagraphSpacingMiniIcon as Ut}from"./chunk-W6DUHOAN.js";import{ParagraphSpacingSolidIcon as Dt}from"./chunk-GD3YLOFZ.js";import{PasteStyleMiniIcon as Ht}from"./chunk-X5KVM2JY.js";import{PasteStyleSolidIcon as Pt}from"./chunk-NOQIPVD5.js";import{PauseMiniIcon as Xt}from"./chunk-E4XFHQTO.js";import{PauseSolidIcon as Lt}from"./chunk-I2BTP4ZC.js";import{PenMiniIcon as Zt}from"./chunk-75CPAMIK.js";import{PenSolidIcon as Gt}from"./chunk-MZNR3WCA.js";import{PageMiniIcon as gt}from"./chunk-XXFO33EC.js";import{PageSolidIcon as At}from"./chunk-SMJFGTEP.js";import{PaletteMiniIcon as Wt}from"./chunk-BAFB2V5R.js";import{PaletteSolidIcon as Et}from"./chunk-DL3K4PF4.js";import{PanelLeftMiniIcon as Yt}from"./chunk-XSCG6YG7.js";import{PanelLeftSolidIcon as Tt}from"./chunk-XWU6QN2V.js";import{PanelRightMiniIcon as Bt}from"./chunk-FU44ZZBE.js";import{PanelRightSolidIcon as It}from"./chunk-3EVMVYVF.js";import{PaddingRightSolidIcon as Ot}from"./chunk-IABLIRK6.js";import{PaddingTopMiniIcon as St}from"./chunk-AAQPYX4I.js";import{PaddingTopSolidIcon as Vt}from"./chunk-SE2ECAWN.js";import{PaddingXMiniIcon as wt}from"./chunk-M3FDLEVB.js";import{PaddingXSolidIcon as yt}from"./chunk-C4GY2IS5.js";import{PaddingYMiniIcon as xt}from"./chunk-FLY5B6BV.js";import{PaddingYSolidIcon as vt}from"./chunk-ZVZB4MEK.js";import{PageAltIcon as qt}from"./chunk-CPPPRWOF.js";import{PaddingAllSolidIcon as zt}from"./chunk-QJG66TT3.js";import{PaddingBottomMiniIcon as $t}from"./chunk-NXBHLJD4.js";import{PaddingBottomSolidIcon as _t}from"./chunk-MQBMKV2M.js";import{PaddingLeftMiniIcon as rc}from"./chunk-FGQ7HFAL.js";import{PaddingLeftRightMiniIcon as oc}from"./chunk-RF4AWGBX.js";import{PaddingLeftRightSolidIcon as mc}from"./chunk-6QAID2KD.js";import{PaddingLeftSolidIcon as tc}from"./chunk-KMRK6TJC.js";import{PaddingRightMiniIcon as cc}from"./chunk-JWZ7SK3Z.js";import{OpacitySolidIcon as ic}from"./chunk-FCD4WTIN.js";import{OwnTextMiniIcon as nc}from"./chunk-62BDLWEO.js";import{OwnTextSolidIcon as sc}from"./chunk-5OY3AUEX.js";import{PackageMiniIcon as pc}from"./chunk-FCD2THL6.js";import{PackageOpenMiniIcon as uc}from"./chunk-J5NXZAWD.js";import{PackageOpenSolidIcon as hc}from"./chunk-6STWX56B.js";import{PackageSolidIcon as kc}from"./chunk-PRU52B5T.js";import{PaddingAllMiniIcon as fc}from"./chunk-R54WVPDX.js";import{NudgeSolidIcon as ec}from"./chunk-3MRB7UZY.js";import{NudgeXMiniIcon as jc}from"./chunk-HJUK5AAM.js";import{NudgeXSolidIcon as ac}from"./chunk-KRWKHI7S.js";import{NudgeYMiniIcon as lc}from"./chunk-EEG3KMP7.js";import{NudgeYSolidIcon as dc}from"./chunk-P5SVBGLG.js";import{NumberedListMiniIcon as bc}from"./chunk-FD7UBG5P.js";import{NumberedListSolidIcon as Qc}from"./chunk-3K6RM3K4.js";import{OpacityMiniIcon as Cc}from"./chunk-JMOGUE7F.js";import{MoreSolidIcon as Fc}from"./chunk-PP5JQCTZ.js";import{MoreVerticalMiniIcon as Nc}from"./chunk-J6YBNXVN.js";import{MoreVerticalSolidIcon as Jc}from"./chunk-OSZDQ3VV.js";import{NoSymbolMiniIcon as Mc}from"./chunk-WQBLFKPH.js";import{NoSymbolSolidIcon as Kc}from"./chunk-JEWUFDX5.js";import{NoteMiniIcon as Rc}from"./chunk-MRWH3KJB.js";import{NoteSolidIcon as Uc}from"./chunk-QNV4E2MF.js";import{NudgeMiniIcon as Dc}from"./chunk-REICDZNN.js";import{MetaSolidIcon as Hc}from"./chunk-ADCP4ZQP.js";import{MicrophoneMiniIcon as Pc}from"./chunk-ICL6KE32.js";import{MicrophoneSolidIcon as Xc}from"./chunk-QWWV6GSR.js";import{MoneyMiniIcon as Lc}from"./chunk-6MSDX7MQ.js";import{MoneySolidIcon as Zc}from"./chunk-RJCUFIE5.js";import{MoonMiniIcon as Gc}from"./chunk-V75MYG5O.js";import{MoonSolidIcon as gc}from"./chunk-24FKIIDR.js";import{MoreMiniIcon as Ac}from"./chunk-42MDVHXS.js";import{MediaLayoutStackedSolidIcon as Wc}from"./chunk-4D5UAMG5.js";import{MediaMiniIcon as Ec}from"./chunk-RWVM2VHF.js";import{MediaSolidIcon as Yc}from"./chunk-3UFUOKBM.js";import{MegaphoneMiniIcon as Tc}from"./chunk-DQ6CYYYH.js";import{MegaphoneSolidIcon as Bc}from"./chunk-7KJMS4EK.js";import{MenuMiniIcon as Ic}from"./chunk-MNIIBF52.js";import{MenuSolidIcon as Oc}from"./chunk-AFXOAFL6.js";import{MetaMiniIcon as Sc}from"./chunk-JG2LTXO7.js";import{MapSolidIcon as Vc}from"./chunk-4EOR3CJ4.js";import{MediaLayoutBigTwoMiniIcon as wc}from"./chunk-RI5VRHG4.js";import{MediaLayoutBigTwoSolidIcon as yc}from"./chunk-4QNSHURB.js";import{MediaLayoutInsetMiniIcon as xc}from"./chunk-PAYYAWU5.js";import{MediaLayoutInsetSolidIcon as vc}from"./chunk-RJU7XFKX.js";import{MediaLayoutSideBySideMiniIcon as qc}from"./chunk-PYG3MKYD.js";import{MediaLayoutSideBySideSolidIcon as zc}from"./chunk-77DNZFAR.js";import{MediaLayoutStackedMiniIcon as $c}from"./chunk-GMTEWQTC.js";import{LogoMiniIcon as _c}from"./chunk-AS4OCCP3.js";import{LogoSolidIcon as ri}from"./chunk-4LBNEX4V.js";import{LogoutMiniIcon as oi}from"./chunk-GV3GNYL6.js";import{LogoutSolidIcon as mi}from"./chunk-2AQMIXH3.js";import{LoopMiniIcon as ti}from"./chunk-Z7TJ5Y7T.js";import{LoopSolidIcon as ci}from"./chunk-XMTGZI2O.js";import{MapAltIcon as ii}from"./chunk-XA7YZO2P.js";import{MapMiniIcon as ni}from"./chunk-Q2QIUERP.js";import{ListNoneSolidIcon as si}from"./chunk-HQOSD5GN.js";import{ListQueueListIcon as pi}from"./chunk-CYQSFWYF.js";import{ListSolidIcon as ui}from"./chunk-PZZWHWBB.js";import{LocationMiniIcon as hi}from"./chunk-K7WJNXIJ.js";import{LocationSolidIcon as ki}from"./chunk-BZOV7GJL.js";import{LockAltIcon as fi}from"./chunk-IQKD7UCZ.js";import{LockMiniIcon as ei}from"./chunk-EIUHOEDP.js";import{LockSolidIcon as ji}from"./chunk-URXAYQ23.js";import{LinkSolidIcon as ai}from"./chunk-WM6WESXC.js";import{ListAlt2Icon as li}from"./chunk-7B4Y4XCN.js";import{ListAlt3Icon as di}from"./chunk-ACCOL2XR.js";import{ListAltIcon as bi}from"./chunk-ITBPRBKS.js";import{ListFormatMiniIcon as Qi}from"./chunk-UDN6USR5.js";import{ListFormatSolidIcon as Ci}from"./chunk-LWDJ4GEH.js";import{ListMiniIcon as Fi}from"./chunk-7OKXT3VY.js";import{ListNoneMiniIcon as Ni}from"./chunk-GRABRP2G.js";import{LineSolidSolidIcon as Ji}from"./chunk-XO4FAIL5.js";import{LineSpacingMiniIcon as Mi}from"./chunk-SP6GJ3Y4.js";import{LineSpacingSolidIcon as Ki}from"./chunk-CNITIX2S.js";import{LineStyleMiniIcon as Ri}from"./chunk-Z4KOPOJX.js";import{LineStyleSolidIcon as Ui}from"./chunk-KUCKME7A.js";import{LinkMiniIcon as Di}from"./chunk-KLZWTEB5.js";import{LinkSlashMiniIcon as Hi}from"./chunk-325KLGZI.js";import{LinkSlashSolidIcon as Pi}from"./chunk-QL4RGGFN.js";import{LightbulbSolidIcon as Xi}from"./chunk-DFJLONGS.js";import{LineBetweenMiniIcon as Li}from"./chunk-DZC74CKM.js";import{LineBetweenSolidIcon as Zi}from"./chunk-MMYYXHNL.js";import{LineDashedMiniIcon as Gi}from"./chunk-UTJSSJXU.js";import{LineDashedSolidIcon as gi}from"./chunk-JTKLHXQE.js";import{LineDottedMiniIcon as Ai}from"./chunk-Z7SR7VQR.js";import{LineDottedSolidIcon as Wi}from"./chunk-DUPPQQ35.js";import{LineSolidMiniIcon as Ei}from"./chunk-H46XIWYV.js";import{LayersRectangleStackIcon as Yi}from"./chunk-Q2YQ2EN2.js";import{LayersSolidIcon as Ti}from"./chunk-UBBP5Q2C.js";import{LayoutAltIcon as Bi}from"./chunk-PYXW6GXA.js";import{LayoutMiniIcon as Ii}from"./chunk-TUODSC47.js";import{LayoutSolidIcon as Oi}from"./chunk-AU3GQT25.js";import{LetterSpacingMiniIcon as Si}from"./chunk-RYOPAJXK.js";import{LetterSpacingSolidIcon as Vi}from"./chunk-FSLICZMD.js";import{LightbulbMiniIcon as wi}from"./chunk-LMLLHS4Q.js";import{InfoMiniIcon as yi}from"./chunk-UMKNAPC2.js";import{InfoSolidIcon as xi}from"./chunk-ZU6L5U5X.js";import{ItalicMiniIcon as vi}from"./chunk-JDGZNXOM.js";import{ItalicSolidIcon as qi}from"./chunk-CMYQL6WU.js";import{KeyMiniIcon as zi}from"./chunk-TQITZXNM.js";import{KeySolidIcon as $i}from"./chunk-B7FO24I2.js";import{LayersAltIcon as _i}from"./chunk-SUSN7BUA.js";import{LayersMiniIcon as rn}from"./chunk-VPJZX7GH.js";import{ImageOffSolidIcon as on}from"./chunk-M7N7XLUK.js";import{ImageSolidIcon as mn}from"./chunk-HULBQOQ4.js";import{ImagesMiniIcon as tn}from"./chunk-5P6EYV7K.js";import{ImagesSolidIcon as cn}from"./chunk-Y7BG7B64.js";import{InboxAltIcon as nn}from"./chunk-BFJ4RYCD.js";import{InboxMiniIcon as sn}from"./chunk-QRSDMC5W.js";import{InboxSolidIcon as pn}from"./chunk-EESYQSYA.js";import{InfoAltIcon as un}from"./chunk-U5423MQC.js";import{IconAtEndSolidIcon as hn}from"./chunk-MJ6SYTFL.js";import{IconBeforeTextMiniIcon as kn}from"./chunk-C6FIA3VB.js";import{IconBeforeTextSolidIcon as fn}from"./chunk-FMSIKEE3.js";import{IdentificationMiniIcon as en}from"./chunk-MX26PZGW.js";import{IdentificationSolidIcon as jn}from"./chunk-ELWJR6D5.js";import{ImageAltIcon as an}from"./chunk-4NT5O3CF.js";import{ImageMiniIcon as ln}from"./chunk-22AYA6IH.js";import{ImageOffMiniIcon as dn}from"./chunk-ZLFF5JQG.js";import{HoverRotateMiniIcon as bn}from"./chunk-IABSP2GJ.js";import{HoverRotateSolidIcon as Qn}from"./chunk-QHUGCISZ.js";import{HoverSolidIcon as Cn}from"./chunk-J3EF3LJU.js";import{HoverZoomMiniIcon as Fn}from"./chunk-UCWJA6LT.js";import{HoverZoomSolidIcon as Nn}from"./chunk-PJW3BL27.js";import{IconAfterTextMiniIcon as Jn}from"./chunk-O5MCB756.js";import{IconAfterTextSolidIcon as Mn}from"./chunk-H4SQVPCY.js";import{IconAtEndMiniIcon as Kn}from"./chunk-VRBDSUV5.js";import{HomeSolidIcon as Rn}from"./chunk-XKTLIGRL.js";import{HoverLiftMiniIcon as Un}from"./chunk-MIOL4CDN.js";import{HoverLiftSolidIcon as Dn}from"./chunk-KLHUKAD3.js";import{HoverMiniIcon as Hn}from"./chunk-VMKJJFZB.js";import{HoverNextImageMiniIcon as Pn}from"./chunk-FIZKXNCZ.js";import{HoverNextImageSolidIcon as Xn}from"./chunk-XGAXRNZS.js";import{HoverNoneMiniIcon as Ln}from"./chunk-APLKFBJH.js";import{HoverNoneSolidIcon as Zn}from"./chunk-5X4DBMS6.js";import{HeightSolidIcon as Gn}from"./chunk-QTQNZMIC.js";import{HelpMiniIcon as gn}from"./chunk-LRY6HMOO.js";import{HelpOffMiniIcon as An}from"./chunk-Z3ZZ7IKK.js";import{HelpOffSolidIcon as Wn}from"./chunk-NCZDQBQ4.js";import{HelpSolidIcon as En}from"./chunk-TBRNYDMF.js";import{HexagonMiniIcon as Yn}from"./chunk-WGFQSFHX.js";import{HexagonSolidIcon as Tn}from"./chunk-OZ2GH2H7.js";import{HomeMiniIcon as Bn}from"./chunk-DOA6QPPR.js";import{HandThumbUpSolidIcon as In}from"./chunk-A5ONCCD3.js";import{HashMiniIcon as On}from"./chunk-BZDWR4KD.js";import{HashSolidIcon as Sn}from"./chunk-UXPHLHBG.js";import{HeadquartersMiniIcon as Vn}from"./chunk-7HBLOYWQ.js";import{HeadquartersSolidIcon as wn}from"./chunk-2SFKU2B2.js";import{HeartMiniIcon as yn}from"./chunk-RT6AI5I7.js";import{HeartSolidIcon as xn}from"./chunk-BBY7MNDN.js";import{HeightMiniIcon as vn}from"./chunk-5AQ6KQSD.js";import{GridAltIcon as qn}from"./chunk-CEYIPCMH.js";import{GridMiniIcon as zn}from"./chunk-NHDIBRV7.js";import{GridSolidIcon as $n}from"./chunk-IYZTC7VC.js";import{GroundMiniIcon as _n}from"./chunk-DBWIOWPM.js";import{GroundSolidIcon as rs}from"./chunk-MFFIF7AB.js";import{HandMiniIcon as os}from"./chunk-7E3RNMRR.js";import{HandSolidIcon as ms}from"./chunk-6R4YB7K3.js";import{HandThumbUpMiniIcon as ts}from"./chunk-ITHJW2KQ.js";import{GapSolidIcon as cs}from"./chunk-TBMPFURE.js";import{GemMiniIcon as is}from"./chunk-HPR54EP7.js";import{GemSolidIcon as ns}from"./chunk-D5CO7TAN.js";import{GiftMiniIcon as ss}from"./chunk-WHNWFXTB.js";import{GiftSolidIcon as ps}from"./chunk-QHY3TU27.js";import{GlobeAltIcon as us}from"./chunk-24KAXH2Q.js";import{GlobeMiniIcon as hs}from"./chunk-H6ARFO7R.js";import{GlobeSolidIcon as ks}from"./chunk-AV5NET7T.js";import{FolderPlusMiniIcon as fs}from"./chunk-2ZIX7XRY.js";import{FolderPlusSolidIcon as es}from"./chunk-Y43FUWQ2.js";import{FolderSolidIcon as js}from"./chunk-MEUDPC32.js";import{ForwardMiniIcon as as}from"./chunk-JKHFESAR.js";import{ForwardSolidIcon as ls}from"./chunk-4E5LJBKT.js";import{FullWidthMiniIcon as ds}from"./chunk-ORKNUTVU.js";import{FullWidthSolidIcon as bs}from"./chunk-D46DMMOR.js";import{GapMiniIcon as Qs}from"./chunk-UAB5A3AI.js";import{FireSolidIcon as Cs}from"./chunk-MHCYAUWZ.js";import{FlagAltIcon as Fs}from"./chunk-22FCQMKM.js";import{FlagMiniIcon as Ns}from"./chunk-I7IJ3CFC.js";import{FlagSolidIcon as Js}from"./chunk-SWYJ3FKU.js";import{FolderAltIcon as Ms}from"./chunk-ZEXLGKAK.js";import{FolderMiniIcon as Ks}from"./chunk-KKVQPJI3.js";import{FolderOpenMiniIcon as Rs}from"./chunk-NU3WUIAM.js";import{FolderOpenSolidIcon as Us}from"./chunk-W2JSPWW2.js";import{EyeSolidIcon as Ds}from"./chunk-IIDWSVS5.js";import{FaceSmileMiniIcon as Hs}from"./chunk-4GBFZNYZ.js";import{FaceSmileSolidIcon as Ps}from"./chunk-EHE6TM43.js";import{FilterMiniIcon as Xs}from"./chunk-3QPIARDX.js";import{FilterSolidIcon as Ls}from"./chunk-IDHWRHBE.js";import{FinishMiniIcon as Zs}from"./chunk-SSNT2D3M.js";import{FinishSolidIcon as Gs}from"./chunk-465F75NG.js";import{FireMiniIcon as gs}from"./chunk-XWNYSMBG.js";import{ExpandSolidIcon as As}from"./chunk-3H25EPZU.js";import{ExternalAlt2Icon as Ws}from"./chunk-VQJ4CKDU.js";import{ExternalAltIcon as Es}from"./chunk-OJFBIBPI.js";import{ExternalMiniIcon as Ys}from"./chunk-XEBHXPOE.js";import{ExternalSolidIcon as Ts}from"./chunk-Y4YWLKCV.js";import{EyeMiniIcon as Bs}from"./chunk-UNOUO3JN.js";import{EyeOffMiniIcon as Is}from"./chunk-GBPUVNSN.js";import{EyeOffSolidIcon as Os}from"./chunk-6FC6PZU4.js";import{EmailSolidIcon as Ss}from"./chunk-RL7LVMCC.js";import{EnterMiniIcon as Vs}from"./chunk-ALDGSODF.js";import{EnterSolidIcon as ws}from"./chunk-26LO7XCK.js";import{EraserMiniIcon as ys}from"./chunk-2O2LJV7Q.js";import{EraserSolidIcon as xs}from"./chunk-LXMTX7NE.js";import{ErrorMiniIcon as vs}from"./chunk-WZ76TDXU.js";import{ErrorSolidIcon as qs}from"./chunk-CT6I7VFU.js";import{ExpandMiniIcon as zs}from"./chunk-YRGKL2JP.js";import{DurationSolidIcon as $s}from"./chunk-PGKNWSSC.js";import{EditAlt2Icon as _s}from"./chunk-UOSU63FV.js";import{EditAltIcon as rp}from"./chunk-W4EHFZ7Z.js";import{EditMiniIcon as op}from"./chunk-HTXTUUBJ.js";import{EditPencilSquareIcon as mp}from"./chunk-HPWGEKEJ.js";import{EditSolidIcon as tp}from"./chunk-IXYWZ667.js";import{EmailAltIcon as cp}from"./chunk-NYKBG5JF.js";import{EmailMiniIcon as ip}from"./chunk-CYLOWGUD.js";import{DragMiniIcon as np}from"./chunk-JFKFJPLE.js";import{DragSolidIcon as sp}from"./chunk-TPMOTUTN.js";import{DropMiniIcon as pp}from"./chunk-6LSFDCSH.js";import{DropSolidIcon as up}from"./chunk-BOLX5THX.js";import{DuplicateAltIcon as hp}from"./chunk-VRXSAWR2.js";import{DuplicateMiniIcon as kp}from"./chunk-PWONWGNZ.js";import{DuplicateSolidIcon as fp}from"./chunk-OTUO4L3W.js";import{DurationMiniIcon as ep}from"./chunk-44QWF5X2.js";import{DollarMiniIcon as jp}from"./chunk-6MHC2ZMP.js";import{DollarSolidIcon as ap}from"./chunk-KTVER4CP.js";import{DotMiniIcon as lp}from"./chunk-Z4EJ2MNK.js";import{DotSolidIcon as dp}from"./chunk-YN5G6G3E.js";import{DownloadAltIcon as bp}from"./chunk-SOQGJH2H.js";import{DownloadMiniIcon as Qp}from"./chunk-NOMPZRDT.js";import{DownloadSolidIcon as Cp}from"./chunk-T6GW556F.js";import{DragAltIcon as Fp}from"./chunk-4PYQMQQ6.js";import{DocumentCheckMiniIcon as Np}from"./chunk-RIQGDM3S.js";import{DocumentCheckSolidIcon as Jp}from"./chunk-CTN6J6MI.js";import{DocumentDocumentIcon as Mp}from"./chunk-HZSE3AMP.js";import{DocumentMagnifyingGlassMiniIcon as Kp}from"./chunk-T6ZWKFPU.js";import{DocumentMagnifyingGlassSolidIcon as Rp}from"./chunk-MN74RSSD.js";import{DocumentMiniIcon as Up}from"./chunk-PHWEOFEG.js";import{DocumentSolidIcon as Dp}from"./chunk-TFRIWTDA.js";import{DollarAltIcon as Hp}from"./chunk-FPFP6LPK.js";import{DetachSolidIcon as Pp}from"./chunk-LV2YFFA6.js";import{DiagramMiniIcon as Xp}from"./chunk-WVJSPRDR.js";import{DiagramSolidIcon as Lp}from"./chunk-BOHPJXNM.js";import{DirectionMiniIcon as Zp}from"./chunk-CFQZ2UJM.js";import{DirectionSolidIcon as Gp}from"./chunk-QKSOCPA2.js";import{DocumentAlt2Icon as gp}from"./chunk-W6ZAUD5E.js";import{DocumentAltIcon as Ap}from"./chunk-VOC5AK66.js";import{DocumentCheckAltIcon as Wp}from"./chunk-VYDLQ3TB.js";import{CursorMiniIcon as Ep}from"./chunk-23E6AHJY.js";import{CursorSolidIcon as Yp}from"./chunk-4UCO62M5.js";import{DateMiniIcon as Tp}from"./chunk-QFDGSQQE.js";import{DateSolidIcon as Bp}from"./chunk-7R623GIR.js";import{DesktopAltIcon as Ip}from"./chunk-4X2F4CV3.js";import{DesktopMiniIcon as Op}from"./chunk-SNLTAYYR.js";import{DesktopSolidIcon as Sp}from"./chunk-MFKHQ5K2.js";import{DetachMiniIcon as Vp}from"./chunk-4YARHVZH.js";import{CropTopMiniIcon as wp}from"./chunk-KO5PBMCF.js";import{CropTopSolidIcon as yp}from"./chunk-PWONLQFF.js";import{CropYMiniIcon as xp}from"./chunk-D5EXIRJF.js";import{CropYSolidIcon as vp}from"./chunk-6NLKMHX6.js";import{CubeTransparentMiniIcon as qp}from"./chunk-PON7R7AU.js";import{CubeTransparentSolidIcon as zp}from"./chunk-X26UU4VQ.js";import{CursorClickMiniIcon as $p}from"./chunk-S6VIYZ2J.js";import{CursorClickSolidIcon as _p}from"./chunk-BYDXJORJ.js";import{CropLeftMiniIcon as ru}from"./chunk-RA5GR626.js";import{CropLeftRightMiniIcon as ou}from"./chunk-JTPBPEYK.js";import{CropLeftRightSolidIcon as mu}from"./chunk-USYTN7PE.js";import{CropLeftSolidIcon as tu}from"./chunk-2MBDZMZM.js";import{CropMiniIcon as cu}from"./chunk-GKUHMQ4N.js";import{CropRightMiniIcon as iu}from"./chunk-KIYTUOVN.js";import{CropRightSolidIcon as nu}from"./chunk-7F65BNHY.js";import{CropSolidIcon as su}from"./chunk-WNM2AMCR.js";import{CopyToPageMiniIcon as pu}from"./chunk-CUH3B5XK.js";import{CopyToPageSolidIcon as uu}from"./chunk-XQQVYYP6.js";import{CornerMiniIcon as hu}from"./chunk-FY2CQ5OZ.js";import{CornerSolidIcon as ku}from"./chunk-IHFHX3JS.js";import{CountUpMiniIcon as fu}from"./chunk-RRVBOD2U.js";import{CountUpSolidIcon as eu}from"./chunk-I5VYOWIX.js";import{CropBottomMiniIcon as ju}from"./chunk-BXDYFSP4.js";import{CropBottomSolidIcon as au}from"./chunk-QM5DFN7Z.js";import{CopiedMiniIcon as lu}from"./chunk-FVZBMQQG.js";import{CopiedSolidIcon as du}from"./chunk-6NM4VNUK.js";import{CopyAlt2Icon as bu}from"./chunk-6OVMOQXY.js";import{CopyAltIcon as Qu}from"./chunk-76MY6SHR.js";import{CopyMiniIcon as Cu}from"./chunk-COL533ZT.js";import{CopySolidIcon as Fu}from"./chunk-R2AU7OKI.js";import{CopyStyleMiniIcon as Nu}from"./chunk-FDF6AGVQ.js";import{CopyStyleSolidIcon as Ju}from"./chunk-XLTCCVAS.js";import{ColumnsMiniIcon as Mu}from"./chunk-KU75RLJS.js";import{ColumnsSolidIcon as Ku}from"./chunk-VEPD5TDQ.js";import{CompanyMiniIcon as Ru}from"./chunk-BXRX5WJC.js";import{CompanySolidIcon as Uu}from"./chunk-7DVL5EM2.js";import{ComposeMiniIcon as Du}from"./chunk-Q6DH4T7K.js";import{ComposeSolidIcon as Hu}from"./chunk-YPAX3OVJ.js";import{ContrastMiniIcon as Pu}from"./chunk-VZEQGTG6.js";import{ContrastSolidIcon as Xu}from"./chunk-GVMMJWNK.js";import{CodeMiniIcon as Lu}from"./chunk-EY7ITVLB.js";import{CodeSolidIcon as Zu}from"./chunk-QF2QYWLO.js";import{CollapseMiniIcon as Gu}from"./chunk-KMGORP5N.js";import{CollapseSolidIcon as gu}from"./chunk-MFZS4XH4.js";import{ColumnGapMiniIcon as Au}from"./chunk-EBH2ETZL.js";import{ColumnGapSolidIcon as Wu}from"./chunk-4CGNDOUU.js";import{ColumnWidthsMiniIcon as Eu}from"./chunk-7CQR2P4D.js";import{ColumnWidthsSolidIcon as Yu}from"./chunk-V2ILLLXT.js";import{CloudDownloadMiniIcon as Tu}from"./chunk-NFQTAYIZ.js";import{CloudDownloadSolidIcon as Bu}from"./chunk-5ATA7ZH4.js";import{CloudMiniIcon as Iu}from"./chunk-OZ7YWV63.js";import{CloudPauseMiniIcon as Ou}from"./chunk-SIILHHPE.js";import{CloudPauseSolidIcon as Su}from"./chunk-5KQTZ4UE.js";import{CloudSlashMiniIcon as Vu}from"./chunk-4YYHXX5L.js";import{CloudSlashSolidIcon as wu}from"./chunk-IDA6A4QV.js";import{CloudSolidIcon as yu}from"./chunk-LVL7SQQE.js";import{CloseMiniIcon as xu}from"./chunk-44CXUHIL.js";import{CloseSolidIcon as vu}from"./chunk-AHVWJJCK.js";import{CloudAlertMiniIcon as qu}from"./chunk-BXS2D2KK.js";import{CloudAlertSolidIcon as zu}from"./chunk-FWNFAW7P.js";import{CloudArrowUpMiniIcon as $u}from"./chunk-6RY7OKVQ.js";import{CloudArrowUpSolidIcon as _u}from"./chunk-2NRMCUOW.js";import{CloudCheckMiniIcon as rh}from"./chunk-ZV4FB43H.js";import{CloudCheckSolidIcon as oh}from"./chunk-EAI3RF4X.js";import{ClipboardDocumentListSolidIcon as mh}from"./chunk-7BPQPIJJ.js";import{ClipboardMiniIcon as th}from"./chunk-IUUJEV6I.js";import{ClipboardSolidIcon as ch}from"./chunk-XS4PWQSN.js";import{ClockMiniIcon as ih}from"./chunk-J4FL4OCW.js";import{ClockSolidIcon as nh}from"./chunk-DORDAZGF.js";import{CloseCircleAltIcon as sh}from"./chunk-TQYPYM4F.js";import{CloseCircleMiniIcon as ph}from"./chunk-6AKTE47Z.js";import{CloseCircleSolidIcon as uh}from"./chunk-MNJH3BVA.js";import{ChevronUpDownSolidIcon as hh}from"./chunk-TGS7NZ4S.js";import{ChevronUpMiniIcon as kh}from"./chunk-R7F2DMKZ.js";import{ChevronUpSolidIcon as fh}from"./chunk-UGUQC2CY.js";import{CircleStackMiniIcon as eh}from"./chunk-AD7JPCLJ.js";import{CircleStackSolidIcon as jh}from"./chunk-OSFWNBI3.js";import{ClearMarksMiniIcon as ah}from"./chunk-DSFPJYO5.js";import{ClearMarksSolidIcon as lh}from"./chunk-S4WC23JS.js";import{ClipboardDocumentListMiniIcon as dh}from"./chunk-HGOWLHKZ.js";import{ChevronDoubleRightSolidIcon as bh}from"./chunk-2B2HGWZR.js";import{ChevronDownMiniIcon as Qh}from"./chunk-LRWOR3LD.js";import{ChevronDownSolidIcon as Ch}from"./chunk-5YPYINMS.js";import{ChevronLeftMiniIcon as Fh}from"./chunk-EFP2VLXY.js";import{ChevronLeftSolidIcon as Nh}from"./chunk-53JU3XAC.js";import{ChevronRightMiniIcon as Jh}from"./chunk-7BLIJJRB.js";import{ChevronRightSolidIcon as Mh}from"./chunk-PZVDRXTL.js";import{ChevronUpDownMiniIcon as Kh}from"./chunk-6USSSR3X.js";import{CheckCircleSolidIcon as Rh}from"./chunk-4AHAFRLQ.js";import{CheckMiniIcon as Uh}from"./chunk-PZVZQAT7.js";import{CheckSolidIcon as Dh}from"./chunk-CL3TM57T.js";import{CheckboxMiniIcon as Hh}from"./chunk-NBDXKLRS.js";import{CheckboxSolidIcon as Ph}from"./chunk-MP32KR6I.js";import{ChevronDoubleLeftMiniIcon as Xh}from"./chunk-HFZYDG4H.js";import{ChevronDoubleLeftSolidIcon as Lh}from"./chunk-ESYW3ZJ3.js";import{ChevronDoubleRightMiniIcon as Zh}from"./chunk-5KV4BIYG.js";import{ChatBubbleLeftRightMiniIcon as Gh}from"./chunk-EMFPDUC5.js";import{ChatBubbleLeftRightSolidIcon as gh}from"./chunk-FJCROBEY.js";import{ChatBubbleOvalLeftEllipsisMiniIcon as Ah}from"./chunk-WKQDQ6PX.js";import{ChatBubbleOvalLeftEllipsisSolidIcon as Wh}from"./chunk-5ONLEJND.js";import{ChatMiniIcon as Eh}from"./chunk-TZALPJLH.js";import{ChatSolidIcon as Yh}from"./chunk-WVWIQLSO.js";import{CheckAltIcon as Th}from"./chunk-66B4UUBJ.js";import{CheckCircleMiniIcon as Bh}from"./chunk-HW23QCM6.js";import{ChartBarSolidIcon as Ih}from"./chunk-JKZBUZJL.js";import{ChartBarSquareMiniIcon as Oh}from"./chunk-O4VLKJH6.js";import{ChartBarSquareSolidIcon as Sh}from"./chunk-WMHMEL4M.js";import{ChartLineMiniIcon as Vh}from"./chunk-3AOH4Y5Q.js";import{ChartLineSolidIcon as wh}from"./chunk-H4D64QWB.js";import{ChartMiniIcon as yh}from"./chunk-6MK2ZRMR.js";import{ChartSolidIcon as xh}from"./chunk-WSGRNF7K.js";import{ChatAltIcon as vh}from"./chunk-A5M37IYD.js";import{CaseLowerSolidIcon as qh}from"./chunk-BTWIDDUX.js";import{CaseMiniIcon as zh}from"./chunk-7NYUPAF2.js";import{CaseNormalMiniIcon as $h}from"./chunk-K553VJKG.js";import{CaseNormalSolidIcon as _h}from"./chunk-EWO3CHRK.js";import{CaseSolidIcon as rk}from"./chunk-AJS6MGSR.js";import{CaseUpperMiniIcon as ok}from"./chunk-BTKR3L6T.js";import{CaseUpperSolidIcon as mk}from"./chunk-C6PK7DPK.js";import{ChartBarMiniIcon as tk}from"./chunk-PTAWGNOP.js";import{CardPaymentMiniIcon as ck}from"./chunk-USDDEC5E.js";import{CardPaymentSolidIcon as ik}from"./chunk-VEWTFCLT.js";import{CartAltIcon as nk}from"./chunk-EBIWBHDT.js";import{CartMiniIcon as sk}from"./chunk-SQ3LMAD7.js";import{CartSolidIcon as pk}from"./chunk-5OB5G4ER.js";import{CaseCapitalizedMiniIcon as uk}from"./chunk-LGLWUWLG.js";import{CaseCapitalizedSolidIcon as hk}from"./chunk-COBVYQJ5.js";import{CaseLowerMiniIcon as kk}from"./chunk-6PBWS4U2.js";import{CameraMiniIcon as fk}from"./chunk-JFKV3HGY.js";import{CameraSolidIcon as ek}from"./chunk-CLKX4AYI.js";import{CaptionMiniIcon as jk}from"./chunk-QAQ7AWOR.js";import{CaptionSolidIcon as ak}from"./chunk-625GKS5W.js";import{CarMiniIcon as lk}from"./chunk-HZWDLCON.js";import{CarSolidIcon as dk}from"./chunk-SJAGP7O5.js";import{CardPaymentAlt2Icon as bk}from"./chunk-2ASZVLNP.js";import{CardPaymentAltIcon as Qk}from"./chunk-DMALV6HL.js";import{ButtonMiniIcon as Ck}from"./chunk-I4AFC5T6.js";import{ButtonSolidIcon as Fk}from"./chunk-BQGZ5XPF.js";import{CalculatorMiniIcon as Nk}from"./chunk-A53BUHOH.js";import{CalculatorSolidIcon as Jk}from"./chunk-VCJ4TFNW.js";import{CalendarAlt2Icon as Mk}from"./chunk-7C6NKEWV.js";import{CalendarAltIcon as Kk}from"./chunk-JANKMZGF.js";import{CalendarMiniIcon as Rk}from"./chunk-KCE2CIH7.js";import{CalendarSolidIcon as Uk}from"./chunk-UM7ENABX.js";import{BugMiniIcon as Dk}from"./chunk-R2DAQH2T.js";import{BugSolidIcon as Hk}from"./chunk-YVLE5OZR.js";import{BuildingLibraryMiniIcon as Pk}from"./chunk-TH4CJHHG.js";import{BuildingLibrarySolidIcon as Xk}from"./chunk-Z2AQ3XB3.js";import{BuildingOffice2MiniIcon as Lk}from"./chunk-TC7LOFWX.js";import{BuildingOffice2SolidIcon as Zk}from"./chunk-UC5NQ7J6.js";import{ButtonIconMiniIcon as Gk}from"./chunk-JT54HCG7.js";import{ButtonIconSolidIcon as gk}from"./chunk-LQ2WXJLJ.js";import{BrandXOutlineIcon as Ak}from"./chunk-2UCDJCGZ.js";import{BrandXSolidIcon as Wk}from"./chunk-FEVWWOGL.js";import{BrandYoutubeOutlineIcon as Ek}from"./chunk-RBXMTHOT.js";import{BrandYoutubeSolidIcon as Yk}from"./chunk-UKC6VJE4.js";import{BreadcrumbMiniIcon as Tk}from"./chunk-SDECOPY3.js";import{BreadcrumbSolidIcon as Bk}from"./chunk-KLAGP4GV.js";import{BriefcaseMiniIcon as Ik}from"./chunk-IRZBGVTB.js";import{BriefcaseSolidIcon as Ok}from"./chunk-XS4HBMDN.js";import{BrandTelegramOutlineIcon as Sk}from"./chunk-YVULGIDQ.js";import{BrandTelegramSolidIcon as Vk}from"./chunk-NTWI7EGJ.js";import{BrandTiktokOutlineIcon as wk}from"./chunk-T3NJAOJL.js";import{BrandTiktokSolidIcon as yk}from"./chunk-W5DLG5T2.js";import{BrandWechatOutlineIcon as xk}from"./chunk-YKKMR5DU.js";import{BrandWechatSolidIcon as vk}from"./chunk-474G67EG.js";import{BrandWhatsappOutlineIcon as qk}from"./chunk-NFMDU4EJ.js";import{BrandWhatsappSolidIcon as zk}from"./chunk-URWQO4KB.js";import{BrandInstagramOutlineIcon as $k}from"./chunk-MTZUYC4Y.js";import{BrandInstagramSolidIcon as _k}from"./chunk-LQD7K7HK.js";import{BrandLineOutlineIcon as rf}from"./chunk-EQPVQY5E.js";import{BrandLineSolidIcon as of}from"./chunk-CAUWHLN7.js";import{BrandLinkedinOutlineIcon as mf}from"./chunk-6I7EODFJ.js";import{BrandLinkedinSolidIcon as tf}from"./chunk-BXQYRG7P.js";import{BrandPinterestOutlineIcon as cf}from"./chunk-ROUTBYMG.js";import{BrandPinterestSolidIcon as nf}from"./chunk-FOXMWLVS.js";import{BoxYStartMiniIcon as sf}from"./chunk-TSP7UFQB.js";import{BoxYStartSolidIcon as pf}from"./chunk-6LNNBA3T.js";import{BoxYStretchMiniIcon as uf}from"./chunk-TQ2M7V4E.js";import{BoxYStretchSolidIcon as hf}from"./chunk-3FGPFDDK.js";import{BracesMiniIcon as kf}from"./chunk-G5T4NYFR.js";import{BracesSolidIcon as ff}from"./chunk-AHTA7QXO.js";import{BrandFacebookOutlineIcon as ef}from"./chunk-5KZ4WKUI.js";import{BrandFacebookSolidIcon as jf}from"./chunk-OKRAYHGW.js";import{BoxXStretchMiniIcon as af}from"./chunk-GFYIVFX2.js";import{BoxXStretchSolidIcon as lf}from"./chunk-NLUSV66Z.js";import{BoxYBetweenMiniIcon as df}from"./chunk-NO6DG2IV.js";import{BoxYBetweenSolidIcon as bf}from"./chunk-UO6GQPT3.js";import{BoxYCenterMiniIcon as Qf}from"./chunk-JNSMBHNH.js";import{BoxYCenterSolidIcon as Cf}from"./chunk-W33HIHEP.js";import{BoxYEndMiniIcon as Ff}from"./chunk-IS6FC32P.js";import{BoxYEndSolidIcon as Nf}from"./chunk-H62WUDPO.js";import{BoxXBetweenMiniIcon as Jf}from"./chunk-ESDSE6HY.js";import{BoxXBetweenSolidIcon as Mf}from"./chunk-6CBF7UQ2.js";import{BoxXCenterMiniIcon as Kf}from"./chunk-GZ7XQBCG.js";import{BoxXCenterSolidIcon as Rf}from"./chunk-HFAOJ4OJ.js";import{BoxXEndMiniIcon as Uf}from"./chunk-K5VNHEVL.js";import{BoxXEndSolidIcon as Df}from"./chunk-FMHHOXML.js";import{BoxXStartMiniIcon as Hf}from"./chunk-NQJL6B67.js";import{BoxXStartSolidIcon as Pf}from"./chunk-T2FITGKQ.js";import{BorderRightMiniIcon as Xf}from"./chunk-6KGMGZHE.js";import{BorderRightSolidIcon as Lf}from"./chunk-U7Y6VI2V.js";import{BorderTopMiniIcon as Zf}from"./chunk-SJ23KTCO.js";import{BorderTopSolidIcon as Gf}from"./chunk-G3OIMKEO.js";import{BoxItemAlignmentMiniIcon as gf}from"./chunk-O3UL2XW5.js";import{BoxItemAlignmentSolidIcon as Af}from"./chunk-E5G2RURY.js";import{BoxJustifyMiniIcon as Wf}from"./chunk-QRTRKWCZ.js";import{BoxJustifySolidIcon as Ef}from"./chunk-S5IAQ7ZS.js";import{BookmarkSquareMiniIcon as Yf}from"./chunk-YH4GOPT3.js";import{BookmarkSquareSolidIcon as Tf}from"./chunk-ERKFGC5C.js";import{BorderAllMiniIcon as Bf}from"./chunk-QKEJNJSJ.js";import{BorderAllSolidIcon as If}from"./chunk-BVZSNZO2.js";import{BorderBottomMiniIcon as Of}from"./chunk-UNETPVQD.js";import{BorderBottomSolidIcon as Sf}from"./chunk-EQJFKRK5.js";import{BorderLeftMiniIcon as Vf}from"./chunk-GWXTRUSZ.js";import{BorderLeftSolidIcon as wf}from"./chunk-BLTHZSWG.js";import{BoldMiniIcon as yf}from"./chunk-OZIHC6LT.js";import{BoldSolidIcon as xf}from"./chunk-JTECQPFZ.js";import{BoltMiniIcon as vf}from"./chunk-WD2PAOXY.js";import{BoltSolidIcon as qf}from"./chunk-RLUX7UZ3.js";import{BookOpenMiniIcon as zf}from"./chunk-MDEYAVX5.js";import{BookOpenSolidIcon as $f}from"./chunk-KNIHHEZ6.js";import{BookmarkMiniIcon as _f}from"./chunk-PJZ4TOFR.js";import{BookmarkSolidIcon as re}from"./chunk-GVSGP4P3.js";import{BlockSpacerMiniIcon as oe}from"./chunk-S2PKAWDA.js";import{BlockSpacerSolidIcon as me}from"./chunk-K6ZY2PQV.js";import{BlockTextMiniIcon as te}from"./chunk-7YJ6QRFY.js";import{BlockTextSolidIcon as ce}from"./chunk-IADBERII.js";import{BlockVideoMiniIcon as ie}from"./chunk-ZMYTKXYP.js";import{BlockVideoSolidIcon as ne}from"./chunk-X6IMHWDH.js";import{BlogPostMiniIcon as se}from"./chunk-D2VXCCQV.js";import{BlogPostSolidIcon as pe}from"./chunk-ADILLUBC.js";import{BlockHeadingMiniIcon as ue}from"./chunk-KHSTQGAQ.js";import{BlockHeadingSolidIcon as he}from"./chunk-6OPE4Z6S.js";import{BlockLayeredImagesMiniIcon as ke}from"./chunk-G2KSTEIR.js";import{BlockLayeredImagesSolidIcon as fe}from"./chunk-KW7DKURL.js";import{BlockProductTitleMiniIcon as ee}from"./chunk-5C56H7RM.js";import{BlockProductTitleSolidIcon as je}from"./chunk-VK4OK5MQ.js";import{BlockSectionMiniIcon as ae}from"./chunk-OONUEZIW.js";import{BlockSectionSolidIcon as le}from"./chunk-5L3MHRXQ.js";import{BlockBoxMiniIcon as de}from"./chunk-DIM5ZZ5Y.js";import{BlockBoxSolidIcon as be}from"./chunk-3RVAJR6Y.js";import{BlockCouponMiniIcon as Qe}from"./chunk-JZEQTZRG.js";import{BlockCouponSolidIcon as Ce}from"./chunk-LBJQOR7U.js";import{BlockDividerMiniIcon as Fe}from"./chunk-ZMON54V2.js";import{BlockDividerSolidIcon as Ne}from"./chunk-6PAEECEY.js";import{BlockFooterMiniIcon as Je}from"./chunk-7WLRGQU2.js";import{BlockFooterSolidIcon as Me}from"./chunk-KN6Z3QSE.js";import{BillingMiniIcon as Ke}from"./chunk-NMZH7XRX.js";import{BillingSolidIcon as Re}from"./chunk-GIDCFJFJ.js";import{BlackAndWhiteMiniIcon as Ue}from"./chunk-LHKI2VJW.js";import{BlackAndWhiteSolidIcon as De}from"./chunk-OOCJAWJB.js";import{BlockBadgeMiniIcon as He}from"./chunk-TNM6UGRR.js";import{BlockBadgeSolidIcon as Pe}from"./chunk-CDXABHGL.js";import{BlockBannerMiniIcon as Xe}from"./chunk-H2FH3U4E.js";import{BlockBannerSolidIcon as Le}from"./chunk-GIU6VXJB.js";import{BeakerSolidIcon as Ze}from"./chunk-XAYE2WUP.js";import{BellAlertMiniIcon as Ge}from"./chunk-YS5B33PA.js";import{BellAlertSolidIcon as ge}from"./chunk-NQ74ZNNG.js";import{BellAltIcon as Ae}from"./chunk-FXTYVMSO.js";import{BellMiniIcon as We}from"./chunk-VZSPQOIL.js";import{BellPlusMiniIcon as Ee}from"./chunk-7FKABCZX.js";import{BellPlusSolidIcon as Ye}from"./chunk-TNMTBNFE.js";import{BellSolidIcon as Te}from"./chunk-D5KZHQUQ.js";import{BackgroundSolidIcon as Be}from"./chunk-E25DJCZX.js";import{BagMiniIcon as Ie}from"./chunk-3UXCHN2Y.js";import{BagSolidIcon as Oe}from"./chunk-B64SQUAI.js";import{Bars3BottomLeftMiniIcon as Se}from"./chunk-YIURRPQ7.js";import{Bars3BottomLeftSolidIcon as Ve}from"./chunk-UO5KVL7C.js";import{BatteryMiniIcon as we}from"./chunk-M4PBEZVP.js";import{BatterySolidIcon as ye}from"./chunk-L2NH35JL.js";import{BeakerMiniIcon as xe}from"./chunk-Y4HNZVNW.js";import{ArrowUpRightSolidIcon as ve}from"./chunk-SANX3GBB.js";import{ArrowUpSolidIcon as qe}from"./chunk-OOXD67PN.js";import{AtSymbolMiniIcon as ze}from"./chunk-MM4WJHXO.js";import{AtSymbolSolidIcon as $e}from"./chunk-UYZAW4XK.js";import{AttachAltIcon as _e}from"./chunk-7AUFUC7S.js";import{AttachMiniIcon as rj}from"./chunk-3ZCQPEQB.js";import{AttachSolidIcon as oj}from"./chunk-F3HV52IQ.js";import{BackgroundMiniIcon as mj}from"./chunk-GJLJDWP2.js";import{ArrowRightMiniIcon as tj}from"./chunk-L5VJEUNL.js";import{ArrowRightSolidIcon as cj}from"./chunk-QEXKJWAA.js";import{ArrowTrendingDownMiniIcon as ij}from"./chunk-IW3H2NIS.js";import{ArrowTrendingDownSolidIcon as nj}from"./chunk-KQHNX5WQ.js";import{ArrowTrendingUpMiniIcon as sj}from"./chunk-C7PJ2BFZ.js";import{ArrowTrendingUpSolidIcon as pj}from"./chunk-WRVHXP72.js";import{ArrowUpMiniIcon as uj}from"./chunk-NPMGJBVE.js";import{ArrowUpRightMiniIcon as hj}from"./chunk-DCQS3CY7.js";import{ArrowDownMiniIcon as kj}from"./chunk-UEETKW2R.js";import{ArrowDownSolidIcon as fj}from"./chunk-BUA6AISP.js";import{ArrowLeftEndOnRectangleMiniIcon as ej}from"./chunk-6SGFZZNU.js";import{ArrowLeftEndOnRectangleSolidIcon as jj}from"./chunk-H3CZUUUV.js";import{ArrowLeftMiniIcon as aj}from"./chunk-XK2TKHHU.js";import{ArrowLeftSolidIcon as lj}from"./chunk-XQFFEQNA.js";import{ArrowLongRightMiniIcon as dj}from"./chunk-WDNMERJD.js";import{ArrowLongRightSolidIcon as bj}from"./chunk-2LCAJKJM.js";import{AnchorMiniIcon as Qj}from"./chunk-ZRPTWML6.js";import{AnchorSolidIcon as Cj}from"./chunk-SRX7THEC.js";import{AnimationMiniIcon as Fj}from"./chunk-4ZI75XUP.js";import{AnimationSolidIcon as Nj}from"./chunk-RLY6QGCY.js";import{AppsMiniIcon as Jj}from"./chunk-C5FRN2MO.js";import{AppsSolidIcon as Mj}from"./chunk-KKBQRMEQ.js";import{ArchiveBoxMiniIcon as Kj}from"./chunk-CVWRL3SR.js";import{ArchiveBoxSolidIcon as Rj}from"./chunk-DSRZ22NW.js";import{AlignLeftMiniIcon as Uj}from"./chunk-DOBDKX3N.js";import{AlignLeftSolidIcon as Dj}from"./chunk-UBS44QNF.js";import{AlignRightMiniIcon as Hj}from"./chunk-JHTRFNOJ.js";import{AlignRightSolidIcon as Pj}from"./chunk-DP7WVTGQ.js";import{AlignSeparateMiniIcon as Xj}from"./chunk-LSSZLU65.js";import{AlignSeparateSolidIcon as Lj}from"./chunk-MKS6YLYR.js";import{AlignmentMiniIcon as Zj}from"./chunk-GCR66E4S.js";import{AlignmentSolidIcon as Gj}from"./chunk-3LG5YFCK.js";import{AddPersonSolidIcon as gj}from"./chunk-EJ7CUJUL.js";import{AddSolidIcon as Aj}from"./chunk-SSYXGVCW.js";import{AdjustMiniIcon as Wj}from"./chunk-MUUIDQKX.js";import{AdjustSolidIcon as Ej}from"./chunk-FFTCTT6J.js";import{AlignCenterMiniIcon as Yj}from"./chunk-CJWPYYJZ.js";import{AlignCenterSolidIcon as Tj}from"./chunk-7U6KJNZ2.js";import{AlignJustifyMiniIcon as Bj}from"./chunk-UI2XKCNM.js";import{AlignJustifySolidIcon as Ij}from"./chunk-IQAFZJO5.js";import{AccountCircleSolidIcon as Oj}from"./chunk-PMP4MCXR.js";import{AccountMiniIcon as Sj}from"./chunk-VHGJTJ5C.js";import{AccountSolidIcon as Vj}from"./chunk-LMF4FIGQ.js";import{AccountUserCircleIcon as wj}from"./chunk-3OIQSCGM.js";import{AddCircleMiniIcon as yj}from"./chunk-DFAIY54I.js";import{AddCircleSolidIcon as xj}from"./chunk-DTLKYF45.js";import{AddMiniIcon as vj}from"./chunk-PMAX5YW2.js";import{AddPersonMiniIcon as qj}from"./chunk-77USZ3CH.js";import{AcademicCapMiniIcon as zj}from"./chunk-JSGNZTYP.js";import{AcademicCapSolidIcon as $j}from"./chunk-4XM7JDQT.js";import{AccentMiniIcon as _j}from"./chunk-FA6U6ZML.js";import{AccentSolidIcon as ra}from"./chunk-ZTN72H54.js";import{AccountAltIcon as oa}from"./chunk-EYBN5UBA.js";import{AccountCircleMiniIcon as ma}from"./chunk-ONJKQ4F4.js";var ta=["alt","alt-2","alt-3","arrow-path-rounded-square","building-storefront-20-solid","document","mini","outline","pencil-square","queue-list","rectangle-stack","solid","user-circle","user-group"],ca={name:"efficient",label:"Efficient",icons:{},looks:{alt:{account:oa,attach:_e,bell:Ae,"block-image":an,"block-included-list":bi,calendar:Kk,"calendar-check":Kk,"card-payment":Qk,cart:nk,category:Ms,chat:vh,check:Th,"close-circle":sh,copy:Qu,dashboard:qn,desktop:Ip,document:Ap,"document-check":Wp,dollar:Hp,download:bp,drag:Fp,duplicate:hp,edit:rp,email:cp,external:Es,flag:Fs,folder:Ms,globe:us,grid:qn,image:an,inbox:nn,info:un,layers:_i,layout:Bi,list:bi,lock:fi,map:ii,page:qt,"paint-brush":Pr,phone:Mt,play:at,"rectangle-group":Bi,refresh:Em,rename:rp,scale:Nm,"scroll-text":Ap,search:fm,send:mm,sort:no,sparkles:ko,star:Sr,styles:Pr,tag:ar,target:br,title:Fs,trash:I,truck:V,wheel:br},"alt-2":{"block-included-list":li,calendar:Mk,"calendar-check":Mk,"card-payment":bk,copy:bu,document:gp,edit:_s,external:Ws,list:li,rename:_s,"scroll-text":gp,search:km,send:om,sparkles:uo,trash:tr},"alt-3":{"block-included-list":di,list:di,sparkles:ho},"arrow-path-rounded-square":{refresh:Ym},"building-storefront-20-solid":{store:Br},document:{document:Mp,"scroll-text":Mp},mini:{"academic-cap":zj,accent:_j,account:Sj,"account-circle":ma,add:vj,"add-circle":yj,"add-person":qj,adjust:Wj,"align-center":Yj,"align-justify":Bj,"align-left":Uj,"align-right":Hj,"align-separate":Xj,alignment:Zj,anchor:Qj,animation:Fj,apps:Jj,"archive-box":Kj,arrow:tj,"arrow-down":kj,"arrow-left":aj,"arrow-left-end-on-rectangle":ej,"arrow-long-right":dj,"arrow-right":tj,"arrow-trending-down":ij,"arrow-trending-up":sj,"arrow-up":uj,"arrow-up-right":hj,"at-symbol":ze,attach:rj,background:mj,bag:Ie,bank:Pk,"bars-3-bottom-left":Se,battery:we,beaker:xe,bell:We,"bell-alert":Ge,"bell-plus":Ee,billing:Ke,"black-and-white":Ue,"block-badge":He,"block-banner":Xe,"block-box":de,"block-button":Ck,"block-column":Mu,"block-coupon":Qe,"block-divider":Fe,"block-footer":Je,"block-heading":ue,"block-image":ln,"block-included-list":Fi,"block-layered-images":ke,"block-product":qm,"block-product-title":ee,"block-section":ae,"block-social":Bo,"block-spacer":oe,"block-text":te,"block-video":ie,"blog-post":se,bold:yf,bolt:vf,"book-open":zf,bookmark:_f,"bookmark-square":Yf,"border-all":Bf,"border-bottom":Of,"border-left":Vf,"border-right":Xf,"border-top":Zf,"box-item-alignment":gf,"box-justify":Wf,"box-x-between":Jf,"box-x-center":Kf,"box-x-end":Uf,"box-x-start":Hf,"box-x-stretch":af,"box-y-between":df,"box-y-center":Qf,"box-y-end":Ff,"box-y-start":sf,"box-y-stretch":uf,braces:kf,breadcrumb:Tk,briefcase:Ik,bug:Dk,"bug-ant":Dk,"building-library":Pk,"building-office-2":Lk,button:Ck,"button-arrow":tj,"button-icon":Gk,calculator:Nk,calendar:Rk,"calendar-check":Rk,camera:fk,caption:jk,car:lk,"card-payment":ck,caret:Qh,cart:sk,case:zh,"case-capitalized":uk,"case-lower":kk,"case-normal":$h,"case-upper":ok,category:Ks,chart:yh,"chart-bar":tk,"chart-bar-square":Oh,"chart-line":Vh,chat:Eh,"chat-bubble-left-right":Gh,"chat-bubble-oval-left-ellipsis":Ah,check:Uh,"check-circle":Bh,checkbox:Hh,chevron:Qh,"chevron-double":Zh,"chevron-double-left":Xh,"chevron-double-right":Zh,"chevron-down":Qh,"chevron-left":Fh,"chevron-right":Jh,"chevron-up":kh,"chevron-up-down":Kh,"circle-stack":eh,"clear-marks":ah,clipboard:th,"clipboard-check":lu,"clipboard-document-list":dh,"clipboard-list":dh,clock:ih,close:xu,"close-circle":ph,cloud:Iu,"cloud-alert":qu,"cloud-arrow-up":$u,"cloud-check":rh,"cloud-download":Tu,"cloud-pause":Ou,"cloud-slash":Vu,code:Lu,"code-bracket":Lu,collapse:Gu,"collapse-all":Gu,"column-gap":Au,"column-widths":Eu,columns:Mu,company:Ru,compose:Du,contrast:Pu,cookie:eh,copied:lu,copy:Cu,"copy-style":Nu,"copy-to-page":pu,corner:hu,"count-up":fu,crop:cu,"crop-bottom":ju,"crop-left":ru,"crop-left-right":ou,"crop-right":iu,"crop-top":wp,"crop-y":xp,"cube-transparent":qp,cursor:Ep,"cursor-arrow-rays":$p,"cursor-click":$p,dashboard:zn,date:Tp,desktop:Op,detach:Vp,diagram:Xp,direction:Zp,"direction-down":kj,"direction-left":aj,"direction-right":tj,"direction-up":uj,document:Up,"document-check":Np,"document-magnifying-glass":Kp,dollar:jp,dot:lp,download:Qp,drag:np,drop:pp,duplicate:kp,duration:ep,edit:op,email:ip,enter:Vs,eraser:ys,error:vs,expand:zs,external:Ys,eye:Bs,"eye-off":Is,"face-smile":Hs,filter:Xs,finish:Zs,fire:gs,flag:Ns,folder:Ks,"folder-open":Rs,"folder-plus":fs,forward:as,"full-width":ds,gap:Qs,gem:is,gift:ss,globe:hs,grid:zn,ground:_n,hand:os,"hand-thumb-up":ts,hash:On,headquarters:Vn,heart:yn,height:vn,help:gn,"help-off":An,hexagon:Yn,home:Bn,hover:Hn,"hover-lift":Un,"hover-next-image":Pn,"hover-none":Ln,"hover-rotate":bn,"hover-zoom":Fn,"icon-after-text":Jn,"icon-at-end":Kn,"icon-before-text":kn,identification:en,image:ln,"image-off":dn,images:tn,inbox:sn,info:yi,italic:vi,key:zi,layers:rn,layout:Ii,"letter-spacing":Si,lightbulb:wi,"line-between":Li,"line-dashed":Gi,"line-dotted":Ai,"line-solid":Ei,"line-spacing":Mi,"line-style":Ri,link:Di,"link-slash":Hi,list:Fi,"list-format":Qi,"list-none":Ni,location:hi,lock:ei,logo:_c,logout:oi,loop:ti,map:ni,media:Ec,"media-layout-big-two":wc,"media-layout-inset":xc,"media-layout-side-by-side":qc,"media-layout-stacked":$c,megaphone:Tc,menu:Ic,meta:Sc,microphone:Pc,money:Lc,moon:Gc,more:Ac,"more-vertical":Nc,"move-down":kj,"move-up":uj,newspaper:se,"no-symbol":Mc,note:Rc,nudge:Dc,"nudge-x":jc,"nudge-y":lc,"numbered-list":bc,opacity:Cc,"own-text":nc,package:pc,"package-open":uc,"padding-all":fc,"padding-bottom":$t,"padding-left":rc,"padding-left-right":oc,"padding-right":cc,"padding-top":St,"padding-x":wt,"padding-y":xt,page:gt,"paint-brush":Xr,palette:Wt,"panel-left":Yt,"panel-right":Bt,"paragraph-spacing":Ut,parcel:pc,paste:th,"paste-style":Ht,pause:Xt,pen:Zt,people:Qt,percent:Nt,phone:kt,"phone-hidden":Kt,placement:et,play:lt,"plus-minus":bt,power:ct,"presentation-chart-bar":nt,print:pt,product:qm,"product-field":ht,"product-size":zm,progress:rt,quote:mt,"radio-dot":Im,radius:Sm,receipt:wm,"receipt-percent":ym,"receipt-refund":Zm,"rectangle-group":Ii,redo:Am,refresh:Tm,remove:Rm,"remove-circle":Rm,rename:op,reply:Pm,"reply-all":Dm,revert:Lm,robot:bm,rotate:Cm,scale:Jm,"scroll-point":um,"scroll-text":Up,search:em,"select-all":am,send:tm,"separator-slash":im,"separator-triangle":sm,server:yo,settings:vo,shadow:zo,"shape-ellipse":_o,"shape-rect":Yo,share:Bo,shared:Oo,"shield-check":Vo,"shield-exclamation":Xo,"sides-each":Zo,signal:go,"signal-slash":Ao,sitemap:Jo,"slide-arrows-bare":Jh,"slide-arrows-round":Ko,"slide-arrows-square":Uo,"slide-picker-bar":Ho,"slide-picker-cards":jo,"slide-picker-dots":lo,"slide-picker-numbers":Qo,"slide-picker-squares":Fo,sort:so,sparkles:fo,speaker:$r,"speaker-wave":$r,"spec-table":ro,split:mo,square:co,star:Vr,state:yr,"status-circle":vr,"status-dot":zr,sticky:Wr,"stop-circle":Yr,store:Ir,strike:Dr,styles:Xr,subscript:Zr,"success-burst":P,sun:gr,superscript:Fr,swap:Jr,swatch:Zs,table:Kr,tablet:Ur,tabs:er,tag:lr,target:Qr,team:ir,telephone:sr,template:_f,"text-color":ur,"text-lines":Se,"text-size":kr,"text-small":z,"text-value":_,texture:or,theme:Zs,ticket:Qe,title:Ns,trash:O,trigger:vf,truck:w,tv:x,type:G,tyre:A,underline:E,undo:T,upload:R,"v-align":D,verified:P,"video-off":L,"view-columns":b,wallet:C,warning:N,weight:M,wheel:Qr,widgets:h,width:f,window:j,windows:l,"words-from":m,wrap:c,wrench:n,"wrench-screwdriver":s,"zoom-in":r},outline:{"brand-facebook":ef,"brand-instagram":$k,"brand-line":rf,"brand-linkedin":mf,"brand-pinterest":cf,"brand-telegram":Sk,"brand-tiktok":wk,"brand-wechat":xk,"brand-whatsapp":qk,"brand-x":Ak,"brand-youtube":Ek},"pencil-square":{edit:mp,rename:mp},"queue-list":{"block-included-list":pi,list:pi},"rectangle-stack":{layers:Yi},solid:{"academic-cap":$j,accent:ra,account:Vj,"account-circle":Oj,add:Aj,"add-circle":xj,"add-person":gj,adjust:Ej,"align-center":Tj,"align-justify":Ij,"align-left":Dj,"align-right":Pj,"align-separate":Lj,alignment:Gj,anchor:Cj,animation:Nj,apps:Mj,"archive-box":Rj,arrow:cj,"arrow-down":fj,"arrow-left":lj,"arrow-left-end-on-rectangle":jj,"arrow-long-right":bj,"arrow-right":cj,"arrow-trending-down":nj,"arrow-trending-up":pj,"arrow-up":qe,"arrow-up-right":ve,"at-symbol":$e,attach:oj,background:Be,bag:Oe,bank:Xk,"bars-3-bottom-left":Ve,battery:ye,beaker:Ze,bell:Te,"bell-alert":ge,"bell-plus":Ye,billing:Re,"black-and-white":De,"block-badge":Pe,"block-banner":Le,"block-box":be,"block-button":Fk,"block-column":Ku,"block-coupon":Ce,"block-divider":Ne,"block-footer":Me,"block-heading":he,"block-image":mn,"block-included-list":ui,"block-layered-images":fe,"block-product":_m,"block-product-title":je,"block-section":le,"block-social":Io,"block-spacer":me,"block-text":ce,"block-video":ne,"blog-post":pe,bold:xf,bolt:qf,"book-open":$f,bookmark:re,"bookmark-square":Tf,"border-all":If,"border-bottom":Sf,"border-left":wf,"border-right":Lf,"border-top":Gf,"box-item-alignment":Af,"box-justify":Ef,"box-x-between":Mf,"box-x-center":Rf,"box-x-end":Df,"box-x-start":Pf,"box-x-stretch":lf,"box-y-between":bf,"box-y-center":Cf,"box-y-end":Nf,"box-y-start":pf,"box-y-stretch":hf,braces:ff,breadcrumb:Bk,briefcase:Ok,bug:Hk,"bug-ant":Hk,"building-library":Xk,"building-office-2":Zk,button:Fk,"button-arrow":cj,"button-icon":gk,calculator:Jk,calendar:Uk,"calendar-check":Uk,camera:ek,caption:ak,car:dk,"card-payment":ik,caret:Ch,cart:pk,case:rk,"case-capitalized":hk,"case-lower":qh,"case-normal":_h,"case-upper":mk,category:js,chart:xh,"chart-bar":Ih,"chart-bar-square":Sh,"chart-line":wh,chat:Yh,"chat-bubble-left-right":gh,"chat-bubble-oval-left-ellipsis":Wh,check:Dh,"check-circle":Rh,checkbox:Ph,chevron:Ch,"chevron-double":bh,"chevron-double-left":Lh,"chevron-double-right":bh,"chevron-down":Ch,"chevron-left":Nh,"chevron-right":Mh,"chevron-up":fh,"chevron-up-down":hh,"circle-stack":jh,"clear-marks":lh,clipboard:ch,"clipboard-check":du,"clipboard-document-list":mh,"clipboard-list":mh,clock:nh,close:vu,"close-circle":uh,cloud:yu,"cloud-alert":zu,"cloud-arrow-up":_u,"cloud-check":oh,"cloud-download":Bu,"cloud-pause":Su,"cloud-slash":wu,code:Zu,"code-bracket":Zu,collapse:gu,"collapse-all":gu,"column-gap":Wu,"column-widths":Yu,columns:Ku,company:Uu,compose:Hu,contrast:Xu,cookie:jh,copied:du,copy:Fu,"copy-style":Ju,"copy-to-page":uu,corner:ku,"count-up":eu,crop:su,"crop-bottom":au,"crop-left":tu,"crop-left-right":mu,"crop-right":nu,"crop-top":yp,"crop-y":vp,"cube-transparent":zp,cursor:Yp,"cursor-arrow-rays":_p,"cursor-click":_p,dashboard:$n,date:Bp,desktop:Sp,detach:Pp,diagram:Lp,direction:Gp,"direction-down":fj,"direction-left":lj,"direction-right":cj,"direction-up":qe,document:Dp,"document-check":Jp,"document-magnifying-glass":Rp,dollar:ap,dot:dp,download:Cp,drag:sp,drop:up,duplicate:fp,duration:$s,edit:tp,email:Ss,enter:ws,eraser:xs,error:qs,expand:As,external:Ts,eye:Ds,"eye-off":Os,"face-smile":Ps,filter:Ls,finish:Gs,fire:Cs,flag:Js,folder:js,"folder-open":Us,"folder-plus":es,forward:ls,"full-width":bs,gap:cs,gem:ns,gift:ps,globe:ks,grid:$n,ground:rs,hand:ms,"hand-thumb-up":In,hash:Sn,headquarters:wn,heart:xn,height:Gn,help:En,"help-off":Wn,hexagon:Tn,home:Rn,hover:Cn,"hover-lift":Dn,"hover-next-image":Xn,"hover-none":Zn,"hover-rotate":Qn,"hover-zoom":Nn,"icon-after-text":Mn,"icon-at-end":hn,"icon-before-text":fn,identification:jn,image:mn,"image-off":on,images:cn,inbox:pn,info:xi,italic:qi,key:$i,layers:Ti,layout:Oi,"letter-spacing":Vi,lightbulb:Xi,"line-between":Zi,"line-dashed":gi,"line-dotted":Wi,"line-solid":Ji,"line-spacing":Ki,"line-style":Ui,link:ai,"link-slash":Pi,list:ui,"list-format":Ci,"list-none":si,location:ki,lock:ji,logo:ri,logout:mi,loop:ci,map:Vc,media:Yc,"media-layout-big-two":yc,"media-layout-inset":vc,"media-layout-side-by-side":zc,"media-layout-stacked":Wc,megaphone:Bc,menu:Oc,meta:Hc,microphone:Xc,money:Zc,moon:gc,more:Fc,"more-vertical":Jc,"move-down":fj,"move-up":qe,newspaper:pe,"no-symbol":Kc,note:Uc,nudge:ec,"nudge-x":ac,"nudge-y":dc,"numbered-list":Qc,opacity:ic,"own-text":sc,package:kc,"package-open":hc,"padding-all":zt,"padding-bottom":_t,"padding-left":tc,"padding-left-right":mc,"padding-right":Ot,"padding-top":Vt,"padding-x":yt,"padding-y":vt,page:At,"paint-brush":Lr,palette:Et,"panel-left":Tt,"panel-right":It,"paragraph-spacing":Dt,parcel:kc,paste:ch,"paste-style":Pt,pause:Lt,pen:Gt,people:Ct,percent:Jt,phone:ft,"phone-hidden":Rt,placement:jt,play:dt,"plus-minus":tt,power:it,"presentation-chart-bar":st,print:ut,product:_m,"product-field":vm,"product-size":$m,progress:ot,quote:Bm,"radio-dot":Om,radius:Vm,receipt:gm,"receipt-percent":xm,"receipt-refund":Gm,"rectangle-group":Oi,redo:Wm,refresh:Km,remove:Um,"remove-circle":Um,rename:tp,reply:Xm,"reply-all":Hm,revert:dm,robot:Qm,rotate:Fm,scale:Mm,"scroll-point":hm,"scroll-text":Dp,search:jm,"select-all":lm,send:cm,"separator-slash":nm,"separator-triangle":pm,server:xo,settings:qo,shadow:$o,"shape-ellipse":rm,"shape-rect":To,share:Io,shared:So,"shield-check":wo,"shield-exclamation":Lo,"sides-each":Go,signal:Eo,"signal-slash":Wo,sitemap:Mo,"slide-arrows-bare":Mh,"slide-arrows-round":Ro,"slide-arrows-square":Do,"slide-picker-bar":Po,"slide-picker-cards":ao,"slide-picker-dots":bo,"slide-picker-numbers":Co,"slide-picker-squares":No,sort:po,sparkles:eo,speaker:_r,"speaker-wave":_r,"spec-table":oo,split:to,square:io,star:wr,state:xr,"status-circle":qr,"status-dot":Ar,sticky:Er,"stop-circle":Tr,store:Or,strike:Hr,styles:Lr,subscript:Gr,"success-burst":X,sun:Cr,superscript:Nr,swap:Mr,swatch:Gs,table:Rr,tablet:fr,tabs:jr,tag:dr,target:cr,team:nr,telephone:pr,template:re,"text-color":hr,"text-lines":Ve,"text-size":q,"text-small":$,"text-value":rr,texture:mr,theme:Gs,ticket:Ce,title:Js,trash:S,trigger:qf,truck:y,tv:v,type:g,tyre:W,underline:Y,undo:B,upload:U,"v-align":H,verified:X,"video-off":Z,"view-columns":Q,wallet:F,warning:J,weight:K,wheel:cr,widgets:k,width:e,window:a,windows:d,"words-from":t,wrap:i,wrench:u,"wrench-screwdriver":p,"zoom-in":o,"brand-facebook":jf,"brand-instagram":_k,"brand-line":of,"brand-linkedin":tf,"brand-pinterest":nf,"brand-telegram":Vk,"brand-tiktok":yk,"brand-wechat":vk,"brand-whatsapp":zk,"brand-x":Wk,"brand-youtube":Yk},"user-circle":{account:wj},"user-group":{people:Ft}}};export{ta as efficientLookNames,ca as efficientLooks};
@@ -0,0 +1 @@
1
+ var r=[9,11,12,14,16,18,20,24,30],n={body:400,control:500,heading:600,figure:700},o={fast:120,base:160},e={entrance:600,countUp:1400,loop:5e4},a={short:.6,normal:1,long:1.6},t={arrive:"cubic-bezier(0.22, 1, 0.36, 1)",loop:"linear"};function i(r,n="normal"){return Math.round(e[r]*a[n])}var c={hairline:1,strong:2,accent:4};export{c as BORDER_WIDTHS,n as FONT_WEIGHTS,o as MOTION_DURATIONS,e as PAGE_MOTION_DURATIONS,t as PAGE_MOTION_EASING,a as PAGE_MOTION_STEPS,r as TYPE_SCALE,i as pageMotionMs};
@@ -0,0 +1,2 @@
1
+ import{jsx as c}from"react/jsx-runtime";function h({size:h=18,...e}){/* @__PURE__ */
2
+ return c("svg",{width:h,height:h,viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",...e,children:/* @__PURE__ */c("path",{fillRule:"evenodd",d:"M5.25,4.5h13.5c0.77456,0.03274 1.61964,0.377 2.12132,0.87868c0.50168,0.50168 0.84594,1.34676 0.87868,2.12132v9c-0.03274,0.77456 -0.377,1.61964 -0.87868,2.12132c-0.50168,0.50168 -1.34676,0.84594 -2.12132,0.87868h-13.5c-0.77456,-0.03274 -1.61964,-0.377 -2.12132,-0.87868c-0.50168,-0.50168 -0.84594,-1.34676 -0.87868,-2.12132v-9c0.03274,-0.77456 0.377,-1.61964 0.87868,-2.12132c0.50168,-0.50168 1.34676,-0.84594 2.12132,-0.87868zM7.29289,8.29289c-0.13975,0.13975 -0.26016,0.48484 -0.29289,0.70711v6c0.03274,0.22227 0.15314,0.56735 0.29289,0.70711c0.13975,0.13975 0.48484,0.26016 0.70711,0.29289h2c0.22227,-0.03274 0.56735,-0.15314 0.70711,-0.29289c0.13975,-0.13975 0.26016,-0.48484 0.29289,-0.70711v-6c-0.03274,-0.22227 -0.15314,-0.56735 -0.29289,-0.70711c-0.13975,-0.13975 -0.48484,-0.26016 -0.70711,-0.29289h-2c-0.22227,0.03274 -0.56735,0.15314 -0.70711,0.29289zM8.5,9.5h1v5h-1zM13.29289,10.29289c-0.13975,0.13975 -0.26016,0.48484 -0.29289,0.70711v2c0.03274,0.22227 0.15314,0.56735 0.29289,0.70711c0.13975,0.13975 0.48484,0.26016 0.70711,0.29289h2c0.22227,-0.03274 0.56735,-0.15314 0.70711,-0.29289c0.13975,-0.13975 0.26016,-0.48484 0.29289,-0.70711v-2c-0.03274,-0.22227 -0.15314,-0.56735 -0.29289,-0.70711c-0.13975,-0.13975 -0.48484,-0.26016 -0.70711,-0.29289h-2c-0.22227,0.03274 -0.56735,0.15314 -0.70711,0.29289zM14.5,11.5h1v1h-1z"})})}export{h as BoxItemAlignmentSolidIcon};
@@ -0,0 +1,2 @@
1
+ import{jsx as c}from"react/jsx-runtime";function e({size:e=18,...r}){/* @__PURE__ */
2
+ return c("svg",{width:e,height:e,viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",...r,children:/* @__PURE__ */c("path",{fillRule:"evenodd",d:"M5.83333,4.875h1.66667c0.21077,0.03274 0.54543,0.14848 0.67764,0.28069c0.13221,0.13221 0.24795,0.46688 0.28069,0.67764v8.33333c-0.03274,0.21077 -0.14848,0.54543 -0.28069,0.67764c-0.13221,0.13221 -0.46688,0.24795 -0.67764,0.28069h-1.66667c-0.21077,-0.03274 -0.54543,-0.14848 -0.67764,-0.28069c-0.13221,-0.13221 -0.24795,-0.46688 -0.28069,-0.67764v-8.33333c0.03274,-0.21077 0.14848,-0.54543 0.28069,-0.67764c0.13221,-0.13221 0.46688,-0.24795 0.67764,-0.28069zM12.5,6.95833h1.66667c0.21077,0.03274 0.54543,0.14848 0.67764,0.28069c0.13221,0.13221 0.24795,0.46688 0.28069,0.67764v4.16667c-0.03274,0.21077 -0.14848,0.54543 -0.28069,0.67764c-0.13221,0.13221 -0.46688,0.24795 -0.67764,0.28069h-1.66667c-0.21077,-0.03274 -0.54543,-0.14848 -0.67764,-0.28069c-0.13221,-0.13221 -0.24795,-0.46688 -0.28069,-0.67764v-4.16667c0.03274,-0.21077 0.14848,-0.54543 0.28069,-0.67764c0.13221,-0.13221 0.46688,-0.24795 0.67764,-0.28069zM3.125,16.125c-0.41421,0 -0.75,0.33579 -0.75,0.75v-13.75c0,0.41421 0.33579,0.75 0.75,0.75c0.41421,0 0.75,-0.33579 0.75,-0.75v13.75c0,-0.41421 -0.33579,-0.75 -0.75,-0.75zM16.875,2.375c0.41421,0 0.75,0.33579 0.75,0.75v13.75c0,0.41421 -0.33579,0.75 -0.75,0.75c-0.41421,0 -0.75,-0.33579 -0.75,-0.75v-13.75c0,-0.41421 0.33579,-0.75 0.75,-0.75z"})})}export{e as BoxXBetweenMiniIcon};
@@ -0,0 +1,2 @@
1
+ import{jsx as c}from"react/jsx-runtime";function e({size:e=18,...r}){/* @__PURE__ */
2
+ return c("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",...r,children:/* @__PURE__ */c("path",{fillRule:"evenodd",d:"M5.5,6h10c0.22227,0.03274 0.56735,0.15314 0.70711,0.29289c0.13975,0.13975 0.26016,0.48484 0.29289,0.70711v2c-0.03274,0.22227 -0.15314,0.56735 -0.29289,0.70711c-0.13975,0.13975 -0.48484,0.26016 -0.70711,0.29289h-10c-0.22227,-0.03274 -0.56735,-0.15314 -0.70711,-0.29289c-0.13975,-0.13975 -0.26016,-0.48484 -0.29289,-0.70711v-2c0.03274,-0.22227 0.15314,-0.56735 0.29289,-0.70711c0.13975,-0.13975 0.48484,-0.26016 0.70711,-0.29289zM10.5,14h5c0.22227,0.03274 0.56735,0.15314 0.70711,0.29289c0.13975,0.13975 0.26016,0.48484 0.29289,0.70711v2c-0.03274,0.22227 -0.15314,0.56735 -0.29289,0.70711c-0.13975,0.13975 -0.48484,0.26016 -0.70711,0.29289h-5c-0.22227,-0.03274 -0.56735,-0.15314 -0.70711,-0.29289c-0.13975,-0.13975 -0.26016,-0.48484 -0.29289,-0.70711v-2c0.03274,-0.22227 0.15314,-0.56735 0.29289,-0.70711c0.13975,-0.13975 0.48484,-0.26016 0.70711,-0.29289zM18.75,3c0.41421,0 0.75,0.33579 0.75,0.75v16.5c0,0.41421 -0.33579,0.75 -0.75,0.75c-0.41421,0 -0.75,-0.33579 -0.75,-0.75v-16.5c0,-0.41421 0.33579,-0.75 0.75,-0.75z"})})}export{e as BoxXEndSolidIcon};
@@ -0,0 +1,2 @@
1
+ import{jsx as c}from"react/jsx-runtime";function e({size:e=18,...r}){/* @__PURE__ */
2
+ return c("svg",{width:e,height:e,viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",...r,children:/* @__PURE__ */c("path",{fillRule:"evenodd",d:"M5.83333,4.875h8.33333c0.21077,0.03274 0.54543,0.14848 0.67764,0.28069c0.13221,0.13221 0.24795,0.46688 0.28069,0.67764v1.66667c-0.03274,0.21077 -0.14848,0.54543 -0.28069,0.67764c-0.13221,0.13221 -0.46688,0.24795 -0.67764,0.28069h-8.33333c-0.21077,-0.03274 -0.54543,-0.14848 -0.67764,-0.28069c-0.13221,-0.13221 -0.24795,-0.46688 -0.28069,-0.67764v-1.66667c0.03274,-0.21077 0.14848,-0.54543 0.28069,-0.67764c0.13221,-0.13221 0.46688,-0.24795 0.67764,-0.28069zM5.83333,11.54167h8.33333c0.21077,0.03274 0.54543,0.14848 0.67764,0.28069c0.13221,0.13221 0.24795,0.46688 0.28069,0.67764v1.66667c-0.03274,0.21077 -0.14848,0.54543 -0.28069,0.67764c-0.13221,0.13221 -0.46688,0.24795 -0.67764,0.28069h-8.33333c-0.21077,-0.03274 -0.54543,-0.14848 -0.67764,-0.28069c-0.13221,-0.13221 -0.24795,-0.46688 -0.28069,-0.67764v-1.66667c0.03274,-0.21077 0.14848,-0.54543 0.28069,-0.67764c0.13221,-0.13221 0.46688,-0.24795 0.67764,-0.28069zM3.125,16.125c-0.41421,0 -0.75,0.33579 -0.75,0.75v-13.75c0,0.41421 0.33579,0.75 0.75,0.75c0.41421,0 0.75,-0.33579 0.75,-0.75v13.75c0,-0.41421 -0.33579,-0.75 -0.75,-0.75zM16.875,2.375c0.41421,0 0.75,0.33579 0.75,0.75v13.75c0,0.41421 -0.33579,0.75 -0.75,0.75c-0.41421,0 -0.75,-0.33579 -0.75,-0.75v-13.75c0,-0.41421 0.33579,-0.75 0.75,-0.75z"})})}export{e as BoxXStretchMiniIcon};