python-lucide 0.5.9__tar.gz → 0.5.11__tar.gz

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 (40) hide show
  1. {python_lucide-0.5.9 → python_lucide-0.5.11}/.gitignore +1 -4
  2. {python_lucide-0.5.9 → python_lucide-0.5.11}/PKG-INFO +14 -11
  3. {python_lucide-0.5.9 → python_lucide-0.5.11}/README.md +12 -8
  4. {python_lucide-0.5.9 → python_lucide-0.5.11}/pyproject.toml +9 -5
  5. {python_lucide-0.5.9 → python_lucide-0.5.11}/src/lucide/build_clusters.py +2 -2
  6. {python_lucide-0.5.9 → python_lucide-0.5.11}/src/lucide/build_search.py +3 -3
  7. {python_lucide-0.5.9 → python_lucide-0.5.11}/src/lucide/config.py +1 -1
  8. {python_lucide-0.5.9 → python_lucide-0.5.11}/src/lucide/core.py +3 -3
  9. {python_lucide-0.5.9 → python_lucide-0.5.11}/src/lucide/data/gemini-icon-descriptions.jsonl +41 -0
  10. {python_lucide-0.5.9 → python_lucide-0.5.11}/src/lucide/data/lucide-icon-clusters.json +4930 -4755
  11. {python_lucide-0.5.9 → python_lucide-0.5.11}/src/lucide/data/lucide-icons.sql +1507 -160
  12. {python_lucide-0.5.9 → python_lucide-0.5.11}/tests/cli_test.py +2 -1
  13. {python_lucide-0.5.9 → python_lucide-0.5.11}/tests/core_test.py +4 -4
  14. {python_lucide-0.5.9 → python_lucide-0.5.11}/LICENSE +0 -0
  15. {python_lucide-0.5.9 → python_lucide-0.5.11}/Makefile +0 -0
  16. {python_lucide-0.5.9 → python_lucide-0.5.11}/build_support.py +0 -0
  17. {python_lucide-0.5.9 → python_lucide-0.5.11}/hatch_build.py +0 -0
  18. {python_lucide-0.5.9 → python_lucide-0.5.11}/src/lucide/__init__.py +0 -0
  19. {python_lucide-0.5.9 → python_lucide-0.5.11}/src/lucide/cli.py +0 -0
  20. {python_lucide-0.5.9 → python_lucide-0.5.11}/src/lucide/data/__init__.py +0 -0
  21. {python_lucide-0.5.9 → python_lucide-0.5.11}/src/lucide/db.py +0 -0
  22. {python_lucide-0.5.9 → python_lucide-0.5.11}/src/lucide/dev_utils.py +0 -0
  23. {python_lucide-0.5.9 → python_lucide-0.5.11}/src/lucide/search.py +0 -0
  24. {python_lucide-0.5.9 → python_lucide-0.5.11}/tests/__init__.py +0 -0
  25. {python_lucide-0.5.9 → python_lucide-0.5.11}/tests/build_clusters_test.py +0 -0
  26. {python_lucide-0.5.9 → python_lucide-0.5.11}/tests/build_search_test.py +0 -0
  27. {python_lucide-0.5.9 → python_lucide-0.5.11}/tests/conftest.py +0 -0
  28. {python_lucide-0.5.9 → python_lucide-0.5.11}/tests/db_source_test.py +0 -0
  29. {python_lucide-0.5.9 → python_lucide-0.5.11}/tests/search_test.py +0 -0
  30. {python_lucide-0.5.9 → python_lucide-0.5.11}/web/src/App.svelte +0 -0
  31. {python_lucide-0.5.9 → python_lucide-0.5.11}/web/src/app.css +0 -0
  32. {python_lucide-0.5.9 → python_lucide-0.5.11}/web/src/components/DetailPanel.svelte +0 -0
  33. {python_lucide-0.5.9 → python_lucide-0.5.11}/web/src/lib/clusters.ts +0 -0
  34. {python_lucide-0.5.9 → python_lucide-0.5.11}/web/src/lib/embeddings.ts +0 -0
  35. {python_lucide-0.5.9 → python_lucide-0.5.11}/web/src/lib/model-loader.ts +0 -0
  36. {python_lucide-0.5.9 → python_lucide-0.5.11}/web/src/lib/types.ts +0 -0
  37. {python_lucide-0.5.9 → python_lucide-0.5.11}/web/src/main.ts +0 -0
  38. {python_lucide-0.5.9 → python_lucide-0.5.11}/web/src/pages/ExplorePage.svelte +0 -0
  39. {python_lucide-0.5.9 → python_lucide-0.5.11}/web/src/pages/SearchPage.svelte +0 -0
  40. {python_lucide-0.5.9 → python_lucide-0.5.11}/web/src/vite-env.d.ts +0 -0
@@ -95,10 +95,7 @@ ipython_config.py
95
95
  #Pipfile.lock
96
96
 
97
97
  # UV
98
- # Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
99
- # This is especially recommended for binary packages to ensure reproducibility, and is more
100
- # commonly ignored for libraries.
101
- uv.lock
98
+ # uv.lock is committed: it pins development and CI, never what users install.
102
99
 
103
100
  # poetry
104
101
  # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: python-lucide
3
- Version: 0.5.9
3
+ Version: 0.5.11
4
4
  Summary: A Python package for working with Lucide icons
5
5
  Project-URL: Bug Tracker, https://github.com/mmacpherson/python-lucide/issues
6
6
  Project-URL: Homepage, https://github.com/mmacpherson/python-lucide
@@ -13,13 +13,12 @@ Classifier: Development Status :: 4 - Beta
13
13
  Classifier: Intended Audience :: Developers
14
14
  Classifier: License :: OSI Approved :: MIT License
15
15
  Classifier: Programming Language :: Python :: 3
16
- Classifier: Programming Language :: Python :: 3.10
17
16
  Classifier: Programming Language :: Python :: 3.11
18
17
  Classifier: Programming Language :: Python :: 3.12
19
18
  Classifier: Programming Language :: Python :: 3.13
20
19
  Classifier: Programming Language :: Python :: 3.14
21
20
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
22
- Requires-Python: >=3.10
21
+ Requires-Python: >=3.11
23
22
  Provides-Extra: search
24
23
  Requires-Dist: cairosvg>=2.7.0; extra == 'search'
25
24
  Requires-Dist: fastembed>=0.4.0; extra == 'search'
@@ -57,12 +56,12 @@ pip install python-lucide
57
56
  ```
58
57
  This installs the package with a pre-built database of all Lucide icons, ready to use immediately.
59
58
 
60
- Python 3.10–3.14 are supported. **Python 3.15 support is experimental:** core
59
+ Python 3.11–3.14 are supported. **Python 3.15 support is experimental:** core
61
60
  rendering, aliases, and SQL-backed package builds pass tests on 3.15 RC2 and have
62
61
  a dedicated CI job, but semantic search is currently unsupported because ONNX
63
62
  Runtime does not yet provide compatible wheels. Core installation remains
64
63
  available on 3.15; full support will be advertised once search is validated too.
65
- Use Python 3.10–3.14 for search and full development tooling. HDBSCAN and UMAP's
64
+ Use Python 3.11–3.14 for search and full development tooling. HDBSCAN and UMAP's
66
65
  dependencies affect cluster generation during development, not ordinary searches.
67
66
 
68
67
  To run the core tests on Python 3.15 from a source checkout:
@@ -446,13 +445,17 @@ This project follows a manual release process:
446
445
 
447
446
  2. **Create and merge PR** for the version bump
448
447
 
449
- 3. **Trigger publishing workflow**:
450
- - Go to [Actions](../../actions/workflows/publish.yml)
451
- - Click "Run workflow"
452
- - Select the main branch
453
- - Click "Run workflow"
448
+ 3. **Tag the merged commit on main** with the same version:
449
+ ```bash
450
+ git checkout main && git pull
451
+ git tag v0.2.0
452
+ git push origin v0.2.0
453
+ ```
454
454
 
455
- 4. **Automatic publishing**: The `publish.yml` workflow builds and publishes the package to PyPI using trusted publishing.
455
+ 4. **Automatic publishing**: The `release.yml` workflow checks that the tag
456
+ matches `pyproject.toml` and is on main, runs CI on the tagged commit,
457
+ publishes that build to PyPI using trusted publishing, creates the GitHub
458
+ Release, and attaches the rebuilt search database to its `search-v*` release.
456
459
 
457
460
  ## How It Works
458
461
  The package comes with a pre-built SQLite database containing all Lucide icons. When you call `lucide_icon()`, it fetches the icon's SVG from the database and applies your customizations. This approach means:
@@ -30,12 +30,12 @@ pip install python-lucide
30
30
  ```
31
31
  This installs the package with a pre-built database of all Lucide icons, ready to use immediately.
32
32
 
33
- Python 3.10–3.14 are supported. **Python 3.15 support is experimental:** core
33
+ Python 3.11–3.14 are supported. **Python 3.15 support is experimental:** core
34
34
  rendering, aliases, and SQL-backed package builds pass tests on 3.15 RC2 and have
35
35
  a dedicated CI job, but semantic search is currently unsupported because ONNX
36
36
  Runtime does not yet provide compatible wheels. Core installation remains
37
37
  available on 3.15; full support will be advertised once search is validated too.
38
- Use Python 3.10–3.14 for search and full development tooling. HDBSCAN and UMAP's
38
+ Use Python 3.11–3.14 for search and full development tooling. HDBSCAN and UMAP's
39
39
  dependencies affect cluster generation during development, not ordinary searches.
40
40
 
41
41
  To run the core tests on Python 3.15 from a source checkout:
@@ -419,13 +419,17 @@ This project follows a manual release process:
419
419
 
420
420
  2. **Create and merge PR** for the version bump
421
421
 
422
- 3. **Trigger publishing workflow**:
423
- - Go to [Actions](../../actions/workflows/publish.yml)
424
- - Click "Run workflow"
425
- - Select the main branch
426
- - Click "Run workflow"
422
+ 3. **Tag the merged commit on main** with the same version:
423
+ ```bash
424
+ git checkout main && git pull
425
+ git tag v0.2.0
426
+ git push origin v0.2.0
427
+ ```
427
428
 
428
- 4. **Automatic publishing**: The `publish.yml` workflow builds and publishes the package to PyPI using trusted publishing.
429
+ 4. **Automatic publishing**: The `release.yml` workflow checks that the tag
430
+ matches `pyproject.toml` and is on main, runs CI on the tagged commit,
431
+ publishes that build to PyPI using trusted publishing, creates the GitHub
432
+ Release, and attaches the rebuilt search database to its `search-v*` release.
429
433
 
430
434
  ## How It Works
431
435
  The package comes with a pre-built SQLite database containing all Lucide icons. When you call `lucide_icon()`, it fetches the icon's SVG from the database and applies your customizations. This approach means:
@@ -32,7 +32,6 @@ classifiers = [
32
32
  "Intended Audience :: Developers",
33
33
  "License :: OSI Approved :: MIT License",
34
34
  "Programming Language :: Python :: 3",
35
- "Programming Language :: Python :: 3.10",
36
35
  "Programming Language :: Python :: 3.11",
37
36
  "Programming Language :: Python :: 3.12",
38
37
  "Programming Language :: Python :: 3.13",
@@ -45,8 +44,8 @@ keywords = ["lucide", "icons", "svg", "sqlite"]
45
44
  license = { text = "MIT" }
46
45
  name = "python-lucide"
47
46
  readme = "README.md"
48
- requires-python = ">=3.10"
49
- version = "0.5.9"
47
+ requires-python = ">=3.11"
48
+ version = "0.5.11"
50
49
 
51
50
  [project.optional-dependencies]
52
51
  search = ["cairosvg>=2.7.0", "fastembed>=0.4.0"]
@@ -80,7 +79,7 @@ disallow_untyped_decorators = true
80
79
  disallow_untyped_defs = true
81
80
  ignore_missing_imports = true
82
81
  no_implicit_optional = true
83
- python_version = "3.10"
82
+ python_version = "3.11"
84
83
  show_column_numbers = true
85
84
  show_error_context = true
86
85
  strict_optional = true
@@ -105,7 +104,7 @@ xfail_strict = true
105
104
 
106
105
  [tool.ruff]
107
106
  line-length = 88
108
- target-version = "py310"
107
+ target-version = "py311"
109
108
 
110
109
  [tool.ruff.format]
111
110
  docstring-code-format = true
@@ -161,3 +160,8 @@ convention = "google"
161
160
  [tool.uv]
162
161
  # SQL edits must invalidate uv's cached editable build too.
163
162
  cache-keys = [{ file = "pyproject.toml" }, { file = "hatch_build.py" }, { file = "build_support.py" }, { file = "src/lucide/data/lucide-icons.sql" }]
163
+ # fastembed (search extra) caps pillow below 13, but every pillow before 13.0.0
164
+ # has critical advisories (GHSA-8g5g-8vmr-9782, GHSA-332p-7hrc-92wf,
165
+ # GHSA-w889-685w-c8fh). Override it for development and CI; this doesn't change
166
+ # what users install. Remove once fastembed allows pillow 13.
167
+ override-dependencies = ["pillow>=13"]
@@ -13,7 +13,7 @@ import logging
13
13
  import os
14
14
  import pathlib
15
15
  import sqlite3
16
- from datetime import datetime, timezone
16
+ from datetime import UTC, datetime
17
17
 
18
18
  from pydantic import BaseModel, field_validator
19
19
  from pydantic_ai import Agent
@@ -229,7 +229,7 @@ def save_clusters_json(
229
229
  "coords": {
230
230
  name: [round(c[0], 5), round(c[1], 5)] for name, c in data["coords"].items()
231
231
  },
232
- "generated_at": datetime.now(tz=timezone.utc).isoformat(),
232
+ "generated_at": datetime.now(tz=UTC).isoformat(),
233
233
  "naming_model": CLUSTER_NAMING_MODEL,
234
234
  }
235
235
  output_path.write_text(json.dumps(out, indent=2, ensure_ascii=False) + "\n")
@@ -26,7 +26,7 @@ import sqlite3
26
26
  import subprocess
27
27
  import threading
28
28
  import urllib.request
29
- from datetime import datetime, timezone
29
+ from datetime import UTC, datetime
30
30
  from typing import TypedDict
31
31
 
32
32
  from .config import (
@@ -444,7 +444,7 @@ def generate_descriptions( # noqa: PLR0913, PLR0915
444
444
  "lucide_version": lucide_version,
445
445
  "tags": meta["tags"],
446
446
  "categories": meta["categories"],
447
- "timestamp": datetime.now(tz=timezone.utc).isoformat(),
447
+ "timestamp": datetime.now(tz=UTC).isoformat(),
448
448
  }
449
449
  with write_lock:
450
450
  _append_jsonl(jsonl_path, record)
@@ -598,7 +598,7 @@ def _write_search_db( # noqa: PLR0913
598
598
  # Metadata
599
599
  first = records[ordered_names[0]]
600
600
  resolved_version = version or first.get("lucide_version", "unknown")
601
- now = datetime.now(tz=timezone.utc).isoformat()
601
+ now = datetime.now(tz=UTC).isoformat()
602
602
  model_dims = json.dumps({mid: EMBEDDING_MODELS[mid].dim for mid in embeddings})
603
603
  for key, value in [
604
604
  ("version", resolved_version),
@@ -6,7 +6,7 @@ This module contains default configuration values used throughout the package.
6
6
  from dataclasses import dataclass
7
7
 
8
8
  # Default Lucide tag to use when building the icon database
9
- DEFAULT_LUCIDE_TAG = "1.52.0"
9
+ DEFAULT_LUCIDE_TAG = "1.61.0"
10
10
 
11
11
  # Default size for the LRU cache used by lucide_icon function
12
12
  DEFAULT_ICON_CACHE_SIZE = 128
@@ -58,7 +58,7 @@ def _process_classes(root: ET.Element, cls: str | None, icon_name: str) -> None:
58
58
  del root.attrib["class"]
59
59
 
60
60
 
61
- def _apply_attributes( # noqa: D417
61
+ def _apply_attributes( # noqa: D417, PLR0917
62
62
  root: ET.Element,
63
63
  width: str | int | None = None,
64
64
  height: str | int | None = None,
@@ -98,7 +98,7 @@ def _apply_attributes( # noqa: D417
98
98
  root.set(svg_attr_name, str(value))
99
99
 
100
100
 
101
- def _modify_svg( # noqa: D417
101
+ def _modify_svg( # noqa: D417, PLR0917
102
102
  original_svg_content: str,
103
103
  icon_name: str,
104
104
  cls: str | None,
@@ -158,7 +158,7 @@ def _modify_svg( # noqa: D417
158
158
 
159
159
 
160
160
  @functools.lru_cache(maxsize=DEFAULT_ICON_CACHE_SIZE)
161
- def lucide_icon(
161
+ def lucide_icon( # noqa: PLR0917 -- public API; positional arguments are supported
162
162
  icon_name: str,
163
163
  cls: str = "",
164
164
  fallback_text: str | None = None,
@@ -1899,3 +1899,44 @@
1899
1899
  {"name": "text-align-justify-center", "description": "This icon visually represents three horizontal lines of varying lengths, centered on each other. It symbolizes text alignment, specifically justifying content to the center, indicating balanced composition and order within a paragraph or document.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.52.0", "tags": ["paragraph", "alignment", "justified", "center", "middle", "typography", "editor", "document"], "categories": ["text"], "timestamp": "2026-10-04T16:43:11.777291+00:00"}
1900
1900
  {"name": "kazakh-tenge", "description": "This icon visually represents the Kazakhstani Tenge symbol. It signifies currency, financial transactions, and the concept of money. The design evokes exchange, payment, and cash flow within the context of Kazakhstan's economy.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.52.0", "tags": ["currency", "money", "payment", "kazakhstan", "currency-symbol", "exchange", "cash"], "categories": ["finance"], "timestamp": "2026-10-04T16:43:11.782149+00:00"}
1901
1901
  {"name": "text-align-justify-start", "description": "This icon shows three horizontal lines of text. The top two lines are fully extended, while the bottom line is shorter and left-aligned. It represents justified text alignment, specifically indicating the start of a justified paragraph with a left anchor point.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.52.0", "tags": ["paragraph", "alignment", "justified", "left", "start", "typography", "editor", "document"], "categories": ["text"], "timestamp": "2026-10-04T16:43:11.916818+00:00"}
1902
+ {"name": "guitar-electric", "description": "This icon visually depicts a stylized electric guitar. It represents the energy and excitement of musical performance, embodying concepts of rock, sound, and playing music with passion. It evokes the idea of a loud, dynamic performance and the thrill of a guitar solo.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.59.0", "tags": ["acoustic", "instrument", "strings", "riff", "rock", "band", "country", "concert", "performance", "play", "lead", "loud", "music", "audio", "sound", "noise"], "categories": ["multimedia"], "timestamp": "2026-10-18T15:12:33.146904+00:00"}
1903
+ {"name": "lens", "description": "This icon depicts a circular lens with a slight sheen, suggesting a convex or magnifying surface. It represents concepts of optics, focus, and magnification, evoking themes of clarity, vision, and scientific observation.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.59.0", "tags": ["optics", "reflection", "camera", "photography", "focus", "effect", "shader", "post-process", "visual", "contact lens", "glass", "magnify", "translucent", "transparent", "orb", "bubble", "zoom"], "categories": ["photography", "science", "tools"], "timestamp": "2026-10-18T15:12:33.148314+00:00"}
1904
+ {"name": "belarusian-ruble", "description": "This icon visually represents the Belarusian Ruble symbol (Br). It signifies currency, monetary transactions, and financial concepts like exchange rates, banking, and payments. It evokes a sense of localization and commerce.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.59.0", "tags": ["currency", "money", "payment", "byn", "iso4217", "fiat", "prices", "localization", "banking", "checkout", "wallet", "exchange-rate"], "categories": ["finance", "shopping", "account"], "timestamp": "2026-10-18T15:12:33.149070+00:00"}
1905
+ {"name": "hiking-stick", "description": "This icon visually depicts a single hiking stick with a loop for the hand. It represents the activity of hiking, walking, and trekking, symbolizing support, balance, and a connection to outdoor adventures and nature exploration.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.59.0", "tags": ["hiking", "walking", "stick", "trekking", "trail", "pole", "backpacking", "outdoors", "mountains"], "categories": ["sports", "travel", "nature", "navigation"], "timestamp": "2026-10-18T15:12:33.151533+00:00"}
1906
+ {"name": "cpu-ai", "description": "This icon depicts a stylized computer chip with the letters \"AI\" prominently displayed. It symbolizes artificial intelligence, machine learning, and cognitive processing, representing the integration of intelligent capabilities within computational devices and the development of advanced technologies.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.59.0", "tags": ["ai", "artificial intelligence", "machine learning", "neural network", "automation", "intelligence", "generative", "assistant", "chatbot", "llm", "deep learning", "inference", "training", "mlops", "model", "predictive", "on-device", "edge", "api", "service", "cognitive", "processor", "chip"], "categories": ["devices", "development"], "timestamp": "2026-10-18T15:12:33.160599+00:00"}
1907
+ {"name": "perfume-bottle", "description": "This icon visually represents a perfume bottle with a spray nozzle and mist emanating from it. It conveys the concepts of applying fragrance, beauty, and scent, evoking a sense of aroma and personal care.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.59.0", "tags": ["eau de parfum", "eau de toilette", "essence", "aftershave", "cologne", "aroma", "fragrance", "smell", "scent", "bouquet", "gift", "duty free", "spray", "puff", "atomizer", "mist", "beauty", "skincare", "cosmetics"], "categories": ["shopping", "travel"], "timestamp": "2026-10-18T15:12:33.161099+00:00"}
1908
+ {"name": "message-circle-text", "description": "This icon visually depicts a speech bubble containing three horizontal lines, representing written text or a message. It symbolizes communication, conversation, and the act of sharing thoughts or information through dialogue or messages.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.59.0", "tags": ["comment", "chat", "conversation", "dialog", "feedback", "speech", "bubble", "sms", "texting", "messaging", "dm", "discussion", "thread", "transcript", "written", "writing", "lines", "support", "chatbot"], "categories": ["social"], "timestamp": "2026-10-18T15:12:33.171004+00:00"}
1909
+ {"name": "groceries", "description": "This icon depicts a shopping bag overflowing with fresh produce, including leafy greens and other vegetables. It represents healthy eating, fresh food, and the concept of grocery shopping or obtaining provisions from a market.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.59.0", "tags": ["food", "vegetables", "health", "grocery", "market", "farmer", "produce", "pantry", "paper bag", "shop", "supermarket", "retail", "delivery", "larder", "provisions", "takeout"], "categories": ["food-beverage"], "timestamp": "2026-10-18T15:12:33.171923+00:00"}
1910
+ {"name": "calendar-chevrons-left", "description": "This icon depicts a calendar with two left-pointing chevrons. It symbolizes navigating backward through dates, weeks, or months, representing actions like returning to a previous event or accessing past information. It evokes a sense of historical perspective or a desire to revisit earlier entries.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.59.0", "tags": ["navigation", "arrow", "direction", "symbol", "pointer", "indicator", "next", "menu", "date", "day", "month", "year", "events"], "categories": ["time", "arrows", "navigation"], "timestamp": "2026-10-18T15:12:33.179357+00:00"}
1911
+ {"name": "graph-star", "description": "This icon depicts a central node with multiple connected nodes branching outwards, resembling a star or a molecular structure. It represents connections, relationships, networks, and the organization of ideas or data in a structured, interconnected manner.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.59.0", "tags": ["mind map", "network", "hub", "nodes", "links", "connections", "relationships", "dependencies", "bonds", "structure", "topology", "cluster", "thoughts", "ideas", "concepts", "molecule"], "categories": ["development", "charts"], "timestamp": "2026-10-18T15:12:33.190131+00:00"}
1912
+ {"name": "folder-user", "description": "This icon depicts a folder with a simplified user silhouette superimposed, symbolizing personal files, accounts, or ownership. It represents individual data, private access, or a designated user's space within a directory structure, highlighting personal data management and control.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.59.0", "tags": ["directory", "profile", "person", "personal", "contact", "document", "account", "individual", "home folder", "shared", "access", "owner"], "categories": ["files", "account", "social", "people", "security"], "timestamp": "2026-10-18T15:12:33.191785+00:00"}
1913
+ {"name": "certificate", "description": "This icon visually depicts a certificate with a seal. It represents official validation, achievement, recognition, and proof of accomplishment or authorization, evoking trust and security.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.59.0", "tags": ["award", "ribbon", "medal", "achievement", "pinned", "badge", "recognition", "laurel", "commendation", "diploma", "official", "proof", "fact", "verified", "license", "warrant", "authorization", "legal", "ownership", "credential", "ssl", "tls", "security", "trust", "cybersecurity", "authority", "graduation", "study"], "categories": ["connectivity", "security"], "timestamp": "2026-10-18T15:12:33.193788+00:00"}
1914
+ {"name": "mail-dot", "description": "This icon depicts an open envelope with a small dot. It symbolizes an unread message, new communication, or an incoming email notification. The dot signifies something new or requiring attention within the mail system.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.59.0", "tags": ["mail", "envelope", "communication", "post", "send", "address", "notification", "email", "message", "letter", "unread", "dot"], "categories": ["text", "account", "mail"], "timestamp": "2026-10-18T15:12:33.200927+00:00"}
1915
+ {"name": "half-note", "description": "This icon depicts a musical half note, characterized by a filled circle and a vertical stem. It symbolizes music, sound, and auditory content, representing the fundamental element of a musical composition or audio playback.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.59.0", "tags": ["audio", "music", "sound", "note", "crotchet", "minim", "quarter note"], "categories": ["multimedia", "files"], "timestamp": "2026-10-18T15:12:33.202419+00:00"}
1916
+ {"name": "circle-fading-play", "description": "This icon depicts a play button within a circle, with dashed lines radiating outward. It symbolizes the act of starting or playing content, often associated with short-form video or previews. It suggests movement, progress, and a dynamic viewing experience.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.59.0", "tags": ["short clips", "shorts", "reels", "stories", "video", "highlights", "social media", "content", "preview", "teaser", "clip", "short form", "vertical video"], "categories": ["multimedia", "social"], "timestamp": "2026-10-18T15:12:33.203678+00:00"}
1917
+ {"name": "eighth-notes", "description": "This icon visually depicts two connected eighth notes, symbolizing musical notation and auditory elements. It represents concepts like music, sound, rhythm, and melodic expression, evoking feelings associated with listening to or creating tunes.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.59.0", "tags": ["audio", "music", "sound", "notes", "quavers"], "categories": ["multimedia", "files"], "timestamp": "2026-10-18T15:12:33.214965+00:00"}
1918
+ {"name": "handle-bottom-right", "description": "This icon depicts two parallel diagonal lines in the bottom-right corner, resembling a resizing handle. It signifies actions like grabbing, moving, dragging, or resizing elements, suggesting control and manipulation of digital content.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.59.0", "tags": ["mouse", "grab", "handle", "move", "drag", "resize", "corner"], "categories": ["design"], "timestamp": "2026-10-18T15:12:33.225529+00:00"}
1919
+ {"name": "phone-log", "description": "This icon depicts a classic telephone handset with three horizontal lines beside it. It represents a record of past phone calls, communication history, or incoming/outgoing call activity, suggesting organized contact data and call logs.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.59.0", "tags": ["telephone", "communication", "mobile", "device", "contact", "history", "data", "information", "call"], "categories": ["communication"], "timestamp": "2026-10-18T15:12:33.237195+00:00"}
1920
+ {"name": "folder-users", "description": "This icon depicts an open folder with two stylized figures representing users. It symbolizes shared access, collaboration, and management of group accounts or team documents, suggesting organized sharing and collective permissions.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.59.0", "tags": ["directory", "profile", "shared", "people", "document", "accounts", "group", "team", "permission", "access", "collaboration", "organization"], "categories": ["files", "account", "social", "people", "security"], "timestamp": "2026-10-18T15:12:33.367088+00:00"}
1921
+ {"name": "eighth-note", "description": "This icon depicts an eighth note, a musical symbol representing a short duration of sound. It conveys concepts of music, melody, rhythm, and auditory experiences.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.59.0", "tags": ["audio", "music", "sound", "note", "quaver"], "categories": ["multimedia", "files"], "timestamp": "2026-10-18T15:12:33.646620+00:00"}
1922
+ {"name": "users-collaboration", "description": "Two abstract user silhouettes are connected by curved lines, suggesting interaction and shared activity. This icon represents collaboration, teamwork, communication, and the dynamic exchange of ideas or tasks between individuals or a group.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.59.0", "tags": ["group", "people", "collaboration", "users", "team", "communication", "cooperative", "workspace", "peer-to-peer", "p2p", "shared", "delegation", "handoff", "coauthor", "profiles"], "categories": ["account", "people", "communication"], "timestamp": "2026-10-18T15:12:33.752127+00:00"}
1923
+ {"name": "shield-house", "description": "This icon features a protective shield overlaying a simple house outline. It signifies robust home security, representing safety, protection, and strong defense for one's residence. The image conveys a sense of vigilance and assurance against threats.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.59.0", "tags": ["cybersecurity", "secure", "safety", "protection", "guardian", "armored", "armoured", "defense", "defence", "defender", "block", "threat", "prevention", "antivirus", "vigilance", "vigilant", "detection", "scan", "strength", "strong", "tough", "invincible", "invincibility", "invulnerable", "undamaged", "audit", "admin", "property", "household", "connectivity", "building", "residence"], "categories": ["account", "security", "development", "home", "connectivity"], "timestamp": "2026-10-18T15:12:33.757038+00:00"}
1924
+ {"name": "sixteenth-notes", "description": "This icon visually represents two sixteenth notes, also known as semiquavers, connected by a beam. It symbolizes music, sound, and audio, evoking a sense of melody, rhythm, and the act of listening or playing music.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.59.0", "tags": ["audio", "music", "sound", "notes", "semiquavers"], "categories": ["multimedia", "files"], "timestamp": "2026-10-18T15:12:33.870569+00:00"}
1925
+ {"name": "wifi-lock", "description": "This icon visually represents a Wi-Fi signal with a padlock superimposed on it. It signifies secure wireless connections, protected networks, and the concept of authenticated access to a private or encrypted hotspot.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.59.0", "tags": ["admin", "connection", "secure", "security", "signal", "network", "password", "wireless", "hotspot", "encrypted", "locked", "private", "ssid", "guest", "router", "access", "authentication", "protected"], "categories": ["connectivity", "devices", "security"], "timestamp": "2026-10-18T15:12:33.888373+00:00"}
1926
+ {"name": "screw", "description": "This icon depicts a screw with a slotted head and threaded shaft. It represents fastening, repair, assembly, and DIY projects, symbolizing secure connections and hands-on creation.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.59.0", "tags": ["fastener", "hardware", "bolt", "screwdriver", "repair", "assembly", "diy", "flathead"], "categories": ["tools"], "timestamp": "2026-10-18T15:12:33.899234+00:00"}
1927
+ {"name": "users-round-collaboration", "description": "This icon visually depicts two stylized figures interacting within a circular flow. It represents concepts of teamwork, connection, and shared effort, symbolizing collaboration, communication, and the dynamic exchange between individuals working together towards a common goal.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.59.0", "tags": ["group", "people", "collaboration", "users", "team", "communication", "cooperative", "workspace", "peer-to-peer", "p2p", "shared", "delegation", "handoff", "coauthor", "profiles"], "categories": ["account", "people", "communication"], "timestamp": "2026-10-18T15:12:33.907998+00:00"}
1928
+ {"name": "user-round-star", "description": "This icon visually represents a stylized person icon adjacent to a star. It signifies a featured user, a favorite contact, a positive review, or a verified account. The star suggests excellence, endorsement, or special status.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.59.0", "tags": ["person", "account", "favorite", "contact", "like", "review", "rating", "admin", "avatar", "profile", "featured", "moderator", "verified", "badge", "award", "champion", "starred"], "categories": ["account"], "timestamp": "2026-10-18T15:12:33.937788+00:00"}
1929
+ {"name": "scratch-blocks", "description": "The icon depicts two interlocking, abstract blocks, suggesting a puzzle or a building process. It represents visual programming, block-based coding, and the creative act of assembling code elements for learning and integration.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.59.0", "tags": ["code", "blocks", "scratch", "turbowarp", "mistwarp", "visual programming", "block-based", "drag-and-drop", "editor", "education", "learning", "programming", "kids", "integration"], "categories": ["development"], "timestamp": "2026-10-18T15:12:33.940221+00:00"}
1930
+ {"name": "server-nas", "description": "This icon visually represents a network-attached storage device, often housing multiple disks. It evokes concepts of data storage, backup, file sharing, and local area networking, signifying robust hardware for managing and distributing digital information.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.59.0", "tags": ["storage", "network", "server", "backup", "raid", "files", "sharing", "disk", "hardware", "lan", "cloud"], "categories": ["devices", "development"], "timestamp": "2026-10-18T15:12:33.947118+00:00"}
1931
+ {"name": "tombstone", "description": "This icon depicts a simple, rounded tombstone with two horizontal lines representing an inscription. It evokes concepts of death, remembrance, memorials, and the finality of life, often associated with cemeteries and funerals.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.61.0", "tags": ["grave", "gravestone", "headstone", "cemetery", "graveyard", "death", "memorial", "funeral", "halloween", "rip", "obituary", "deceased", "epitaph", "mourning", "bereavement", "condolence", "deprecated", "retired", "archived", "decommissioned"], "categories": ["gaming", "navigation", "people", "development"], "timestamp": "2026-10-22T17:51:24.629752+00:00"}
1932
+ {"name": "line-height", "description": "This icon depicts the letter \"A\" centered between two horizontal lines. It visually represents the concept of line height or leading in typography, illustrating the vertical spacing between lines of text to improve readability and aesthetic presentation.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.61.0", "tags": ["leading", "text", "letters", "characters", "font", "typography", "spacing", "paragraph", "formatting", "editor", "readability", "typesetting"], "categories": ["text"], "timestamp": "2026-10-22T17:51:24.643352+00:00"}
1933
+ {"name": "smartphone-user-round", "description": "This icon shows a simplified outline of a smartphone with a person's silhouette positioned to the side. It visually represents managing a user profile on a mobile device, signifying personal accounts, identity management, and device ownership.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.61.0", "tags": ["phone", "cellphone", "device", "mobile", "person", "profile", "account", "avatar", "contact", "identity", "owner", "authentication"], "categories": ["account", "devices", "people"], "timestamp": "2026-10-22T17:51:24.661708+00:00"}
1934
+ {"name": "avocado", "description": "This icon depicts a halved avocado with its pit. It represents healthy eating, nutritious ingredients, and the vibrant flavors of Mexican cuisine, often associated with snacks, meals, and plant-based diets.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.61.0", "tags": ["fruit", "snack", "meal", "lunch", "ingredient", "cooking", "cookery", "kitchen", "cuisine", "eating", "healthy", "nutrition", "diet", "guacamole", "mexican", "green", "pit", "seed", "half", "produce", "vegetarian", "vegan", "grocery", "supermarket", "toast", "superfood", "plant based", "ripe"], "categories": ["food-beverage"], "timestamp": "2026-10-22T17:51:24.687912+00:00"}
1935
+ {"name": "graph-hub", "description": "This icon shows a central node connected to three outward branching nodes. It visually represents distribution, connection, and the organization of data or processes, embodying concepts of networking, parallelization, and hierarchical routing.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.61.0", "tags": ["load balancer", "distribute", "traffic", "network", "nodes", "parallel", "branch", "hierarchy", "routing", "dispatcher", "cluster", "backend", "fan-out", "topology", "orchestration"], "categories": ["connectivity", "development"], "timestamp": "2026-10-22T17:51:24.771466+00:00"}
1936
+ {"name": "circle-chevrons-left", "description": "This icon features two chevrons pointing left, enclosed within a circle. It visually represents moving backward or skipping to the beginning, suggesting actions like rewinding, going to the previous track, or returning to the start.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.61.0", "tags": ["previous", "rewind", "backward", "first", "beginning", "start", "west", "music", "caret", "button", "pagination", "skip", "skip-back", "seek-back", "media-controls", "player", "playlist", "track", "chapter", "jump", "timeline", "controls"], "categories": ["arrows", "navigation", "multimedia"], "timestamp": "2026-10-22T17:51:24.810143+00:00"}
1937
+ {"name": "circle-chevrons-right", "description": "This icon features two chevrons pointing right, enclosed within a circle. It visually represents forward motion, progress, and skipping ahead. It can also signify advancement, quick progression, or reaching the end.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.61.0", "tags": ["next", "forward", "skip", "fast forward", "last", "end", "east", "music", "caret", "button", "pagination", "jump", "seek", "seek forward", "player control", "chapter", "track", "timeline", "navigation control"], "categories": ["arrows", "navigation", "multimedia"], "timestamp": "2026-10-22T17:51:24.815100+00:00"}
1938
+ {"name": "brain-off", "description": "This icon visually represents a stylized brain with a diagonal line striking through it. It symbolizes concepts like mental rest, a pause in thinking, or the absence of cognitive activity, suggesting a shutdown or deactivation of the mind.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.61.0", "tags": ["medical", "mind", "mental", "intellect", "cerebral", "consciousness", "genius", "artificial intelligence", "ai", "think", "deep learning", "machine learning", "computing"], "categories": ["medical", "science", "development"], "timestamp": "2026-10-22T17:51:24.841486+00:00"}
1939
+ {"name": "circle-chevrons-up", "description": "This icon shows two upward-pointing chevrons within a circle. It symbolizes ascending, jumping to the top, or fast scrolling upwards. It represents progress, moving towards a goal, or returning to the beginning quickly.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.61.0", "tags": ["top", "ascend", "page", "page up", "back to top", "scroll", "jump", "north", "caret", "button", "skip", "pagination", "first page", "fast", "fast scroll", "rewind", "jump to start", "floating action button", "anchor", "timeline"], "categories": ["arrows", "navigation"], "timestamp": "2026-10-22T17:51:24.844362+00:00"}
1940
+ {"name": "circle-chevrons-down", "description": "This icon features two downward-pointing chevrons nested within a circle. It signifies a downward motion, progress to the end or bottom of content, or a fast scroll action. It also represents a jump or skip to the latest item in a feed or chat.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.61.0", "tags": ["bottom", "descend", "page", "page down", "scroll", "jump", "south", "caret", "button", "skip", "end", "last page", "latest", "feed", "chat", "pagination", "fast", "media"], "categories": ["arrows", "navigation"], "timestamp": "2026-10-22T17:51:24.845799+00:00"}
1941
+ {"name": "bacon", "description": "This icon visually depicts a wavy strip of bacon, often associated with breakfast and savory meals. It evokes the concept of delicious, indulgent food, representing a common ingredient in various dishes and a popular culinary item.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.61.0", "tags": ["rashers", "smoked", "streaky", "crispy", "meat", "fast food", "junk food", "snack", "dish", "restaurant", "brunch", "lunch", "meal", "savory", "savoury", "cookery", "cooking", "grilled", "barbecue", "barbeque", "bbq", "pig", "pork", "breakfast", "cured", "butcher", "sandwich", "protein", "grocery", "kitchen"], "categories": ["food-beverage"], "timestamp": "2026-10-22T17:51:24.848759+00:00"}
1942
+ {"name": "letter-spacing", "description": "This icon visually represents the letter \"A\" enclosed by vertical lines, symbolizing spacing. It conveys the concept of adjusting the space between letters or characters, essential for text formatting and design. It suggests control over typography and visual aesthetics.", "model": "gemini-2.5-flash-lite", "prompt_template_hash": "7ae15a902cba", "lucide_version": "1.61.0", "tags": ["tracking", "kerning", "design", "lettering", "text", "letters", "characters", "font", "typography", "formatting"], "categories": ["text"], "timestamp": "2026-10-22T17:51:24.852628+00:00"}