@aini_ai_cody/icons 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (589) hide show
  1. package/.devcontainer/Dockerfile +17 -0
  2. package/.devcontainer/devcontainer.json +18 -0
  3. package/.fantasticonrc.js +43 -0
  4. package/.github/ISSUE_TEMPLATE/bug_report.md +31 -0
  5. package/.github/ISSUE_TEMPLATE/config.yml +8 -0
  6. package/.github/ISSUE_TEMPLATE/icon-request.md +20 -0
  7. package/.github/workflows/build.yml +32 -0
  8. package/.github/workflows/codeql-analysis.yml +71 -0
  9. package/.github/workflows/gh-pages.yml +61 -0
  10. package/.github/workflows/release.yml +65 -0
  11. package/.husky/pre-commit +1 -0
  12. package/.vscode/settings.json +6 -0
  13. package/.vscode/tasks.json +19 -0
  14. package/README.md +57 -0
  15. package/_iconCloud/categories.csv +517 -0
  16. package/_iconCloud/categories.transforms.json +92 -0
  17. package/_iconCloud/categories.variables.json +48 -0
  18. package/_iconCloud/descriptions.csv +517 -0
  19. package/_iconCloud/descriptions.transforms.json +83 -0
  20. package/_iconCloud/descriptions.variables.json +47 -0
  21. package/_iconCloud/keywords.csv +517 -0
  22. package/_iconCloud/keywords.transforms.json +92 -0
  23. package/_iconCloud/keywords.variables.json +48 -0
  24. package/_iconCloud/manifest.json +57 -0
  25. package/_iconCloud/manifest.transforms.json +368 -0
  26. package/_iconCloud/manifest.variables.json +149 -0
  27. package/_iconCloud/metaphors.csv +517 -0
  28. package/_iconCloud/metaphors.transforms.json +92 -0
  29. package/_iconCloud/metaphors.variables.json +48 -0
  30. package/build/pipeline.yml +36 -0
  31. package/command.txt +0 -0
  32. package/index.js +1 -0
  33. package/package.json +40 -0
  34. package/publish.sh +133 -0
  35. package/scripts/check-metadata.js +149 -0
  36. package/scripts/embed-metadata.js +45 -0
  37. package/scripts/export-to-csv.js +60 -0
  38. package/scripts/export-to-ts.js +63 -0
  39. package/scripts/merge-cody.js +92 -0
  40. package/scripts/reset.js +10 -0
  41. package/scripts/svg-sprite.js +189 -0
  42. package/scripts/version-bump.js +166 -0
  43. package/src/cody_icons/cody-new.svg +1 -0
  44. package/src/cody_icons/cody-sample.svg +10 -0
  45. package/src/cody_icons/cody-test.svg +1 -0
  46. package/src/icons/account.svg +1 -0
  47. package/src/icons/activate-breakpoints.svg +1 -0
  48. package/src/icons/add-small.svg +1 -0
  49. package/src/icons/add.svg +1 -0
  50. package/src/icons/agent.svg +1 -0
  51. package/src/icons/archive.svg +1 -0
  52. package/src/icons/arrow-both.svg +1 -0
  53. package/src/icons/arrow-circle-down.svg +1 -0
  54. package/src/icons/arrow-circle-left.svg +1 -0
  55. package/src/icons/arrow-circle-right.svg +1 -0
  56. package/src/icons/arrow-circle-up.svg +1 -0
  57. package/src/icons/arrow-down.svg +1 -0
  58. package/src/icons/arrow-left.svg +1 -0
  59. package/src/icons/arrow-right.svg +1 -0
  60. package/src/icons/arrow-small-down.svg +1 -0
  61. package/src/icons/arrow-small-left.svg +1 -0
  62. package/src/icons/arrow-small-right.svg +1 -0
  63. package/src/icons/arrow-small-up.svg +1 -0
  64. package/src/icons/arrow-swap.svg +1 -0
  65. package/src/icons/arrow-up.svg +1 -0
  66. package/src/icons/attach.svg +1 -0
  67. package/src/icons/azure-devops.svg +1 -0
  68. package/src/icons/azure.svg +1 -0
  69. package/src/icons/beaker-stop.svg +1 -0
  70. package/src/icons/beaker.svg +1 -0
  71. package/src/icons/bell-dot.svg +1 -0
  72. package/src/icons/bell-slash-dot.svg +1 -0
  73. package/src/icons/bell-slash.svg +1 -0
  74. package/src/icons/bell.svg +1 -0
  75. package/src/icons/blank.svg +1 -0
  76. package/src/icons/bold.svg +1 -0
  77. package/src/icons/book.svg +1 -0
  78. package/src/icons/bookmark.svg +1 -0
  79. package/src/icons/bracket-dot.svg +1 -0
  80. package/src/icons/bracket-error.svg +1 -0
  81. package/src/icons/briefcase.svg +1 -0
  82. package/src/icons/broadcast.svg +1 -0
  83. package/src/icons/browser.svg +1 -0
  84. package/src/icons/bug.svg +1 -0
  85. package/src/icons/build.svg +1 -0
  86. package/src/icons/calendar.svg +1 -0
  87. package/src/icons/call-incoming.svg +1 -0
  88. package/src/icons/call-outgoing.svg +1 -0
  89. package/src/icons/case-sensitive.svg +1 -0
  90. package/src/icons/chat-sparkle-error.svg +1 -0
  91. package/src/icons/chat-sparkle-warning.svg +1 -0
  92. package/src/icons/chat-sparkle.svg +1 -0
  93. package/src/icons/check-all.svg +1 -0
  94. package/src/icons/check.svg +1 -0
  95. package/src/icons/checklist.svg +1 -0
  96. package/src/icons/chevron-down.svg +1 -0
  97. package/src/icons/chevron-left.svg +1 -0
  98. package/src/icons/chevron-right.svg +1 -0
  99. package/src/icons/chevron-up.svg +1 -0
  100. package/src/icons/chip.svg +1 -0
  101. package/src/icons/chrome-close.svg +1 -0
  102. package/src/icons/chrome-maximize.svg +1 -0
  103. package/src/icons/chrome-minimize.svg +1 -0
  104. package/src/icons/chrome-restore.svg +1 -0
  105. package/src/icons/circle-filled.svg +1 -0
  106. package/src/icons/circle-large-filled.svg +1 -0
  107. package/src/icons/circle-large.svg +1 -0
  108. package/src/icons/circle-slash.svg +1 -0
  109. package/src/icons/circle-small-filled.svg +1 -0
  110. package/src/icons/circle-small.svg +1 -0
  111. package/src/icons/circle.svg +1 -0
  112. package/src/icons/circuit-board.svg +1 -0
  113. package/src/icons/clear-all.svg +1 -0
  114. package/src/icons/clippy.svg +1 -0
  115. package/src/icons/clockface.svg +1 -0
  116. package/src/icons/close-all.svg +1 -0
  117. package/src/icons/close.svg +1 -0
  118. package/src/icons/cloud-download.svg +1 -0
  119. package/src/icons/cloud-small.svg +1 -0
  120. package/src/icons/cloud-upload.svg +1 -0
  121. package/src/icons/cloud.svg +1 -0
  122. package/src/icons/code-oss.svg +1 -0
  123. package/src/icons/code-review.svg +1 -0
  124. package/src/icons/code.svg +1 -0
  125. package/src/icons/cody-sample.svg +1 -0
  126. package/src/icons/coffee.svg +1 -0
  127. package/src/icons/collapse-all.svg +1 -0
  128. package/src/icons/collection-small.svg +1 -0
  129. package/src/icons/collection.svg +1 -0
  130. package/src/icons/color-mode.svg +1 -0
  131. package/src/icons/combine.svg +1 -0
  132. package/src/icons/comment-discussion-quote.svg +1 -0
  133. package/src/icons/comment-discussion-sparkle.svg +1 -0
  134. package/src/icons/comment-discussion.svg +1 -0
  135. package/src/icons/comment-draft.svg +1 -0
  136. package/src/icons/comment-unresolved.svg +1 -0
  137. package/src/icons/comment.svg +1 -0
  138. package/src/icons/compass-active.svg +1 -0
  139. package/src/icons/compass-dot.svg +1 -0
  140. package/src/icons/compass.svg +1 -0
  141. package/src/icons/copilot-blocked.svg +1 -0
  142. package/src/icons/copilot-error.svg +1 -0
  143. package/src/icons/copilot-in-progress.svg +1 -0
  144. package/src/icons/copilot-large.svg +1 -0
  145. package/src/icons/copilot-not-connected.svg +1 -0
  146. package/src/icons/copilot-snooze.svg +1 -0
  147. package/src/icons/copilot-success.svg +1 -0
  148. package/src/icons/copilot-unavailable.svg +1 -0
  149. package/src/icons/copilot-warning-large.svg +1 -0
  150. package/src/icons/copilot-warning.svg +1 -0
  151. package/src/icons/copilot.svg +1 -0
  152. package/src/icons/copy.svg +1 -0
  153. package/src/icons/coverage.svg +1 -0
  154. package/src/icons/credit-card.svg +1 -0
  155. package/src/icons/cursor.svg +1 -0
  156. package/src/icons/dash.svg +1 -0
  157. package/src/icons/dashboard.svg +1 -0
  158. package/src/icons/database.svg +1 -0
  159. package/src/icons/debug-all.svg +1 -0
  160. package/src/icons/debug-alt-small.svg +1 -0
  161. package/src/icons/debug-alt.svg +1 -0
  162. package/src/icons/debug-breakpoint-conditional-unverified.svg +1 -0
  163. package/src/icons/debug-breakpoint-conditional.svg +1 -0
  164. package/src/icons/debug-breakpoint-data-unverified.svg +1 -0
  165. package/src/icons/debug-breakpoint-data.svg +1 -0
  166. package/src/icons/debug-breakpoint-function-unverified.svg +1 -0
  167. package/src/icons/debug-breakpoint-function.svg +1 -0
  168. package/src/icons/debug-breakpoint-log-unverified.svg +1 -0
  169. package/src/icons/debug-breakpoint-log.svg +1 -0
  170. package/src/icons/debug-breakpoint-unsupported.svg +1 -0
  171. package/src/icons/debug-connected.svg +1 -0
  172. package/src/icons/debug-console.svg +1 -0
  173. package/src/icons/debug-continue-small.svg +1 -0
  174. package/src/icons/debug-continue.svg +1 -0
  175. package/src/icons/debug-coverage.svg +1 -0
  176. package/src/icons/debug-disconnect.svg +1 -0
  177. package/src/icons/debug-line-by-line.svg +1 -0
  178. package/src/icons/debug-pause.svg +1 -0
  179. package/src/icons/debug-rerun.svg +1 -0
  180. package/src/icons/debug-restart-frame.svg +1 -0
  181. package/src/icons/debug-restart.svg +1 -0
  182. package/src/icons/debug-reverse-continue.svg +1 -0
  183. package/src/icons/debug-stackframe-active.svg +1 -0
  184. package/src/icons/debug-stackframe.svg +1 -0
  185. package/src/icons/debug-start.svg +1 -0
  186. package/src/icons/debug-step-back.svg +1 -0
  187. package/src/icons/debug-step-into.svg +1 -0
  188. package/src/icons/debug-step-out.svg +1 -0
  189. package/src/icons/debug-step-over.svg +1 -0
  190. package/src/icons/debug-stop.svg +1 -0
  191. package/src/icons/debug.svg +1 -0
  192. package/src/icons/desktop-download.svg +1 -0
  193. package/src/icons/device-camera-video.svg +1 -0
  194. package/src/icons/device-camera.svg +1 -0
  195. package/src/icons/device-mobile.svg +1 -0
  196. package/src/icons/diff-added.svg +1 -0
  197. package/src/icons/diff-ignored.svg +1 -0
  198. package/src/icons/diff-modified.svg +1 -0
  199. package/src/icons/diff-multiple.svg +1 -0
  200. package/src/icons/diff-removed.svg +1 -0
  201. package/src/icons/diff-renamed.svg +1 -0
  202. package/src/icons/diff-single.svg +1 -0
  203. package/src/icons/diff.svg +1 -0
  204. package/src/icons/discard.svg +1 -0
  205. package/src/icons/download.svg +1 -0
  206. package/src/icons/edit-code.svg +1 -0
  207. package/src/icons/edit-session.svg +1 -0
  208. package/src/icons/edit-sparkle.svg +1 -0
  209. package/src/icons/edit.svg +1 -0
  210. package/src/icons/editor-layout.svg +1 -0
  211. package/src/icons/ellipsis.svg +1 -0
  212. package/src/icons/empty-window.svg +1 -0
  213. package/src/icons/eraser.svg +1 -0
  214. package/src/icons/error-small.svg +1 -0
  215. package/src/icons/error.svg +1 -0
  216. package/src/icons/exclude.svg +1 -0
  217. package/src/icons/expand-all.svg +1 -0
  218. package/src/icons/export.svg +1 -0
  219. package/src/icons/extensions-large.svg +1 -0
  220. package/src/icons/extensions.svg +1 -0
  221. package/src/icons/eye-closed.svg +1 -0
  222. package/src/icons/eye.svg +1 -0
  223. package/src/icons/feedback.svg +1 -0
  224. package/src/icons/file-binary.svg +1 -0
  225. package/src/icons/file-code.svg +1 -0
  226. package/src/icons/file-media.svg +1 -0
  227. package/src/icons/file-pdf.svg +1 -0
  228. package/src/icons/file-submodule.svg +1 -0
  229. package/src/icons/file-symlink-directory.svg +1 -0
  230. package/src/icons/file-symlink-file.svg +1 -0
  231. package/src/icons/file-text.svg +1 -0
  232. package/src/icons/file-zip.svg +1 -0
  233. package/src/icons/file.svg +1 -0
  234. package/src/icons/files.svg +1 -0
  235. package/src/icons/filter-filled.svg +1 -0
  236. package/src/icons/filter.svg +1 -0
  237. package/src/icons/flag.svg +1 -0
  238. package/src/icons/flame.svg +1 -0
  239. package/src/icons/fold-down.svg +1 -0
  240. package/src/icons/fold-up.svg +1 -0
  241. package/src/icons/fold.svg +1 -0
  242. package/src/icons/folder-active.svg +1 -0
  243. package/src/icons/folder-library.svg +1 -0
  244. package/src/icons/folder-opened.svg +1 -0
  245. package/src/icons/folder.svg +1 -0
  246. package/src/icons/forward.svg +1 -0
  247. package/src/icons/game.svg +1 -0
  248. package/src/icons/gear.svg +1 -0
  249. package/src/icons/gift.svg +1 -0
  250. package/src/icons/gist-secret.svg +1 -0
  251. package/src/icons/gist.svg +1 -0
  252. package/src/icons/git-branch-changes.svg +1 -0
  253. package/src/icons/git-branch-conflicts.svg +1 -0
  254. package/src/icons/git-branch-staged-changes.svg +1 -0
  255. package/src/icons/git-branch.svg +1 -0
  256. package/src/icons/git-commit.svg +1 -0
  257. package/src/icons/git-compare.svg +1 -0
  258. package/src/icons/git-fetch.svg +1 -0
  259. package/src/icons/git-merge.svg +1 -0
  260. package/src/icons/git-pull-request-closed.svg +1 -0
  261. package/src/icons/git-pull-request-create.svg +1 -0
  262. package/src/icons/git-pull-request-done.svg +1 -0
  263. package/src/icons/git-pull-request-draft.svg +1 -0
  264. package/src/icons/git-pull-request-go-to-changes.svg +1 -0
  265. package/src/icons/git-pull-request-new-changes.svg +1 -0
  266. package/src/icons/git-pull-request.svg +1 -0
  267. package/src/icons/git-stash-apply.svg +1 -0
  268. package/src/icons/git-stash-pop.svg +1 -0
  269. package/src/icons/git-stash.svg +1 -0
  270. package/src/icons/github-action.svg +1 -0
  271. package/src/icons/github-alt.svg +1 -0
  272. package/src/icons/github-inverted.svg +1 -0
  273. package/src/icons/github-project.svg +1 -0
  274. package/src/icons/github.svg +1 -0
  275. package/src/icons/globe.svg +1 -0
  276. package/src/icons/go-to-editing-session.svg +1 -0
  277. package/src/icons/go-to-file.svg +1 -0
  278. package/src/icons/go-to-search.svg +1 -0
  279. package/src/icons/grabber.svg +1 -0
  280. package/src/icons/graph-left.svg +1 -0
  281. package/src/icons/graph-line.svg +1 -0
  282. package/src/icons/graph-scatter.svg +1 -0
  283. package/src/icons/graph.svg +1 -0
  284. package/src/icons/gripper.svg +1 -0
  285. package/src/icons/group-by-ref-type.svg +1 -0
  286. package/src/icons/heart-filled.svg +1 -0
  287. package/src/icons/heart.svg +1 -0
  288. package/src/icons/history.svg +1 -0
  289. package/src/icons/home.svg +1 -0
  290. package/src/icons/horizontal-rule.svg +1 -0
  291. package/src/icons/hubot.svg +1 -0
  292. package/src/icons/inbox.svg +1 -0
  293. package/src/icons/indent.svg +1 -0
  294. package/src/icons/index-zero.svg +1 -0
  295. package/src/icons/info.svg +1 -0
  296. package/src/icons/insert.svg +1 -0
  297. package/src/icons/inspect.svg +1 -0
  298. package/src/icons/issue-draft.svg +1 -0
  299. package/src/icons/issue-reopened.svg +1 -0
  300. package/src/icons/issues.svg +1 -0
  301. package/src/icons/italic.svg +1 -0
  302. package/src/icons/jersey.svg +1 -0
  303. package/src/icons/json.svg +1 -0
  304. package/src/icons/kebab-vertical.svg +1 -0
  305. package/src/icons/key.svg +1 -0
  306. package/src/icons/keyboard-tab-above.svg +1 -0
  307. package/src/icons/keyboard-tab-below.svg +1 -0
  308. package/src/icons/keyboard-tab.svg +1 -0
  309. package/src/icons/law.svg +1 -0
  310. package/src/icons/layers-active.svg +1 -0
  311. package/src/icons/layers-dot.svg +1 -0
  312. package/src/icons/layers.svg +1 -0
  313. package/src/icons/layout-activitybar-left.svg +1 -0
  314. package/src/icons/layout-activitybar-right.svg +1 -0
  315. package/src/icons/layout-centered.svg +1 -0
  316. package/src/icons/layout-menubar.svg +1 -0
  317. package/src/icons/layout-panel-center.svg +1 -0
  318. package/src/icons/layout-panel-dock.svg +1 -0
  319. package/src/icons/layout-panel-justify.svg +1 -0
  320. package/src/icons/layout-panel-left.svg +1 -0
  321. package/src/icons/layout-panel-off.svg +1 -0
  322. package/src/icons/layout-panel-right.svg +1 -0
  323. package/src/icons/layout-panel.svg +1 -0
  324. package/src/icons/layout-sidebar-left-dock.svg +1 -0
  325. package/src/icons/layout-sidebar-left-off.svg +1 -0
  326. package/src/icons/layout-sidebar-left.svg +1 -0
  327. package/src/icons/layout-sidebar-right-dock.svg +1 -0
  328. package/src/icons/layout-sidebar-right-off.svg +1 -0
  329. package/src/icons/layout-sidebar-right.svg +1 -0
  330. package/src/icons/layout-statusbar.svg +1 -0
  331. package/src/icons/layout.svg +1 -0
  332. package/src/icons/library.svg +1 -0
  333. package/src/icons/lightbulb-autofix.svg +1 -0
  334. package/src/icons/lightbulb-empty.svg +1 -0
  335. package/src/icons/lightbulb-sparkle.svg +1 -0
  336. package/src/icons/lightbulb.svg +1 -0
  337. package/src/icons/link-external.svg +1 -0
  338. package/src/icons/link.svg +1 -0
  339. package/src/icons/list-filter.svg +1 -0
  340. package/src/icons/list-flat.svg +1 -0
  341. package/src/icons/list-ordered.svg +1 -0
  342. package/src/icons/list-selection.svg +1 -0
  343. package/src/icons/list-tree.svg +1 -0
  344. package/src/icons/list-unordered.svg +1 -0
  345. package/src/icons/live-share.svg +1 -0
  346. package/src/icons/loading.svg +1 -0
  347. package/src/icons/location.svg +1 -0
  348. package/src/icons/lock-small.svg +1 -0
  349. package/src/icons/lock.svg +1 -0
  350. package/src/icons/magnet.svg +1 -0
  351. package/src/icons/mail-read.svg +1 -0
  352. package/src/icons/mail.svg +1 -0
  353. package/src/icons/map-filled.svg +1 -0
  354. package/src/icons/map-vertical-filled.svg +1 -0
  355. package/src/icons/map-vertical.svg +1 -0
  356. package/src/icons/map.svg +1 -0
  357. package/src/icons/markdown.svg +1 -0
  358. package/src/icons/mcp.svg +1 -0
  359. package/src/icons/megaphone.svg +1 -0
  360. package/src/icons/mention.svg +1 -0
  361. package/src/icons/menu.svg +1 -0
  362. package/src/icons/merge-into.svg +1 -0
  363. package/src/icons/merge.svg +1 -0
  364. package/src/icons/mic-filled.svg +1 -0
  365. package/src/icons/mic.svg +1 -0
  366. package/src/icons/milestone.svg +1 -0
  367. package/src/icons/mirror.svg +1 -0
  368. package/src/icons/mortar-board.svg +1 -0
  369. package/src/icons/move.svg +1 -0
  370. package/src/icons/multiple-windows.svg +1 -0
  371. package/src/icons/music.svg +1 -0
  372. package/src/icons/mute.svg +1 -0
  373. package/src/icons/new-collection.svg +1 -0
  374. package/src/icons/new-file.svg +1 -0
  375. package/src/icons/new-folder.svg +1 -0
  376. package/src/icons/newline.svg +1 -0
  377. package/src/icons/no-newline.svg +1 -0
  378. package/src/icons/note.svg +1 -0
  379. package/src/icons/notebook-template.svg +1 -0
  380. package/src/icons/notebook.svg +1 -0
  381. package/src/icons/octoface.svg +1 -0
  382. package/src/icons/open-in-product.svg +1 -0
  383. package/src/icons/open-preview.svg +1 -0
  384. package/src/icons/organization.svg +1 -0
  385. package/src/icons/output.svg +1 -0
  386. package/src/icons/package.svg +1 -0
  387. package/src/icons/paintcan.svg +1 -0
  388. package/src/icons/pass-filled.svg +1 -0
  389. package/src/icons/pass.svg +1 -0
  390. package/src/icons/percentage.svg +1 -0
  391. package/src/icons/person-add.svg +1 -0
  392. package/src/icons/person.svg +1 -0
  393. package/src/icons/piano.svg +1 -0
  394. package/src/icons/pie-chart.svg +1 -0
  395. package/src/icons/pin.svg +1 -0
  396. package/src/icons/pinned-dirty.svg +1 -0
  397. package/src/icons/pinned.svg +1 -0
  398. package/src/icons/play-circle.svg +1 -0
  399. package/src/icons/play.svg +1 -0
  400. package/src/icons/plug.svg +1 -0
  401. package/src/icons/preserve-case.svg +1 -0
  402. package/src/icons/preview.svg +1 -0
  403. package/src/icons/primitive-square.svg +1 -0
  404. package/src/icons/project.svg +1 -0
  405. package/src/icons/pulse.svg +1 -0
  406. package/src/icons/python.svg +1 -0
  407. package/src/icons/question.svg +1 -0
  408. package/src/icons/quote.svg +1 -0
  409. package/src/icons/quotes.svg +1 -0
  410. package/src/icons/radio-tower.svg +1 -0
  411. package/src/icons/reactions.svg +1 -0
  412. package/src/icons/record-keys.svg +1 -0
  413. package/src/icons/record-small.svg +1 -0
  414. package/src/icons/record.svg +1 -0
  415. package/src/icons/redo.svg +1 -0
  416. package/src/icons/references.svg +1 -0
  417. package/src/icons/refresh.svg +1 -0
  418. package/src/icons/regex.svg +1 -0
  419. package/src/icons/remote-explorer.svg +1 -0
  420. package/src/icons/remote.svg +1 -0
  421. package/src/icons/remove-small.svg +1 -0
  422. package/src/icons/remove.svg +1 -0
  423. package/src/icons/rename.svg +1 -0
  424. package/src/icons/replace-all.svg +1 -0
  425. package/src/icons/replace.svg +1 -0
  426. package/src/icons/reply.svg +1 -0
  427. package/src/icons/repo-clone.svg +1 -0
  428. package/src/icons/repo-fetch.svg +1 -0
  429. package/src/icons/repo-force-push.svg +1 -0
  430. package/src/icons/repo-forked.svg +1 -0
  431. package/src/icons/repo-pinned.svg +1 -0
  432. package/src/icons/repo-pull.svg +1 -0
  433. package/src/icons/repo-push.svg +1 -0
  434. package/src/icons/repo-selected.svg +1 -0
  435. package/src/icons/repo.svg +1 -0
  436. package/src/icons/report.svg +1 -0
  437. package/src/icons/request-changes.svg +1 -0
  438. package/src/icons/robot.svg +1 -0
  439. package/src/icons/rocket.svg +1 -0
  440. package/src/icons/root-folder-opened.svg +1 -0
  441. package/src/icons/root-folder.svg +1 -0
  442. package/src/icons/rss.svg +1 -0
  443. package/src/icons/ruby.svg +1 -0
  444. package/src/icons/run-above.svg +1 -0
  445. package/src/icons/run-all-coverage.svg +1 -0
  446. package/src/icons/run-all.svg +1 -0
  447. package/src/icons/run-below.svg +1 -0
  448. package/src/icons/run-coverage.svg +1 -0
  449. package/src/icons/run-errors.svg +1 -0
  450. package/src/icons/run-with-deps.svg +1 -0
  451. package/src/icons/save-all.svg +1 -0
  452. package/src/icons/save-as.svg +1 -0
  453. package/src/icons/save.svg +1 -0
  454. package/src/icons/screen-full.svg +1 -0
  455. package/src/icons/screen-normal.svg +1 -0
  456. package/src/icons/search-fuzzy.svg +1 -0
  457. package/src/icons/search-large.svg +1 -0
  458. package/src/icons/search-sparkle.svg +1 -0
  459. package/src/icons/search-stop.svg +1 -0
  460. package/src/icons/search.svg +1 -0
  461. package/src/icons/send-to-remote-agent.svg +1 -0
  462. package/src/icons/send.svg +1 -0
  463. package/src/icons/server-environment.svg +1 -0
  464. package/src/icons/server-process.svg +1 -0
  465. package/src/icons/server.svg +1 -0
  466. package/src/icons/session-in-progress.svg +1 -0
  467. package/src/icons/settings-gear.svg +1 -0
  468. package/src/icons/settings.svg +1 -0
  469. package/src/icons/share.svg +1 -0
  470. package/src/icons/shield.svg +1 -0
  471. package/src/icons/sign-in.svg +1 -0
  472. package/src/icons/sign-out.svg +1 -0
  473. package/src/icons/skip.svg +1 -0
  474. package/src/icons/smiley.svg +1 -0
  475. package/src/icons/snake.svg +1 -0
  476. package/src/icons/sort-precedence.svg +1 -0
  477. package/src/icons/source-control.svg +1 -0
  478. package/src/icons/sparkle-filled.svg +1 -0
  479. package/src/icons/sparkle.svg +1 -0
  480. package/src/icons/split-horizontal.svg +1 -0
  481. package/src/icons/split-vertical.svg +1 -0
  482. package/src/icons/squirrel.svg +1 -0
  483. package/src/icons/star-empty.svg +1 -0
  484. package/src/icons/star-full.svg +1 -0
  485. package/src/icons/star-half.svg +1 -0
  486. package/src/icons/stop-circle.svg +1 -0
  487. package/src/icons/strikethrough.svg +1 -0
  488. package/src/icons/surround-with.svg +1 -0
  489. package/src/icons/symbol-array.svg +1 -0
  490. package/src/icons/symbol-boolean.svg +1 -0
  491. package/src/icons/symbol-class.svg +1 -0
  492. package/src/icons/symbol-color.svg +1 -0
  493. package/src/icons/symbol-constant.svg +1 -0
  494. package/src/icons/symbol-enum-member.svg +1 -0
  495. package/src/icons/symbol-enum.svg +1 -0
  496. package/src/icons/symbol-event.svg +1 -0
  497. package/src/icons/symbol-field.svg +1 -0
  498. package/src/icons/symbol-file.svg +1 -0
  499. package/src/icons/symbol-interface.svg +1 -0
  500. package/src/icons/symbol-key.svg +1 -0
  501. package/src/icons/symbol-keyword.svg +1 -0
  502. package/src/icons/symbol-method-arrow.svg +1 -0
  503. package/src/icons/symbol-method.svg +1 -0
  504. package/src/icons/symbol-misc.svg +1 -0
  505. package/src/icons/symbol-namespace.svg +1 -0
  506. package/src/icons/symbol-numeric.svg +1 -0
  507. package/src/icons/symbol-operator.svg +1 -0
  508. package/src/icons/symbol-parameter.svg +1 -0
  509. package/src/icons/symbol-property.svg +1 -0
  510. package/src/icons/symbol-ruler.svg +1 -0
  511. package/src/icons/symbol-snippet.svg +1 -0
  512. package/src/icons/symbol-string.svg +1 -0
  513. package/src/icons/symbol-structure.svg +1 -0
  514. package/src/icons/symbol-variable.svg +1 -0
  515. package/src/icons/sync-ignored.svg +1 -0
  516. package/src/icons/sync.svg +1 -0
  517. package/src/icons/table.svg +1 -0
  518. package/src/icons/tag.svg +1 -0
  519. package/src/icons/target.svg +1 -0
  520. package/src/icons/tasklist.svg +1 -0
  521. package/src/icons/telescope.svg +1 -0
  522. package/src/icons/terminal-bash.svg +1 -0
  523. package/src/icons/terminal-cmd.svg +1 -0
  524. package/src/icons/terminal-debian.svg +1 -0
  525. package/src/icons/terminal-git-bash.svg +1 -0
  526. package/src/icons/terminal-linux.svg +1 -0
  527. package/src/icons/terminal-powershell.svg +1 -0
  528. package/src/icons/terminal-tmux.svg +1 -0
  529. package/src/icons/terminal-ubuntu.svg +1 -0
  530. package/src/icons/terminal.svg +1 -0
  531. package/src/icons/text-size.svg +1 -0
  532. package/src/icons/thinking.svg +1 -0
  533. package/src/icons/three-bars.svg +1 -0
  534. package/src/icons/thumbsdown-filled.svg +1 -0
  535. package/src/icons/thumbsdown.svg +1 -0
  536. package/src/icons/thumbsup-filled.svg +1 -0
  537. package/src/icons/thumbsup.svg +1 -0
  538. package/src/icons/tools.svg +1 -0
  539. package/src/icons/trash.svg +1 -0
  540. package/src/icons/triangle-down.svg +1 -0
  541. package/src/icons/triangle-left.svg +1 -0
  542. package/src/icons/triangle-right.svg +1 -0
  543. package/src/icons/triangle-up.svg +1 -0
  544. package/src/icons/twitter.svg +1 -0
  545. package/src/icons/type-hierarchy-sub.svg +1 -0
  546. package/src/icons/type-hierarchy-super.svg +1 -0
  547. package/src/icons/type-hierarchy.svg +1 -0
  548. package/src/icons/unarchive.svg +1 -0
  549. package/src/icons/unfold.svg +1 -0
  550. package/src/icons/ungroup-by-ref-type.svg +1 -0
  551. package/src/icons/unlock.svg +1 -0
  552. package/src/icons/unmute.svg +1 -0
  553. package/src/icons/unverified.svg +1 -0
  554. package/src/icons/variable-group.svg +1 -0
  555. package/src/icons/verified-filled.svg +1 -0
  556. package/src/icons/verified.svg +1 -0
  557. package/src/icons/versions.svg +1 -0
  558. package/src/icons/vm-active.svg +1 -0
  559. package/src/icons/vm-connect.svg +1 -0
  560. package/src/icons/vm-outline.svg +1 -0
  561. package/src/icons/vm-pending.svg +1 -0
  562. package/src/icons/vm-running.svg +1 -0
  563. package/src/icons/vm-small.svg +1 -0
  564. package/src/icons/vm.svg +1 -0
  565. package/src/icons/vr.svg +1 -0
  566. package/src/icons/vscode-insiders.svg +1 -0
  567. package/src/icons/vscode.svg +1 -0
  568. package/src/icons/wand.svg +1 -0
  569. package/src/icons/warning.svg +1 -0
  570. package/src/icons/watch.svg +1 -0
  571. package/src/icons/whitespace.svg +1 -0
  572. package/src/icons/whole-word.svg +1 -0
  573. package/src/icons/window-active.svg +1 -0
  574. package/src/icons/window.svg +1 -0
  575. package/src/icons/word-wrap.svg +1 -0
  576. package/src/icons/workspace-trusted.svg +1 -0
  577. package/src/icons/workspace-unknown.svg +1 -0
  578. package/src/icons/workspace-untrusted.svg +1 -0
  579. package/src/icons/worktree-small.svg +1 -0
  580. package/src/icons/worktree.svg +1 -0
  581. package/src/icons/zoom-in.svg +1 -0
  582. package/src/icons/zoom-out.svg +1 -0
  583. package/src/template/cody.json +28 -0
  584. package/src/template/cody_mapping.json +5 -0
  585. package/src/template/mapping.json +1663 -0
  586. package/src/template/metadata.json +5759 -0
  587. package/src/template/preview.hbs +833 -0
  588. package/src/template/styles.hbs +57 -0
  589. package/svgo.config.js +21 -0
@@ -0,0 +1,833 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <title>{{ name }} | The icon font for Cody </title>
7
+
8
+ <style type="text/css">
9
+ html {
10
+ box-sizing: border-box;
11
+ font-size: 16px;
12
+ }
13
+
14
+ *,
15
+ *:before,
16
+ *:after {
17
+ box-sizing: inherit;
18
+ }
19
+
20
+ body,
21
+ h1,
22
+ h2,
23
+ h3,
24
+ h4,
25
+ h5,
26
+ h6,
27
+ p,
28
+ ol,
29
+ ul {
30
+ margin: 0;
31
+ padding: 0;
32
+ font-weight: normal;
33
+ }
34
+
35
+ ol,
36
+ ul {
37
+ list-style: none;
38
+ }
39
+
40
+ img {
41
+ max-width: 100%;
42
+ height: auto;
43
+ }
44
+
45
+ :root {
46
+ --bg-color: #f8f8f8;
47
+ --text-color: #333;
48
+ --text-secondary: #666;
49
+ --card-bg: white;
50
+ --card-shadow: rgba(0, 0, 0, 0.06);
51
+ --card-shadow-hover: rgba(0, 0, 0, 0.24);
52
+ --input-border: rgba(0, 0, 0, .1);
53
+ --notification-bg: #212121;
54
+ --notification-text: white;
55
+ }
56
+
57
+ [data-theme="dark"] {
58
+ --bg-color: #1e1e1e;
59
+ --text-color: #cccccc;
60
+ --text-secondary: #999;
61
+ --card-bg: #252526;
62
+ --card-shadow: rgba(0, 0, 0, 0.3);
63
+ --card-shadow-hover: rgba(255, 255, 255, 0.1);
64
+ --input-border: rgba(255, 255, 255, .1);
65
+ --notification-bg: #3c3c3c;
66
+ --notification-text: #cccccc;
67
+ }
68
+
69
+ body {
70
+ font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji;
71
+ margin: 0;
72
+ padding: 0px 20px 10px 20px;
73
+ text-align: center;
74
+ background-color: var(--bg-color);
75
+ color: var(--text-color);
76
+ transition: background-color 0.3s ease, color 0.3s ease;
77
+ }
78
+
79
+ #header {
80
+ position: sticky;
81
+ top: 0;
82
+ display: flex;
83
+ align-items: center;
84
+ gap: 20px;
85
+ margin: 0 auto;
86
+ padding: 20px 64px;
87
+ background-color: var(--bg-color);
88
+ z-index: 100;
89
+ transition: background-color 0.3s ease;
90
+ }
91
+
92
+ h1 {
93
+ font-weight: bold;
94
+ margin: 0;
95
+ color: var(--text-color);
96
+ white-space: nowrap;
97
+ flex-shrink: 0;
98
+ }
99
+
100
+ #theme-toggle {
101
+ display: flex;
102
+ align-items: center;
103
+ gap: 4px;
104
+ padding: 10px 20px;
105
+ background-color: var(--card-bg);
106
+ color: var(--text-color);
107
+ border: 1px solid var(--input-border);
108
+ border-radius: 4px;
109
+ cursor: pointer;
110
+ font-size: 14px;
111
+ box-shadow: 0px 0px 12px var(--card-shadow);
112
+ transition: all 0.3s ease;
113
+ flex-shrink: 0;
114
+ white-space: nowrap;
115
+ }
116
+
117
+ #theme-toggle:hover {
118
+ box-shadow: 0px 0px 12px var(--card-shadow-hover);
119
+ }
120
+
121
+ #theme-toggle:focus {
122
+ outline: none;
123
+ border-color: #18a0fb;
124
+ }
125
+
126
+ .icon {
127
+ width: 100px;
128
+ display: inline-block;
129
+ margin: 8px;
130
+ }
131
+
132
+ .icon:hover {
133
+ cursor: pointer;
134
+ }
135
+
136
+ .icon:hover .inner {
137
+ box-shadow: 0px 0px 12px var(--card-shadow-hover);
138
+ }
139
+
140
+ .icon .inner {
141
+ display: inline-block;
142
+ width: 100%;
143
+ text-align: center;
144
+ background-color: var(--card-bg);
145
+ box-shadow: 0px 0px 12px var(--card-shadow);
146
+ border-radius: 4px;
147
+ transition: all .3s ease-in-out;
148
+ }
149
+
150
+ .icon .inner {
151
+ display: flex;
152
+ align-items: center;
153
+ justify-content: center;
154
+ height: 88px;
155
+ font-size: 56px;
156
+ line-height: 1;
157
+ color: var(--text-color);
158
+ overflow: hidden;
159
+ }
160
+
161
+ .icon .inner::before {
162
+ overflow: hidden;
163
+ }
164
+
165
+ .label {
166
+ margin-top: 8px;
167
+ display: inline-block;
168
+ width: 100%;
169
+ box-sizing: border-box;
170
+ padding: 4px;
171
+ font-size: 10px;
172
+ color: var(--text-secondary);
173
+ white-space: nowrap;
174
+ overflow: hidden;
175
+ text-overflow: ellipsis;
176
+ }
177
+
178
+ .description {
179
+ display: none;
180
+ }
181
+
182
+ #search {
183
+ flex: 1;
184
+ font-size: 16px;
185
+ padding: 12px 16px;
186
+ border: 1px solid var(--input-border);
187
+ box-shadow: 0px 0px 12px var(--card-shadow);
188
+ background-color: var(--card-bg);
189
+ color: var(--text-color);
190
+ transition: all 0.3s ease;
191
+ border-radius: 4px;
192
+ }
193
+
194
+ #tabs {
195
+ display: flex;
196
+ align-items: center;
197
+ gap: 8px;
198
+ flex-shrink: 0;
199
+ }
200
+
201
+ .tab {
202
+ padding: 10px 14px;
203
+ background-color: var(--card-bg);
204
+ color: var(--text-color);
205
+ border: 1px solid var(--input-border);
206
+ border-radius: 4px;
207
+ cursor: pointer;
208
+ font-size: 14px;
209
+ box-shadow: 0px 0px 12px var(--card-shadow);
210
+ transition: all 0.3s ease;
211
+ user-select: none;
212
+ }
213
+
214
+ .tab.active {
215
+ border-color: #18a0fb;
216
+ }
217
+
218
+ .cody-svg {
219
+ width: 1em;
220
+ height: 1em;
221
+ display: inline-block;
222
+ }
223
+
224
+ #search:focus {
225
+ outline: none !important;
226
+ border-color: #18a0fb;
227
+ }
228
+
229
+ #copier {
230
+ position: absolute;
231
+ top: -9999px;
232
+ left: -9999px;
233
+ }
234
+
235
+ #notification {
236
+ position: fixed;
237
+ margin: auto;
238
+ bottom: 40px;
239
+ left: 50%;
240
+ width: auto;
241
+ transform: translateX(-50%);
242
+ color: var(--notification-text);
243
+ background-color: var(--notification-bg);
244
+ padding: 8px 24px;
245
+ border-radius: 8px;
246
+ opacity: 0;
247
+ transition: opacity .3s ease-in-out;
248
+ box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.2);
249
+ }
250
+
251
+ #notification-id {
252
+ font-weight: bold;
253
+ }
254
+
255
+ #notification.show {
256
+ opacity: .9;
257
+ }
258
+ </style>
259
+
260
+ <link rel="stylesheet" type="text/css" href="{{ name }}.css" />
261
+ </head>
262
+
263
+ <body>
264
+
265
+ <div id="header">
266
+ <h1>{{ name }}</h1>
267
+ <input type="text" id="search" placeholder="Search for icon names" aria-label="Search for icon names">
268
+ <div id="tabs" role="tablist" aria-label="Icon filter">
269
+ <div id="tab-all" class="tab active" role="tab" aria-selected="true" tabindex="0">Default</div>
270
+ <div id="tab-cody" class="tab" role="tab" aria-selected="false" tabindex="0">Cody</div>
271
+ </div>
272
+ <button id="theme-toggle" aria-label="Toggle theme"><i class="codyicon codyicon-color-mode"></i> Dark
273
+ Mode</button>
274
+ </div>
275
+
276
+ <div id="icons">
277
+ {{# each assets }}
278
+ <div class="icon" data-name="{{ @key }}" title="{{ @key }}" data-tags="" data-description="">
279
+ <span class="inner">
280
+ <{{ ../tag }} class="{{ ../prefix }} {{ ../prefix }}-{{ @key }}" aria-hidden="true"></{{ ../tag }}>
281
+ </span>
282
+ <br>
283
+ <span class='label'>{{ @key }}</span>
284
+ <span class='description'></span>
285
+ </div>
286
+ {{/ each }}
287
+ </div>
288
+
289
+ <div id="notification">📋 Copied: <span id="notification-id"></span></div>
290
+ <input type="text" id="copier" aria-label="Clipboard helper">
291
+ <svg id="cody-svg-sprite" aria-hidden="true" style="position:absolute;width:0;height:0;overflow:hidden"></svg>
292
+
293
+ <script type="text/javascript">
294
+
295
+ let icons = document.getElementsByClassName('icon');
296
+ let copier = document.getElementById('copier');
297
+ let notification = document.getElementById('notification');
298
+ let notificationText = document.getElementById('notification-id');
299
+ let search = document.getElementById('search');
300
+ const html = document.documentElement;
301
+ const themeToggle = document.getElementById('theme-toggle');
302
+ const tabAll = document.getElementById('tab-all');
303
+ const tabCody = document.getElementById('tab-cody');
304
+ let codyIconSet = new Set();
305
+ let timer;
306
+
307
+ // Load metadata
308
+ let metadata = {}; // METADATA_PLACEHOLDER
309
+
310
+ if (Object.keys(metadata).length > 0) {
311
+ applyMetadata();
312
+ } else {
313
+ fetch('metadata.json')
314
+ .then(response => response.json())
315
+ .then(data => {
316
+ metadata = data;
317
+ applyMetadata();
318
+ })
319
+ .catch(error => {
320
+ console.warn('Could not load metadata.json, using fallback descriptions', error);
321
+ applyLegacyDescriptions();
322
+ });
323
+ }
324
+
325
+ function applyMetadata() {
326
+ for (let i = 0; i < icons.length; i++) {
327
+ let icon = icons[i];
328
+ let name = icon.getAttribute('data-name');
329
+
330
+ if (metadata[name]) {
331
+ let meta = metadata[name];
332
+ let tags = meta.tags ? meta.tags.join(' ') : '';
333
+ let description = meta.description || '';
334
+ let render = meta.render || '';
335
+
336
+ icon.setAttribute('data-tags', tags);
337
+ icon.setAttribute('data-description', description);
338
+ icon.setAttribute('data-render', render);
339
+
340
+ // Update visible description
341
+ let descriptionSpan = icon.querySelector('.description');
342
+ if (descriptionSpan) {
343
+ descriptionSpan.innerHTML = description + (tags ? ' - ' + tags : '');
344
+ }
345
+ }
346
+ }
347
+
348
+ // Build a set of icons that should be rendered via colored SVG (Cody custom icons).
349
+ codyIconSet = new Set(
350
+ Object.keys(metadata || {}).filter((key) => metadata[key] && metadata[key].render === 'svg')
351
+ );
352
+
353
+ // Ensure SVG-rendered icons exist as cards in the DOM even if they are not part of the font assets.
354
+ // The template icon list is generated from the font assets mapping, so custom SVG-only icons
355
+ // must be appended dynamically.
356
+ const iconContainer = document.getElementById('icons');
357
+ if (iconContainer) {
358
+ codyIconSet.forEach((name) => {
359
+ const exists = document.querySelector(`[data-name="${name}"]`);
360
+ if (exists) {
361
+ return;
362
+ }
363
+
364
+ const meta = metadata[name] || {};
365
+ const tags = meta.tags ? meta.tags.join(' ') : '';
366
+ const description = meta.description || '';
367
+ const render = meta.render || '';
368
+
369
+ const card = document.createElement('div');
370
+ card.className = 'icon';
371
+ card.setAttribute('data-name', name);
372
+ card.setAttribute('title', name);
373
+ card.setAttribute('data-tags', tags);
374
+ card.setAttribute('data-description', description);
375
+ card.setAttribute('data-render', render);
376
+
377
+ const inner = document.createElement('span');
378
+ inner.className = 'inner';
379
+ inner.innerHTML = `<svg class="cody-svg" aria-hidden="true"><use href="#${name}" xlink:href="#${name}"></use></svg>`;
380
+ inner.setAttribute('data-svg-rendered', 'true');
381
+ card.appendChild(inner);
382
+
383
+ card.appendChild(document.createElement('br'));
384
+
385
+ const label = document.createElement('span');
386
+ label.className = 'label';
387
+ label.textContent = name;
388
+ card.appendChild(label);
389
+
390
+ const desc = document.createElement('span');
391
+ desc.className = 'description';
392
+ desc.innerHTML = description + (tags ? ' - ' + tags : '');
393
+ card.appendChild(desc);
394
+
395
+ iconContainer.appendChild(card);
396
+ });
397
+ }
398
+ }
399
+
400
+ function applyLegacyDescriptions() {
401
+ let descriptions = [
402
+ {
403
+ name: 'account',
404
+ description: 'person people face user contact outline'
405
+ },
406
+ {
407
+ name: 'activate-breakpoints',
408
+ description: 'dot circle toggle switch'
409
+ },
410
+ {
411
+ name: 'add',
412
+ description: 'combine plus add more new'
413
+ },
414
+ {
415
+ name: 'archive',
416
+ description: 'save box delivery package'
417
+ },
418
+ {
419
+ name: 'arrow-both',
420
+ description: 'switch swap'
421
+ },
422
+ {
423
+ name: 'attach',
424
+ description: 'clip paperclip file link connect add'
425
+ },
426
+ {
427
+ name: 'beaker',
428
+ description: 'test lab tube tool'
429
+ },
430
+ {
431
+ name: 'bell',
432
+ description: 'alert notify notification'
433
+ },
434
+ {
435
+ name: 'bell-dot',
436
+ description: 'alert notify notification'
437
+ },
438
+ {
439
+ name: 'bold',
440
+ description: 'text format weight font style'
441
+ },
442
+ {
443
+ name: 'book',
444
+ description: 'library text read open'
445
+ },
446
+ {
447
+ name: 'bookmark',
448
+ description: 'book save later'
449
+ },
450
+ {
451
+ name: 'briefcase',
452
+ description: 'work workplace'
453
+ },
454
+ {
455
+ name: 'broadcast',
456
+ description: 'tower signal connect connection'
457
+ },
458
+ {
459
+ name: 'browser',
460
+ description: 'web internet page window'
461
+ },
462
+ {
463
+ name: 'bug',
464
+ description: 'error issue insect block'
465
+ },
466
+ {
467
+ name: 'calendar',
468
+ description: 'day time week month date schedule event planner'
469
+ },
470
+ {
471
+ name: 'call-incoming',
472
+ description: 'phone cell voice connection direction'
473
+ },
474
+ {
475
+ name: 'call-outgoing',
476
+ description: 'phone cell voice connection direction'
477
+ },
478
+ {
479
+ name: 'case-sensitive',
480
+ description: 'search filter option letters words'
481
+ },
482
+ {
483
+ name: 'check-all',
484
+ description: 'checkmark select everything checked mark complete finish done accept approve'
485
+ },
486
+ {
487
+ name: 'check',
488
+ description: 'checkmark select everything checked mark complete finish done accept approve'
489
+ },
490
+ {
491
+ name: 'checklist',
492
+ description: 'checkmark select everything checked mark complete finish done accept todo task text'
493
+ },
494
+ {
495
+ name: 'chevron-down',
496
+ description: 'twistie tree node folder fold collapse'
497
+ },
498
+ {
499
+ name: 'chevron-left',
500
+ description: 'twistie tree node folder fold collapse'
501
+ },
502
+ {
503
+ name: 'chevron-right',
504
+ description: 'twistie tree node folder fold collapse'
505
+ },
506
+ {
507
+ name: 'chevron-up',
508
+ description: 'twistie tree node folder fold collapse'
509
+ },
510
+ {
511
+ name: 'chrome-close',
512
+ description: 'menu bar window dismiss'
513
+ },
514
+ {
515
+ name: 'chrome-maximize',
516
+ description: 'menu bar window large increase'
517
+ },
518
+ {
519
+ name: 'chrome-minimize',
520
+ description: 'menu bar window small decrease'
521
+ },
522
+ {
523
+ name: 'chrome-restore',
524
+ description: 'menu bar window'
525
+ },
526
+ {
527
+ name: 'circle-filled',
528
+ description: 'dot round small bullet breakpoint'
529
+ },
530
+ {
531
+ name: 'circle-large-filled',
532
+ description: 'dot round bullet'
533
+ },
534
+ {
535
+ name: 'circle-large',
536
+ description: 'dot round bullet'
537
+ },
538
+ {
539
+ name: 'circle',
540
+ description: 'dot round small bullet unverified breakpoint'
541
+ },
542
+ {
543
+ name: 'circle-slash',
544
+ description: 'error block stop disable'
545
+ },
546
+ {
547
+ name: 'circuit-board',
548
+ description: 'iot device process lines'
549
+ },
550
+ {
551
+ name: 'clear-all',
552
+ description: 'reset remove'
553
+ },
554
+ {
555
+ name: 'clippy',
556
+ description: 'clipboard document edit copy'
557
+ },
558
+ {
559
+ name: 'close-all',
560
+ description: 'remove bulk'
561
+ },
562
+ {
563
+ name: 'close',
564
+ description: 'remove x cancel stop miltiply'
565
+ },
566
+ {
567
+ name: 'cloud-download',
568
+ description: 'install import'
569
+ },
570
+ {
571
+ name: 'cloud-upload',
572
+ description: 'export'
573
+ },
574
+ {
575
+ name: 'cloud',
576
+ description: 'online service'
577
+ },
578
+ {
579
+ name: 'code',
580
+ description: 'embed script programming server'
581
+ },
582
+ {
583
+ name: 'collapse-all',
584
+ description: 'bulk fold minimize'
585
+ },
586
+ {
587
+ name: 'color-mode',
588
+ description: 'switch dark light contrast mode toggle'
589
+ },
590
+ {
591
+ name: 'comment-discussion',
592
+ description: 'dialog message bubble chat'
593
+ },
594
+ {
595
+ name: 'comment',
596
+ description: 'dialog message bubble chat'
597
+ },
598
+ {
599
+ name: 'credit-card',
600
+ description: 'payment merchant money'
601
+ },
602
+ {
603
+ name: 'dash',
604
+ description: 'line minus subtract hyphen'
605
+ },
606
+ {
607
+ name: 'dashboard',
608
+ description: 'panel stats dial'
609
+ },
610
+ {
611
+ name: 'database',
612
+ description: 'sql db storage online cloud'
613
+ },
614
+ {
615
+ name: 'debug-alt-small',
616
+ description: 'run'
617
+ },
618
+ {
619
+ name: 'debug-alt',
620
+ description: 'run'
621
+ },
622
+ {
623
+ name: 'debug-console',
624
+ description: 'terminal command input compile build'
625
+ },
626
+ {
627
+ name: 'debug-disconnect',
628
+ description: 'stop unplug eject'
629
+ },
630
+ {
631
+ name: 'desktop-download',
632
+ description: 'install'
633
+ },
634
+ {
635
+ name: 'device-camera-video',
636
+ description: 'movie record capture'
637
+ },
638
+ {
639
+ name: 'device-camera',
640
+ description: 'capture picture image'
641
+ },
642
+ {
643
+ name: 'device-mobile',
644
+ description: 'phone handheld smartphone'
645
+ },
646
+ {
647
+ name: 'diff-added',
648
+ description: 'git change'
649
+ },
650
+ {
651
+ name: 'diff-ignored',
652
+ description: 'git change'
653
+ },
654
+ {
655
+ name: 'diff-modified',
656
+ description: 'git change'
657
+ },
658
+ {
659
+ name: 'diff-renamed',
660
+ description: 'git change'
661
+ },
662
+ {
663
+ name: 'diff-removed',
664
+ description: 'git change'
665
+ },
666
+ {
667
+ name: 'play-circle',
668
+ description: 'run'
669
+ },
670
+ {
671
+ name: 'pass',
672
+ description: 'play check checkmark outline issue closed'
673
+ },
674
+ {
675
+ name: 'pass-filled',
676
+ description: 'play check checkmark filled issue closed'
677
+ },
678
+ {
679
+ name: 'play',
680
+ description: 'run'
681
+ },
682
+ ];
683
+
684
+ descriptions.some(function (item) {
685
+ let findIcon = document.querySelectorAll(`[data-name="${item.name}"]`);
686
+ if (findIcon[0]) {
687
+ findIcon[0].querySelector('.description').innerHTML += item.description;
688
+ findIcon[0].setAttribute('data-description', item.description);
689
+ }
690
+ });
691
+ }
692
+
693
+ function animateNotification() {
694
+ window.clearTimeout(timer);
695
+ search.focus();
696
+ notification.classList.add('show');
697
+ timer = window.setTimeout(function () {
698
+ notification.classList.remove('show');
699
+ }, 3000);
700
+ }
701
+
702
+ function sanitizeText(string) {
703
+ return string = string.replace(/-/gi, ' ');
704
+ }
705
+
706
+ // -----------------
707
+ // Tab filter + search
708
+ // -----------------
709
+ let activeTab = 'all';
710
+
711
+ function setTab(tab) {
712
+ activeTab = tab;
713
+ tabAll.classList.toggle('active', tab === 'all');
714
+ tabCody.classList.toggle('active', tab === 'cody');
715
+ tabAll.setAttribute('aria-selected', tab === 'all' ? 'true' : 'false');
716
+ tabCody.setAttribute('aria-selected', tab === 'cody' ? 'true' : 'false');
717
+ applyFilters();
718
+ }
719
+
720
+ tabAll.addEventListener('click', function () { setTab('all'); });
721
+ tabCody.addEventListener('click', function () { setTab('cody'); });
722
+
723
+ function applyFilters() {
724
+ let filter = search.value.toUpperCase();
725
+ let wrapper = document.getElementById('icons');
726
+ let icon = wrapper.getElementsByTagName('div');
727
+
728
+ for (i = 0; i < icon.length; i++) {
729
+ let name = (icon[i].getAttribute('data-name') || '');
730
+ let tags = icon[i].getAttribute('data-tags') || '';
731
+ let description = icon[i].getAttribute('data-description') || '';
732
+ let render = icon[i].getAttribute('data-render') || '';
733
+ let textInner = sanitizeText(icon[i].innerText);
734
+ let textContents = sanitizeText(icon[i].textContent);
735
+
736
+ let tabMatch = true;
737
+ if (activeTab === 'cody') {
738
+ tabMatch = name.toLowerCase().startsWith('cody');
739
+ }
740
+
741
+ if (
742
+ tabMatch && (
743
+ textContents.toUpperCase().indexOf(filter) > -1 ||
744
+ textInner.toUpperCase().indexOf(filter) > -1 ||
745
+ name.toUpperCase().indexOf(filter) > -1 ||
746
+ tags.toUpperCase().indexOf(filter) > -1 ||
747
+ description.toUpperCase().indexOf(filter) > -1
748
+ )
749
+ ) {
750
+ icon[i].style.display = "inline-block";
751
+
752
+ // If this is a Cody icon and marked as SVG-rendered, replace the inner content with <svg><use>
753
+ if (activeTab === 'cody' && render === 'svg' && codyIconSet.has(name)) {
754
+ const inner = icon[i].querySelector('.inner');
755
+ if (inner && !inner.getAttribute('data-svg-rendered')) {
756
+ inner.innerHTML = `<svg class="cody-svg" aria-hidden="true"><use href="#${name}" xlink:href="#${name}"></use></svg>`;
757
+ inner.setAttribute('data-svg-rendered', 'true');
758
+ }
759
+ }
760
+ } else {
761
+ icon[i].style.display = "none";
762
+ }
763
+ }
764
+ }
765
+
766
+ search.addEventListener('keyup', applyFilters);
767
+
768
+ // -----------------
769
+ // Click to copy
770
+ // -----------------
771
+ for (i = 0; i < icons.length; i++) {
772
+ let icon = icons[i]
773
+ icon.onclick = function (e) {
774
+ let name = this.getAttribute('data-name');
775
+
776
+ copier.value = name;
777
+ copier.select();
778
+ copier.setSelectionRange(0, 99999)
779
+ document.execCommand('copy');
780
+
781
+ notificationText.innerHTML = name;
782
+ animateNotification();
783
+ e.preventDefault();
784
+ }
785
+ }
786
+ const prefersDarkScheme = window.matchMedia('(prefers-color-scheme: dark)');
787
+
788
+ // Function to get the theme: check localStorage first, then system preference
789
+ function getTheme() {
790
+ const savedTheme = localStorage.getItem('theme');
791
+ if (savedTheme) {
792
+ return savedTheme;
793
+ }
794
+ return prefersDarkScheme.matches ? 'dark' : 'light';
795
+ }
796
+
797
+ // Initialize theme
798
+ const currentTheme = getTheme();
799
+ html.setAttribute('data-theme', currentTheme);
800
+ updateThemeButton(currentTheme);
801
+
802
+ // Listen for system theme changes
803
+ prefersDarkScheme.addEventListener('change', function (e) {
804
+ // Only update if user hasn't manually set a preference
805
+ if (!localStorage.getItem('theme')) {
806
+ const newTheme = e.matches ? 'dark' : 'light';
807
+ html.setAttribute('data-theme', newTheme);
808
+ updateThemeButton(newTheme);
809
+ }
810
+ });
811
+
812
+ // Manual toggle
813
+ themeToggle.addEventListener('click', function () {
814
+ const currentTheme = html.getAttribute('data-theme');
815
+ const newTheme = currentTheme === 'dark' ? 'light' : 'dark';
816
+
817
+ html.setAttribute('data-theme', newTheme);
818
+ localStorage.setItem('theme', newTheme);
819
+ updateThemeButton(newTheme);
820
+ });
821
+
822
+ function updateThemeButton(theme) {
823
+ if (theme === 'dark') {
824
+ themeToggle.innerHTML = '<i class="codyicon codyicon-color-mode"></i> Light Mode';
825
+ } else {
826
+ themeToggle.innerHTML = '<i class="codyicon codyicon-color-mode"></i> Dark Mode';
827
+ }
828
+ }
829
+
830
+ </script>
831
+ </body>
832
+
833
+ </html>