@luscious-garden/aster-icons 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,58 +1,51 @@
1
1
  # @luscious-garden/aster-icons
2
2
 
3
- Canonical portable TypeScript icon and collection definitions for Aster.
4
-
5
- The package depends only on `@luscious-garden/aster-core`. Every icon and collection has an isolated public
6
- subpath; no package-wide definition root is exported. `@luscious-garden/aster-icons/manifest` provides
7
- metadata-only discovery without loading complete definitions, while `@luscious-garden/aster-icons/dynamic`
8
- resolves identities asynchronously without eager catalogue evaluation. These runtime boundaries
9
- do not change npm acquisition: installing `@luscious-garden/aster-icons` acquires the complete published package.
10
- The package contains no renderer, framework, DOM, filesystem, Import, or global catalogue
11
- dependency.
12
- The example below assumes `@luscious-garden/aster-svg` is installed independently by the consumer.
13
-
14
- Install both packages for this example with
15
- `pnpm add @luscious-garden/aster-icons@0.1.0 @luscious-garden/aster-svg@0.1.0`.
16
- To use a definition without SVG rendering, install only `@luscious-garden/aster-icons`; it brings
17
- its compatible Core dependency.
18
-
19
- Canonical `*.icon.ts` and `*.collection.ts` modules are editable sources. Package builds
20
- deterministically synchronise their manifests, exact loader maps and stable public facades before
21
- compilation.
3
+ Canonical portable Aster icons and collections, distributed through isolated public subpaths.
4
+ The package brings its compatible Core dependency; it does not render markup.
5
+
6
+ ## Usage
7
+
8
+ ```sh
9
+ pnpm add @luscious-garden/aster-icons
10
+ ```
11
+
12
+ ### Individual icons
22
13
 
23
14
  ```ts
24
- import { ArrowLeft } from "@luscious-garden/aster-icons/arrow-left";
25
- import { Svg } from "@luscious-garden/aster-svg";
15
+ import { Camera } from "@luscious-garden/aster-icons/camera";
26
16
 
27
- const markup = Svg.render(ArrowLeft);
17
+ const definition = Camera;
28
18
  ```
29
19
 
30
- Collections expose icons by typed local alias and provide an ordered list for iteration:
20
+ Pass the definition to a renderer such as
21
+ [SVG](https://github.com/BlueLuscious/aster/blob/master/docs/en/packages/svg/index.md).
22
+
23
+ ### Collections
24
+
25
+ Access a collection's icons by alias or in their declared order:
31
26
 
32
27
  ```ts
33
- import { AmellusCollection } from "@luscious-garden/aster-icons/collections/amellus";
28
+ import { Amellus } from "@luscious-garden/aster-icons/collections/amellus";
34
29
 
35
- const cameraMarkup = Svg.render(AmellusCollection.icons.camera);
36
- const collectionMarkup = AmellusCollection.members.map((icon) => Svg.render(icon));
30
+ const camera = Amellus.icons.camera;
31
+ const orderedIcons = Amellus.members;
37
32
  ```
38
33
 
39
- Both views contain the same canonical icon objects. Importing Amellus evaluates all its declared
40
- members even when only `.icons.camera` is read; import `@luscious-garden/aster-icons/camera` directly
41
- when only that icon is needed.
34
+ See the
35
+ [Collections guide](https://github.com/BlueLuscious/aster/blob/master/docs/en/packages/icons/collections/index.md)
36
+ for the contract and export-naming migration.
37
+
38
+ Use an individual subpath when only one icon is needed; a collection import evaluates all its
39
+ declared members. Installation acquires the complete package, independently of runtime imports.
42
40
 
43
- The [release notes](https://github.com/BlueLuscious/aster/blob/master/docs/en/packages/icons/releases.md)
44
- describe migration from earlier candidates.
41
+ ## Documentation
45
42
 
46
- The package currently provides the accepted Amellus foundational collection. See the
47
- [canonical package documentation](https://github.com/BlueLuscious/aster/blob/master/docs/en/packages/icons/index.md),
48
- [authoring workflow](https://github.com/BlueLuscious/aster/blob/master/docs/en/packages/icons/workflow.md),
49
- [release notes](https://github.com/BlueLuscious/aster/blob/master/docs/en/packages/icons/releases.md) and
50
- [Amellus collection authority](https://github.com/BlueLuscious/aster/blob/master/docs/en/collections/amellus/index.md).
43
+ - [Package guide](https://github.com/BlueLuscious/aster/blob/master/docs/en/packages/icons/index.md): definitions, collections, metadata discovery and dynamic loaders.
44
+ - [Authoring](https://github.com/BlueLuscious/aster/blob/master/docs/en/packages/icons/workflow.md): editable sources and generated distribution.
45
+ - [Amellus](https://github.com/BlueLuscious/aster/blob/master/docs/en/collections/amellus/index.md): collection identity and visual rules.
46
+ - [Version history](https://github.com/BlueLuscious/aster/blob/master/docs/en/packages/icons/releases/index.md): changes and migrations.
51
47
 
52
48
  ## Licence
53
49
 
54
- The software and documentation are licensed under [ISC](LICENSE). BlueLuscious-owned icon and
55
- collection artwork marked with `LicenseRef-Aster-Artwork-1.0` follows the separate
56
- [Aster Artwork Licence](ARTWORK-LICENCE.md), which permits commercial use in products but not
57
- sale of the artwork as a standalone asset. Other artwork retains its declared terms. Software
58
- and artwork may appear in the same `*.icon.ts` module.
50
+ Software and documentation follow [ISC](LICENSE). Marked BlueLuscious-owned artwork follows the
51
+ separate [Aster Artwork Licence](ARTWORK-LICENCE.md); other artwork retains its declared terms.
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @description Canonical Amellus collection containing the foundational general-purpose icon set.
3
3
  */
4
- export declare const AmellusCollection: import("@luscious-garden/aster-core").CollectionDefinition<{
4
+ export declare const Amellus: import("@luscious-garden/aster-core").CollectionDefinition<{
5
5
  arrowLeft: import("@luscious-garden/aster-core").IconDefinition;
6
6
  arrowRight: import("@luscious-garden/aster-core").IconDefinition;
7
7
  arrowUp: import("@luscious-garden/aster-core").IconDefinition;
@@ -29,7 +29,7 @@ import { Warning } from "../../../glyphs/w/warning/warning.icon.js";
29
29
  /**
30
30
  * @description Canonical Amellus collection containing the foundational general-purpose icon set.
31
31
  */
32
- export const AmellusCollection = Collection.define({
32
+ export const Amellus = Collection.define({
33
33
  identity: {
34
34
  name: "amellus",
35
35
  },
@@ -1,9 +1,11 @@
1
1
  import type { CollectionDefinitionLoaderMap, IconDefinitionLoaderMap } from "../../dynamic/contracts/index.js";
2
2
  /**
3
3
  * @description Immutable exact asynchronous loaders for distributed Aster icon definitions.
4
+ * @remarks Prototype-free lookup resolves absent keys without inherited fallback.
4
5
  */
5
6
  export declare const AsterIconLoaders: IconDefinitionLoaderMap;
6
7
  /**
7
8
  * @description Immutable exact asynchronous loaders for distributed Aster collections.
9
+ * @remarks Prototype-free lookup resolves absent keys without inherited fallback.
8
10
  */
9
11
  export declare const AsterCollectionLoaders: CollectionDefinitionLoaderMap;
@@ -1,9 +1,10 @@
1
1
  // Generated by `pnpm --dir packages/icons run generate:catalogue`.
2
2
  // Canonical definition modules are the source of truth. Do not edit manually.
3
3
  /**
4
- * @description Immutable exact asynchronous loaders for distributed Aster icon definitions.
4
+ * @description Exact loader entries for distributed Aster icon definitions before immutable publication.
5
+ * @remarks The local object is exported only after prototype removal and freezing.
5
6
  */
6
- export const AsterIconLoaders = Object.freeze({
7
+ const iconLoaders = {
7
8
  "aster/arrow-down": Object.freeze(() => import("../facades/icons/arrow-down.js").then(({ ArrowDown }) => ArrowDown)),
8
9
  "aster/arrow-left": Object.freeze(() => import("../facades/icons/arrow-left.js").then(({ ArrowLeft }) => ArrowLeft)),
9
10
  "aster/arrow-right": Object.freeze(() => import("../facades/icons/arrow-right.js").then(({ ArrowRight }) => ArrowRight)),
@@ -30,10 +31,23 @@ export const AsterIconLoaders = Object.freeze({
30
31
  "aster/star": Object.freeze(() => import("../facades/icons/star.js").then(({ Star }) => Star)),
31
32
  "aster/user": Object.freeze(() => import("../facades/icons/user.js").then(({ User }) => User)),
32
33
  "aster/warning": Object.freeze(() => import("../facades/icons/warning.js").then(({ Warning }) => Warning)),
33
- });
34
+ };
35
+ Object.setPrototypeOf(iconLoaders, null);
36
+ /**
37
+ * @description Immutable exact asynchronous loaders for distributed Aster icon definitions.
38
+ * @remarks Prototype-free lookup resolves absent keys without inherited fallback.
39
+ */
40
+ export const AsterIconLoaders = Object.freeze(iconLoaders);
41
+ /**
42
+ * @description Exact loader entries for distributed Aster collections before immutable publication.
43
+ * @remarks The local object is exported only after prototype removal and freezing.
44
+ */
45
+ const collectionLoaders = {
46
+ "amellus": Object.freeze(() => import("../facades/collections/amellus.js").then(({ Amellus }) => Amellus)),
47
+ };
48
+ Object.setPrototypeOf(collectionLoaders, null);
34
49
  /**
35
50
  * @description Immutable exact asynchronous loaders for distributed Aster collections.
51
+ * @remarks Prototype-free lookup resolves absent keys without inherited fallback.
36
52
  */
37
- export const AsterCollectionLoaders = Object.freeze({
38
- "amellus": Object.freeze(() => import("../facades/collections/amellus.js").then(({ AmellusCollection }) => AmellusCollection)),
39
- });
53
+ export const AsterCollectionLoaders = Object.freeze(collectionLoaders);
@@ -1 +1 @@
1
- export { AmellusCollection } from "../../../collections/a/amellus/amellus.collection.js";
1
+ export { Amellus } from "../../../collections/a/amellus/amellus.collection.js";
@@ -1,3 +1,3 @@
1
1
  // Generated by `pnpm --dir packages/icons run generate:catalogue`.
2
2
  // Canonical definition modules are the source of truth. Do not edit manually.
3
- export { AmellusCollection } from "../../../collections/a/amellus/amellus.collection.js";
3
+ export { Amellus } from "../../../collections/a/amellus/amellus.collection.js";
@@ -378,7 +378,7 @@ export const AsterCollectionManifest = Object.freeze([
378
378
  identity: Object.freeze({
379
379
  name: "amellus",
380
380
  }),
381
- symbol: "AmellusCollection",
381
+ symbol: "Amellus",
382
382
  metadata: Object.freeze({
383
383
  displayName: "Amellus",
384
384
  description: "Minimalist general-purpose outline icons for application interfaces.",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@luscious-garden/aster-icons",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "Canonical portable Aster icon and collection definitions.",
5
5
  "type": "module",
6
6
  "author": "BlueLuscious",
@@ -43,7 +43,7 @@
43
43
  "dist"
44
44
  ],
45
45
  "dependencies": {
46
- "@luscious-garden/aster-core": "^0.1.0"
46
+ "@luscious-garden/aster-core": "^0.1.1"
47
47
  },
48
48
  "scripts": {
49
49
  "build": "pnpm run generate:catalogue && pnpm run clean && tsc -p tsconfig.json",