@marcusv/roc 0.1.2 → 0.2.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.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Marcus Vorwaller
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -7,7 +7,7 @@ A handcrafted SVG icon library with React, Svelte, and sprite outputs. Every ico
7
7
  ## Install
8
8
 
9
9
  ```bash
10
- npm install @marcus/roc
10
+ npm install @marcusv/roc
11
11
  ```
12
12
 
13
13
  Requires Node.js 22+. The only runtime dependency is `svgo`.
@@ -17,7 +17,7 @@ Requires Node.js 22+. The only runtime dependency is `svgo`.
17
17
  ### React
18
18
 
19
19
  ```jsx
20
- import { Home, Bell, Search } from '@marcus/roc/react/outline';
20
+ import { Home, Bell, Search } from '@marcusv/roc/react/outline';
21
21
 
22
22
  function App() {
23
23
  return (
@@ -34,10 +34,10 @@ Each style has its own entry point:
34
34
 
35
35
  ```jsx
36
36
  // Single style
37
- import { Home } from '@marcus/roc/react/outline';
38
- import { Home } from '@marcus/roc/react/solid';
39
- import { Home } from '@marcus/roc/react/duotone';
40
- import { Home } from '@marcus/roc/react/sharp';
37
+ import { Home } from '@marcusv/roc/react/outline';
38
+ import { Home } from '@marcusv/roc/react/solid';
39
+ import { Home } from '@marcusv/roc/react/duotone';
40
+ import { Home } from '@marcusv/roc/react/sharp';
41
41
  ```
42
42
 
43
43
  Stroked icons (outline, duotone, sharp) accept a `strokeWidth` prop. Default stroke width adjusts automatically: `1.75` at 16px, `1.5` at 20px+.
@@ -46,8 +46,8 @@ Stroked icons (outline, duotone, sharp) accept a `strokeWidth` prop. Default str
46
46
 
47
47
  ```svelte
48
48
  <script>
49
- import Home from '@marcus/roc/svelte/outline/Home.svelte';
50
- import Bell from '@marcus/roc/svelte/solid/Bell.svelte';
49
+ import Home from '@marcusv/roc/svelte/outline/Home.svelte';
50
+ import Bell from '@marcusv/roc/svelte/solid/Bell.svelte';
51
51
  </script>
52
52
 
53
53
  <Home size={24} class="icon" />
@@ -73,7 +73,7 @@ Optimized SVGs are available at `dist/svg/{style}/{name}.svg` for direct use in
73
73
  ### Metadata
74
74
 
75
75
  ```js
76
- import metadata from '@marcus/roc/metadata';
76
+ import metadata from '@marcusv/roc/metadata';
77
77
  // { icons: [...], categories: [...], total: N }
78
78
  ```
79
79
 
@@ -110,12 +110,12 @@ Individual stages: `npm run build:svg`, `build:react`, `build:svelte`, `build:sp
110
110
 
111
111
  ## Adding Icons
112
112
 
113
- See [CLAUDE.md](CLAUDE.md) for the complete icon creation guide. The short version:
113
+ See [AGENTS.md](AGENTS.md) for the SVG style guide. The release workflow has two steps:
114
114
 
115
115
  1. Create 4 SVGs in `src/svg/{outline,solid,duotone,sharp}/icon-name.svg`
116
- 2. Add metadata to `src/icons.json` (label, description, category, tags)
117
- 3. Run `npm run build`
118
- 4. Verify in the demo page with `npm run preview`
116
+ 2. Run `npm run release:icons`
117
+
118
+ That command discovers the changed icon, adds metadata defaults, validates all four variants, rebuilds the package and preview, runs the package checks, chooses the next version, commits, tags, publishes to npm, deploys the public preview, and pushes the release. Authentication uses `ROC_NPM_TOKEN` first, then `NPM_TOKEN`, from the environment or `~/.secrets`. Run `npm run release:icons -- --help` to see metadata overrides, `--check`, `--dry-run`, and release options.
119
119
 
120
120
  ## License
121
121
 
@@ -9124,6 +9124,30 @@
9124
9124
  "sharp"
9125
9125
  ]
9126
9126
  },
9127
+ {
9128
+ "name": "theme-system",
9129
+ "label": "Theme System",
9130
+ "description": "Half sun, half moon disc for follow-system and automatic theme mode",
9131
+ "category": "System",
9132
+ "tags": [
9133
+ "theme",
9134
+ "mode",
9135
+ "system",
9136
+ "auto",
9137
+ "automatic",
9138
+ "light",
9139
+ "dark",
9140
+ "sun",
9141
+ "moon",
9142
+ "appearance"
9143
+ ],
9144
+ "styles": [
9145
+ "outline",
9146
+ "solid",
9147
+ "duotone",
9148
+ "sharp"
9149
+ ]
9150
+ },
9127
9151
  {
9128
9152
  "name": "thermometer",
9129
9153
  "label": "Thermometer",
@@ -10747,7 +10771,7 @@
10747
10771
  "Sports",
10748
10772
  "Countries"
10749
10773
  ],
10750
- "totalCount": 2012,
10774
+ "totalCount": 2016,
10751
10775
  "styles": [
10752
10776
  "outline",
10753
10777
  "solid",
@@ -0,0 +1,13 @@
1
+ import { forwardRef } from 'react';
2
+
3
+ const ThemeSystem = forwardRef(({ size = 24, strokeWidth, className, ...props }, ref) => {
4
+ const sw = strokeWidth ?? (size <= 16 ? 1.75 : 1.5);
5
+ return (
6
+ <svg ref={ref} xmlns="http://www.w3.org/2000/svg" width={size} height={size} viewBox="0 0 24 24" fill="none" className={className} {...props}>
7
+ <circle cx="12" cy="12" r="5.5" fill="var(--color-duotone-fill)" stroke="currentColor" strokeWidth={sw}/><path fill="currentColor" d="M12 6.5a5.5 5.5 0 0 1 0 11z"/><path stroke="currentColor" strokeLinecap="round" strokeWidth={sw} d="M12 2.5v1.8m0 15.4v1.8M2.5 12h1.8m.75-6.95 1.27 1.27M5.05 18.95l1.27-1.27"/>
8
+ </svg>
9
+ );
10
+ });
11
+
12
+ ThemeSystem.displayName = 'ThemeSystem';
13
+ export default ThemeSystem;
@@ -426,6 +426,7 @@ export { default as Telescope } from './Telescope.jsx';
426
426
  export { default as Terminal } from './Terminal.jsx';
427
427
  export { default as Tesla } from './Tesla.jsx';
428
428
  export { default as TextAa } from './TextAa.jsx';
429
+ export { default as ThemeSystem } from './ThemeSystem.jsx';
429
430
  export { default as Thermometer } from './Thermometer.jsx';
430
431
  export { default as ThermometerMedical } from './ThermometerMedical.jsx';
431
432
  export { default as Thinking } from './Thinking.jsx';
@@ -1719,6 +1719,10 @@ export declare const TextAaDuotone: Icon;
1719
1719
  export declare const TextAaOutline: Icon;
1720
1720
  export declare const TextAaSharp: Icon;
1721
1721
  export declare const TextAaSolid: Icon;
1722
+ export declare const ThemeSystemDuotone: Icon;
1723
+ export declare const ThemeSystemOutline: Icon;
1724
+ export declare const ThemeSystemSharp: Icon;
1725
+ export declare const ThemeSystemSolid: Icon;
1722
1726
  export declare const ThermometerDuotone: Icon;
1723
1727
  export declare const ThermometerMedicalDuotone: Icon;
1724
1728
  export declare const ThermometerMedicalOutline: Icon;
@@ -1710,6 +1710,10 @@ export { default as TextAaDuotone } from './duotone/TextAa.jsx';
1710
1710
  export { default as TextAaOutline } from './outline/TextAa.jsx';
1711
1711
  export { default as TextAaSharp } from './sharp/TextAa.jsx';
1712
1712
  export { default as TextAaSolid } from './solid/TextAa.jsx';
1713
+ export { default as ThemeSystemDuotone } from './duotone/ThemeSystem.jsx';
1714
+ export { default as ThemeSystemOutline } from './outline/ThemeSystem.jsx';
1715
+ export { default as ThemeSystemSharp } from './sharp/ThemeSystem.jsx';
1716
+ export { default as ThemeSystemSolid } from './solid/ThemeSystem.jsx';
1713
1717
  export { default as ThermometerDuotone } from './duotone/Thermometer.jsx';
1714
1718
  export { default as ThermometerMedicalDuotone } from './duotone/ThermometerMedical.jsx';
1715
1719
  export { default as ThermometerMedicalOutline } from './outline/ThermometerMedical.jsx';
@@ -0,0 +1,13 @@
1
+ import { forwardRef } from 'react';
2
+
3
+ const ThemeSystem = forwardRef(({ size = 24, strokeWidth, className, ...props }, ref) => {
4
+ const sw = strokeWidth ?? (size <= 16 ? 1.75 : 1.5);
5
+ return (
6
+ <svg ref={ref} xmlns="http://www.w3.org/2000/svg" width={size} height={size} viewBox="0 0 24 24" fill="none" className={className} {...props}>
7
+ <circle cx="12" cy="12" r="5.5" stroke="currentColor" strokeWidth={sw}/><path fill="currentColor" d="M12 6.5a5.5 5.5 0 0 1 0 11z"/><path stroke="currentColor" strokeLinecap="round" strokeWidth={sw} d="M12 2.5v1.8m0 15.4v1.8M2.5 12h1.8m.75-6.95 1.27 1.27M5.05 18.95l1.27-1.27"/>
8
+ </svg>
9
+ );
10
+ });
11
+
12
+ ThemeSystem.displayName = 'ThemeSystem';
13
+ export default ThemeSystem;
@@ -426,6 +426,7 @@ export { default as Telescope } from './Telescope.jsx';
426
426
  export { default as Terminal } from './Terminal.jsx';
427
427
  export { default as Tesla } from './Tesla.jsx';
428
428
  export { default as TextAa } from './TextAa.jsx';
429
+ export { default as ThemeSystem } from './ThemeSystem.jsx';
429
430
  export { default as Thermometer } from './Thermometer.jsx';
430
431
  export { default as ThermometerMedical } from './ThermometerMedical.jsx';
431
432
  export { default as Thinking } from './Thinking.jsx';
@@ -0,0 +1,13 @@
1
+ import { forwardRef } from 'react';
2
+
3
+ const ThemeSystem = forwardRef(({ size = 24, strokeWidth, className, ...props }, ref) => {
4
+ const sw = strokeWidth ?? (size <= 16 ? 1.75 : 1.5);
5
+ return (
6
+ <svg ref={ref} xmlns="http://www.w3.org/2000/svg" width={size} height={size} viewBox="0 0 24 24" fill="none" className={className} {...props}>
7
+ <path stroke="currentColor" strokeWidth={sw} d="M7 7h10v10H7z"/><path fill="currentColor" d="M12 7h5v10h-5z"/><path stroke="currentColor" strokeWidth={sw} d="M12 2.5v3M2.5 12h3m-.9-7.4 2.1 2.1M4.6 19.4l2.1-2.1"/>
8
+ </svg>
9
+ );
10
+ });
11
+
12
+ ThemeSystem.displayName = 'ThemeSystem';
13
+ export default ThemeSystem;
@@ -426,6 +426,7 @@ export { default as Telescope } from './Telescope.jsx';
426
426
  export { default as Terminal } from './Terminal.jsx';
427
427
  export { default as Tesla } from './Tesla.jsx';
428
428
  export { default as TextAa } from './TextAa.jsx';
429
+ export { default as ThemeSystem } from './ThemeSystem.jsx';
429
430
  export { default as Thermometer } from './Thermometer.jsx';
430
431
  export { default as ThermometerMedical } from './ThermometerMedical.jsx';
431
432
  export { default as Thinking } from './Thinking.jsx';
@@ -0,0 +1,10 @@
1
+ import { forwardRef } from 'react';
2
+
3
+ const ThemeSystem = forwardRef(({ size = 24, className, ...props }, ref) => (
4
+ <svg ref={ref} xmlns="http://www.w3.org/2000/svg" width={size} height={size} viewBox="0 0 24 24" fill="none" className={className} {...props}>
5
+ <circle cx="12" cy="12" r="6" stroke="currentColor" strokeWidth="1.5"/><path fill="currentColor" d="M12 6a6 6 0 0 1 0 12z"/><path stroke="currentColor" strokeLinecap="round" strokeWidth="1.5" d="M12 2.5v2M2.5 12h2m-.1-7.6 1.4 1.4M4.4 19.6l1.4-1.4"/>
6
+ </svg>
7
+ ));
8
+
9
+ ThemeSystem.displayName = 'ThemeSystem';
10
+ export default ThemeSystem;
@@ -426,6 +426,7 @@ export { default as Telescope } from './Telescope.jsx';
426
426
  export { default as Terminal } from './Terminal.jsx';
427
427
  export { default as Tesla } from './Tesla.jsx';
428
428
  export { default as TextAa } from './TextAa.jsx';
429
+ export { default as ThemeSystem } from './ThemeSystem.jsx';
429
430
  export { default as Thermometer } from './Thermometer.jsx';
430
431
  export { default as ThermometerMedical } from './ThermometerMedical.jsx';
431
432
  export { default as Thinking } from './Thinking.jsx';
package/dist/sprite.svg CHANGED
@@ -5135,6 +5135,18 @@
5135
5135
  <symbol id="text-aa-solid" viewBox="0 0 24 24" fill="none">
5136
5136
  <path fill="currentColor" fill-rule="evenodd" d="M8.03 4.4a.75.75 0 0 1 .7-.48h.04a.75.75 0 0 1 .7.48l4.5 10.85a.75.75 0 0 1-1.39.58L11.41 13H5.09l-1.17 2.83a.75.75 0 1 1-1.39-.58L7.03 4.4Zm-2.32 7.1h5.08L8.25 5.32zM17.5 9.75A2.25 2.25 0 0 0 15.25 12v.5a.75.75 0 0 1-1.5 0V9.75a.75.75 0 0 1 1.5 0 3.75 3.75 0 1 1 0 7.15v.6a.75.75 0 0 1-1.5 0V9.75a.75.75 0 0 1 1.5 0v.24a3.75 3.75 0 0 1 2.25-.24m0 6a2.25 2.25 0 1 0 0-4.5 2.25 2.25 0 0 0 0 4.5" clip-rule="evenodd"/>
5137
5137
  </symbol>
5138
+ <symbol id="theme-system-duotone" viewBox="0 0 24 24" fill="none">
5139
+ <circle cx="12" cy="12" r="5.5" fill="var(--color-duotone-fill)" stroke="currentColor" stroke-width="1.5"/><path fill="currentColor" d="M12 6.5a5.5 5.5 0 0 1 0 11z"/><path stroke="currentColor" stroke-linecap="round" stroke-width="1.5" d="M12 2.5v1.8m0 15.4v1.8M2.5 12h1.8m.75-6.95 1.27 1.27M5.05 18.95l1.27-1.27"/>
5140
+ </symbol>
5141
+ <symbol id="theme-system-outline" viewBox="0 0 24 24" fill="none">
5142
+ <circle cx="12" cy="12" r="5.5" stroke="currentColor" stroke-width="1.5"/><path fill="currentColor" d="M12 6.5a5.5 5.5 0 0 1 0 11z"/><path stroke="currentColor" stroke-linecap="round" stroke-width="1.5" d="M12 2.5v1.8m0 15.4v1.8M2.5 12h1.8m.75-6.95 1.27 1.27M5.05 18.95l1.27-1.27"/>
5143
+ </symbol>
5144
+ <symbol id="theme-system-sharp" viewBox="0 0 24 24" fill="none">
5145
+ <path stroke="currentColor" stroke-width="1.5" d="M7 7h10v10H7z"/><path fill="currentColor" d="M12 7h5v10h-5z"/><path stroke="currentColor" stroke-width="1.5" d="M12 2.5v3M2.5 12h3m-.9-7.4 2.1 2.1M4.6 19.4l2.1-2.1"/>
5146
+ </symbol>
5147
+ <symbol id="theme-system-solid" viewBox="0 0 24 24" fill="none">
5148
+ <circle cx="12" cy="12" r="6" stroke="currentColor" stroke-width="1.5"/><path fill="currentColor" d="M12 6a6 6 0 0 1 0 12z"/><path stroke="currentColor" stroke-linecap="round" stroke-width="1.5" d="M12 2.5v2M2.5 12h2m-.1-7.6 1.4 1.4M4.4 19.6l1.4-1.4"/>
5149
+ </symbol>
5138
5150
  <symbol id="thermometer-duotone" viewBox="0 0 24 24" fill="none">
5139
5151
  <path fill="var(--color-duotone-fill)" d="M14 14.76V4.5a2 2 0 1 0-4 0v10.26a4 4 0 1 0 4 0"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M14 14.76V4.5a2 2 0 1 0-4 0v10.26a4 4 0 1 0 4 0"/><path stroke="currentColor" stroke-linecap="round" stroke-width="1.5" d="M12 17.5v-6"/>
5140
5152
  </symbol>
@@ -0,0 +1,8 @@
1
+ <script>
2
+ let { size = 24, ...rest } = $props();
3
+ let sw = $derived(size <= 16 ? 1.75 : 1.5);
4
+ </script>
5
+
6
+ <svg xmlns="http://www.w3.org/2000/svg" width={size} height={size} viewBox="0 0 24 24" fill="none" {...rest}>
7
+ <circle cx="12" cy="12" r="5.5" fill="var(--color-duotone-fill)" stroke="currentColor" stroke-width="{sw}"/><path fill="currentColor" d="M12 6.5a5.5 5.5 0 0 1 0 11z"/><path stroke="currentColor" stroke-linecap="round" stroke-width="{sw}" d="M12 2.5v1.8m0 15.4v1.8M2.5 12h1.8m.75-6.95 1.27 1.27M5.05 18.95l1.27-1.27"/>
8
+ </svg>
@@ -438,6 +438,7 @@ export declare const Telescope: Icon;
438
438
  export declare const Terminal: Icon;
439
439
  export declare const Tesla: Icon;
440
440
  export declare const TextAa: Icon;
441
+ export declare const ThemeSystem: Icon;
441
442
  export declare const Thermometer: Icon;
442
443
  export declare const ThermometerMedical: Icon;
443
444
  export declare const Thinking: Icon;
@@ -426,6 +426,7 @@ export { default as Telescope } from './Telescope.svelte';
426
426
  export { default as Terminal } from './Terminal.svelte';
427
427
  export { default as Tesla } from './Tesla.svelte';
428
428
  export { default as TextAa } from './TextAa.svelte';
429
+ export { default as ThemeSystem } from './ThemeSystem.svelte';
429
430
  export { default as Thermometer } from './Thermometer.svelte';
430
431
  export { default as ThermometerMedical } from './ThermometerMedical.svelte';
431
432
  export { default as Thinking } from './Thinking.svelte';
@@ -1722,6 +1722,10 @@ export declare const TextAaDuotone: Icon;
1722
1722
  export declare const TextAaOutline: Icon;
1723
1723
  export declare const TextAaSharp: Icon;
1724
1724
  export declare const TextAaSolid: Icon;
1725
+ export declare const ThemeSystemDuotone: Icon;
1726
+ export declare const ThemeSystemOutline: Icon;
1727
+ export declare const ThemeSystemSharp: Icon;
1728
+ export declare const ThemeSystemSolid: Icon;
1725
1729
  export declare const ThermometerDuotone: Icon;
1726
1730
  export declare const ThermometerMedicalDuotone: Icon;
1727
1731
  export declare const ThermometerMedicalOutline: Icon;
@@ -1710,6 +1710,10 @@ export { default as TextAaDuotone } from './duotone/TextAa.svelte';
1710
1710
  export { default as TextAaOutline } from './outline/TextAa.svelte';
1711
1711
  export { default as TextAaSharp } from './sharp/TextAa.svelte';
1712
1712
  export { default as TextAaSolid } from './solid/TextAa.svelte';
1713
+ export { default as ThemeSystemDuotone } from './duotone/ThemeSystem.svelte';
1714
+ export { default as ThemeSystemOutline } from './outline/ThemeSystem.svelte';
1715
+ export { default as ThemeSystemSharp } from './sharp/ThemeSystem.svelte';
1716
+ export { default as ThemeSystemSolid } from './solid/ThemeSystem.svelte';
1713
1717
  export { default as ThermometerDuotone } from './duotone/Thermometer.svelte';
1714
1718
  export { default as ThermometerMedicalDuotone } from './duotone/ThermometerMedical.svelte';
1715
1719
  export { default as ThermometerMedicalOutline } from './outline/ThermometerMedical.svelte';
@@ -0,0 +1,8 @@
1
+ <script>
2
+ let { size = 24, ...rest } = $props();
3
+ let sw = $derived(size <= 16 ? 1.75 : 1.5);
4
+ </script>
5
+
6
+ <svg xmlns="http://www.w3.org/2000/svg" width={size} height={size} viewBox="0 0 24 24" fill="none" {...rest}>
7
+ <circle cx="12" cy="12" r="5.5" stroke="currentColor" stroke-width="{sw}"/><path fill="currentColor" d="M12 6.5a5.5 5.5 0 0 1 0 11z"/><path stroke="currentColor" stroke-linecap="round" stroke-width="{sw}" d="M12 2.5v1.8m0 15.4v1.8M2.5 12h1.8m.75-6.95 1.27 1.27M5.05 18.95l1.27-1.27"/>
8
+ </svg>
@@ -438,6 +438,7 @@ export declare const Telescope: Icon;
438
438
  export declare const Terminal: Icon;
439
439
  export declare const Tesla: Icon;
440
440
  export declare const TextAa: Icon;
441
+ export declare const ThemeSystem: Icon;
441
442
  export declare const Thermometer: Icon;
442
443
  export declare const ThermometerMedical: Icon;
443
444
  export declare const Thinking: Icon;
@@ -426,6 +426,7 @@ export { default as Telescope } from './Telescope.svelte';
426
426
  export { default as Terminal } from './Terminal.svelte';
427
427
  export { default as Tesla } from './Tesla.svelte';
428
428
  export { default as TextAa } from './TextAa.svelte';
429
+ export { default as ThemeSystem } from './ThemeSystem.svelte';
429
430
  export { default as Thermometer } from './Thermometer.svelte';
430
431
  export { default as ThermometerMedical } from './ThermometerMedical.svelte';
431
432
  export { default as Thinking } from './Thinking.svelte';
@@ -0,0 +1,8 @@
1
+ <script>
2
+ let { size = 24, ...rest } = $props();
3
+ let sw = $derived(size <= 16 ? 1.75 : 1.5);
4
+ </script>
5
+
6
+ <svg xmlns="http://www.w3.org/2000/svg" width={size} height={size} viewBox="0 0 24 24" fill="none" {...rest}>
7
+ <path stroke="currentColor" stroke-width="{sw}" d="M7 7h10v10H7z"/><path fill="currentColor" d="M12 7h5v10h-5z"/><path stroke="currentColor" stroke-width="{sw}" d="M12 2.5v3M2.5 12h3m-.9-7.4 2.1 2.1M4.6 19.4l2.1-2.1"/>
8
+ </svg>
@@ -438,6 +438,7 @@ export declare const Telescope: Icon;
438
438
  export declare const Terminal: Icon;
439
439
  export declare const Tesla: Icon;
440
440
  export declare const TextAa: Icon;
441
+ export declare const ThemeSystem: Icon;
441
442
  export declare const Thermometer: Icon;
442
443
  export declare const ThermometerMedical: Icon;
443
444
  export declare const Thinking: Icon;
@@ -426,6 +426,7 @@ export { default as Telescope } from './Telescope.svelte';
426
426
  export { default as Terminal } from './Terminal.svelte';
427
427
  export { default as Tesla } from './Tesla.svelte';
428
428
  export { default as TextAa } from './TextAa.svelte';
429
+ export { default as ThemeSystem } from './ThemeSystem.svelte';
429
430
  export { default as Thermometer } from './Thermometer.svelte';
430
431
  export { default as ThermometerMedical } from './ThermometerMedical.svelte';
431
432
  export { default as Thinking } from './Thinking.svelte';
@@ -0,0 +1,7 @@
1
+ <script>
2
+ let { size = 24, ...rest } = $props();
3
+ </script>
4
+
5
+ <svg xmlns="http://www.w3.org/2000/svg" width={size} height={size} viewBox="0 0 24 24" fill="none" {...rest}>
6
+ <circle cx="12" cy="12" r="6" stroke="currentColor" stroke-width="1.5"/><path fill="currentColor" d="M12 6a6 6 0 0 1 0 12z"/><path stroke="currentColor" stroke-linecap="round" stroke-width="1.5" d="M12 2.5v2M2.5 12h2m-.1-7.6 1.4 1.4M4.4 19.6l1.4-1.4"/>
7
+ </svg>
@@ -438,6 +438,7 @@ export declare const Telescope: Icon;
438
438
  export declare const Terminal: Icon;
439
439
  export declare const Tesla: Icon;
440
440
  export declare const TextAa: Icon;
441
+ export declare const ThemeSystem: Icon;
441
442
  export declare const Thermometer: Icon;
442
443
  export declare const ThermometerMedical: Icon;
443
444
  export declare const Thinking: Icon;
@@ -426,6 +426,7 @@ export { default as Telescope } from './Telescope.svelte';
426
426
  export { default as Terminal } from './Terminal.svelte';
427
427
  export { default as Tesla } from './Tesla.svelte';
428
428
  export { default as TextAa } from './TextAa.svelte';
429
+ export { default as ThemeSystem } from './ThemeSystem.svelte';
429
430
  export { default as Thermometer } from './Thermometer.svelte';
430
431
  export { default as ThermometerMedical } from './ThermometerMedical.svelte';
431
432
  export { default as Thinking } from './Thinking.svelte';
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><circle cx="12" cy="12" r="5.5" fill="var(--color-duotone-fill)" stroke="currentColor" stroke-width="1.5"/><path fill="currentColor" d="M12 6.5a5.5 5.5 0 0 1 0 11z"/><path stroke="currentColor" stroke-linecap="round" stroke-width="1.5" d="M12 2.5v1.8m0 15.4v1.8M2.5 12h1.8m.75-6.95 1.27 1.27M5.05 18.95l1.27-1.27"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><circle cx="12" cy="12" r="5.5" stroke="currentColor" stroke-width="1.5"/><path fill="currentColor" d="M12 6.5a5.5 5.5 0 0 1 0 11z"/><path stroke="currentColor" stroke-linecap="round" stroke-width="1.5" d="M12 2.5v1.8m0 15.4v1.8M2.5 12h1.8m.75-6.95 1.27 1.27M5.05 18.95l1.27-1.27"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-width="1.5" d="M7 7h10v10H7z"/><path fill="currentColor" d="M12 7h5v10h-5z"/><path stroke="currentColor" stroke-width="1.5" d="M12 2.5v3M2.5 12h3m-.9-7.4 2.1 2.1M4.6 19.4l2.1-2.1"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><circle cx="12" cy="12" r="6" stroke="currentColor" stroke-width="1.5"/><path fill="currentColor" d="M12 6a6 6 0 0 1 0 12z"/><path stroke="currentColor" stroke-linecap="round" stroke-width="1.5" d="M12 2.5v2M2.5 12h2m-.1-7.6 1.4 1.4M4.4 19.6l1.4-1.4"/></svg>
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@marcusv/roc",
3
- "version": "0.1.2",
3
+ "version": "0.2.1",
4
+ "license": "MIT",
4
5
  "type": "module",
5
6
  "files": [
6
7
  "dist/"
@@ -53,6 +54,8 @@
53
54
  "build:demo": "node build.mjs --demo",
54
55
  "dev": "node build.mjs --watch",
55
56
  "preview": "open demo/index.html",
57
+ "release:icons": "node scripts/release-icons.mjs",
58
+ "test:release": "node --test scripts/release-icons.test.mjs",
56
59
  "check:types": "node scripts/check-svelte-types.mjs",
57
60
  "verify:package": "node scripts/check-svelte-types.mjs",
58
61
  "deploy": "npm run build && scp demo/index.html root@haplab.com:/var/www/roc/index.html"