diff --git a/docs/portfolio-skills.md b/docs/portfolio-skills.md index afb8cc0..ea2b262 100644 --- a/docs/portfolio-skills.md +++ b/docs/portfolio-skills.md @@ -6,7 +6,7 @@ author: - Claude Code - GitHub Copilot date: 2026-05-27 -modified_date: 2026-07-10 +modified_date: 2026-07-15 toc: true --- @@ -94,13 +94,11 @@ This keeps the package API small while still allowing clear internal organizatio ### String and number type-guard utilities `StringUtility` and `NumberUtility` provide static runtime type guards, such as non-empty and single-line trimmed string checks and positive-integer checks, so consuming code gets both TypeScript narrowing and JavaScript-safe runtime validation from a single call. -`ColorStringUtility` builds on `StringUtility` to validate hex color string formats (`#RRGGBB` and `#RRGGBBAA`). **Evidence:** - [src/string/string-utility.ts](https://github.com/blwatkins/typescript-utils/blob/main/src/string/string-utility.ts) - [src/number/number-utility.ts](https://github.com/blwatkins/typescript-utils/blob/main/src/number/number-utility.ts) -- [src/string/color-string-utility.ts](https://github.com/blwatkins/typescript-utils/blob/main/src/string/color-string-utility.ts) ### Discriminator-based type guard registry diff --git a/docs/releases/v0.x/v0.1.x/v0.1.0-alpha.x/v0.1.0-alpha.2/doc/assets/navigation.js b/docs/releases/v0.x/v0.1.x/v0.1.0-alpha.x/v0.1.0-alpha.2/doc/assets/navigation.js index b715950..2e579fa 100644 --- a/docs/releases/v0.x/v0.1.x/v0.1.0-alpha.x/v0.1.0-alpha.2/doc/assets/navigation.js +++ b/docs/releases/v0.x/v0.1.x/v0.1.0-alpha.x/v0.1.0-alpha.2/doc/assets/navigation.js @@ -1 +1 @@ -window.navigationData = "eJytlElPwzAQhf8K8jliKSpLb6iUCgk4tFAOVQ9uPDQWtlPZDlCh/neUPXacBbXqLZl535t05i1/kYYfjUboOSQRA4U85AeUEQkCjZbFW0KVLymnAutQIg9tsQ7QCPG06cx4fRpozpCHPqkgaDRwC05ExEFiTUPRxLyviqoSCiLiNtKsNR3c7Fd7r1AdM6xU45yGzgw2VGm5K9F+2twGz5tMDxcD08Wj0CA/sP8vI8nXKs3QQqOHn6TX+meGV4an190WTu4Yxb0+D5DSid5t20wAscDnt9cXw4GFnkZYdmgWZW696jALLCle91poIHM/AI5L9lfebPEdTaaTy9hE1YaI+BocB5M+73Up7Qv7kgi9acqodixqxjGqXJtZ9SyxICGve06fH8HzzALkZjPAzMGJXXqWQDrUFEScI6F8wL4OXcdqyLqb2mBzAALE2d3IaunpQi1AqiwUm7Xzojaxd6CbQAOZMOAgdOOKZLLu8gNTrOLVmVv1keoR1ThRm6JVenDw5XpPVGk7oyxkXHJ4Pn2bAzQnVEZ31neEk9KSik390NPnRzj0cchCOU/UGtcvg9VLWw+ll2aH3Cr9/QHQ6SnC" \ No newline at end of file +window.navigationData = "eJytlElPwzAQhf9K5XNYWsTWGyqLkIBDC+VQ9eDGQ2MRO5U9ASrU/46yNbHjpEHt1Zl53xtn/Ga/BOEHyZA8RywOQROP+AEPmQJJhrPtV8a1r7jgkmKkiEdWFAMyJCJrOjE+HwcoQuKRTy4ZGQ7cgncyFqAo8kg2MW+rorqEgoyFjTRrTQdXm/nG26qOQqp145yGzhiWXKNal2g/a26DF02mh/7AdPEoEdQH9f9lJL2t0gzfanTwk/Zaf+b8wvD0ul5B7ybktNP1ACud4HrVZgKYBT69vuyfDyz0Q0zVDs1tmVuvOsyUKk4XnRYa2MQPQNCS/VU0W3xHk+nkLDFRtSFjsQDHg8nOO72U9oV9SYXekIccHYuac4wq12ZWPSsqWSTqnrPzA3geW4DCbA4YOziJS88SyIZ6AJnkSKTuqY+R67Easu6mNtgEgAFzdjeyWnp2oaagdB6KzdpFUZvYO/BlgMDuQhAgsXFFcll3+Z4pVvHqzK36SPWIapyoTdEq3Tv4Cr0nrtHOKAuZlOyfT9/mAM0JldOd9TvCSaPicll/6Nn5AR76KAojNUnVGtcvh9VLa6vnZT1JeMNKgZ+EcA81O+L6qDwh1ffUCd1OTe9svpn/ASaSN4k=" \ No newline at end of file diff --git a/docs/releases/v0.x/v0.1.x/v0.1.0-alpha.x/v0.1.0-alpha.2/doc/assets/search.js b/docs/releases/v0.x/v0.1.x/v0.1.0-alpha.x/v0.1.0-alpha.2/doc/assets/search.js index c11e695..67ef755 100644 --- a/docs/releases/v0.x/v0.1.x/v0.1.0-alpha.x/v0.1.0-alpha.2/doc/assets/search.js +++ b/docs/releases/v0.x/v0.1.x/v0.1.0-alpha.x/v0.1.0-alpha.2/doc/assets/search.js @@ -1 +1 @@ -window.searchData = "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"; \ No newline at end of file +window.searchData = "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"; \ No newline at end of file diff --git a/docs/releases/v0.x/v0.1.x/v0.1.0-alpha.x/v0.1.0-alpha.2/doc/classes/discriminator.DiscriminatorRegistry.html b/docs/releases/v0.x/v0.1.x/v0.1.0-alpha.x/v0.1.0-alpha.2/doc/classes/discriminator.DiscriminatorRegistry.html index a322003..9b3f84f 100644 --- a/docs/releases/v0.x/v0.1.x/v0.1.0-alpha.x/v0.1.0-alpha.2/doc/classes/discriminator.DiscriminatorRegistry.html +++ b/docs/releases/v0.x/v0.1.x/v0.1.0-alpha.x/v0.1.0-alpha.2/doc/classes/discriminator.DiscriminatorRegistry.html @@ -20,7 +20,7 @@
0.1.0
+0.1.0
Staticregister0.1.0
Staticvalidate0.1.0
0.1.0
Staticis0.1.0
Staticis0.1.0
0.1.0
0.1.0
Staticrandom0.1.0
Staticrandom0.1.0
Staticrandom0.1.0
Staticrandom0.1.0
Staticrandom0.1.0
Staticrandom0.1.0
0.1.0
Staticbuild0.1.0
0.1.0
0.1.0
Staticis0.1.0
0.1.0
0.1.0
0.1.0
Staticbuild0.1.0
Staticis0.1.0
Staticis0.1.0
Staticis0.1.0
Staticis0.1.0
Staticvalidate0.1.0
StaticisStaticisIs the given input a string matching the ColorStringUtility.hexColorPattern pattern?
@@ -111,15 +131,20 @@true if the given input matches the ColorStringUtility.hexColorPattern pattern; false otherwise.
StaticisStaticisIs the given input a string matching the ColorStringUtility.hexColorPatternRGB pattern?
@@ -133,15 +158,20 @@true if the given input matches the ColorStringUtility.hexColorPatternRGB pattern; false otherwise.
StaticisStaticisIs the given input a string matching the ColorStringUtility.hexColorPatternRGBA pattern?
@@ -155,11 +185,16 @@true if the given input matches the ColorStringUtility.hexColorPatternRGBA pattern; false otherwise.
0.1.0
+0.1.0
Staticsingle0.1.0
Staticsingle0.1.0
0.1.0
Staticis0.1.0
Staticis0.1.0
Staticis0.1.0
Staticis0.1.0
0.1.0
ReadonlyweightReadonly0.1.0
0.1.0
+
Static properties and methods for validating formatted color strings.
Deprecated
+- Moved to
+
+@blwatkins/color-utilspackage. Will be removed inv0.1.0-alpha.3.Since
0.1.0