@uxelle/skills 0.2.0-beta.2

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 (117) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +58 -0
  3. package/dist/index.d.ts +26 -0
  4. package/dist/index.js +586 -0
  5. package/index.json +573 -0
  6. package/package.json +57 -0
  7. package/skills/uxelle-components/Accordion.md +51 -0
  8. package/skills/uxelle-components/AccordionGroup.md +39 -0
  9. package/skills/uxelle-components/Banner.md +73 -0
  10. package/skills/uxelle-components/BannerAnnouncement.md +63 -0
  11. package/skills/uxelle-components/Breadcrumb.md +38 -0
  12. package/skills/uxelle-components/Breadcrumbs.md +32 -0
  13. package/skills/uxelle-components/Bubble.md +34 -0
  14. package/skills/uxelle-components/Button.md +54 -0
  15. package/skills/uxelle-components/ButtonGroup.md +43 -0
  16. package/skills/uxelle-components/Card.md +35 -0
  17. package/skills/uxelle-components/Checkbox.md +57 -0
  18. package/skills/uxelle-components/CheckboxGroup.md +47 -0
  19. package/skills/uxelle-components/ChoiceChip.md +44 -0
  20. package/skills/uxelle-components/ChoiceChipGroup.md +50 -0
  21. package/skills/uxelle-components/DatePicker.md +59 -0
  22. package/skills/uxelle-components/DatePickerRange.md +73 -0
  23. package/skills/uxelle-components/Dialog.md +83 -0
  24. package/skills/uxelle-components/Divider.md +37 -0
  25. package/skills/uxelle-components/DynamicAngleLine.md +36 -0
  26. package/skills/uxelle-components/DynamicAngleLineCombo.md +30 -0
  27. package/skills/uxelle-components/DynamicAngleShape.md +32 -0
  28. package/skills/uxelle-components/DynamicAngleShapeSurface.md +35 -0
  29. package/skills/uxelle-components/DynamicAngleTexture.md +29 -0
  30. package/skills/uxelle-components/DynamicAngleTextureText.md +35 -0
  31. package/skills/uxelle-components/FieldMessage.md +31 -0
  32. package/skills/uxelle-components/FileUpload.md +53 -0
  33. package/skills/uxelle-components/FilterChip.md +35 -0
  34. package/skills/uxelle-components/FilterChipGroup.md +42 -0
  35. package/skills/uxelle-components/Footer.md +34 -0
  36. package/skills/uxelle-components/Hero.md +61 -0
  37. package/skills/uxelle-components/Icon.md +43 -0
  38. package/skills/uxelle-components/IconButton.md +44 -0
  39. package/skills/uxelle-components/Image.md +40 -0
  40. package/skills/uxelle-components/Label.md +35 -0
  41. package/skills/uxelle-components/LabelBadge.md +58 -0
  42. package/skills/uxelle-components/LanguageSelector.md +38 -0
  43. package/skills/uxelle-components/LanguageSelectorButton.md +34 -0
  44. package/skills/uxelle-components/Layout.md +81 -0
  45. package/skills/uxelle-components/LinearProgress.md +53 -0
  46. package/skills/uxelle-components/Link.md +52 -0
  47. package/skills/uxelle-components/List.md +35 -0
  48. package/skills/uxelle-components/ListControls.md +100 -0
  49. package/skills/uxelle-components/ListItem.md +69 -0
  50. package/skills/uxelle-components/Lockup.md +50 -0
  51. package/skills/uxelle-components/Logo.md +39 -0
  52. package/skills/uxelle-components/Menu.md +48 -0
  53. package/skills/uxelle-components/MultiSelect.md +54 -0
  54. package/skills/uxelle-components/NavLink.md +44 -0
  55. package/skills/uxelle-components/Navigation.md +61 -0
  56. package/skills/uxelle-components/NavigationSide.md +51 -0
  57. package/skills/uxelle-components/NavigationSideGroup.md +36 -0
  58. package/skills/uxelle-components/NavigationSideItem.md +56 -0
  59. package/skills/uxelle-components/NavigationSideSubItem.md +39 -0
  60. package/skills/uxelle-components/NotificationBadge.md +62 -0
  61. package/skills/uxelle-components/Pagination.md +49 -0
  62. package/skills/uxelle-components/PaginationComplex.md +51 -0
  63. package/skills/uxelle-components/PaginationSimple.md +44 -0
  64. package/skills/uxelle-components/ProductCard.md +46 -0
  65. package/skills/uxelle-components/Quantity.md +45 -0
  66. package/skills/uxelle-components/Radio.md +55 -0
  67. package/skills/uxelle-components/RadioGroup.md +49 -0
  68. package/skills/uxelle-components/SKILL.md +242 -0
  69. package/skills/uxelle-components/Scrim.md +28 -0
  70. package/skills/uxelle-components/SegmentedControl.md +118 -0
  71. package/skills/uxelle-components/Select.md +55 -0
  72. package/skills/uxelle-components/Sheet.md +31 -0
  73. package/skills/uxelle-components/Skeleton.md +35 -0
  74. package/skills/uxelle-components/Spinner.md +33 -0
  75. package/skills/uxelle-components/StatTile.md +150 -0
  76. package/skills/uxelle-components/Stepper.md +73 -0
  77. package/skills/uxelle-components/Switch.md +41 -0
  78. package/skills/uxelle-components/Tab.md +41 -0
  79. package/skills/uxelle-components/Table.md +55 -0
  80. package/skills/uxelle-components/TabsCompact.md +37 -0
  81. package/skills/uxelle-components/TabsStretch.md +35 -0
  82. package/skills/uxelle-components/Text.md +56 -0
  83. package/skills/uxelle-components/Textarea.md +77 -0
  84. package/skills/uxelle-components/Textfield.md +62 -0
  85. package/skills/uxelle-components/Tooltip.md +33 -0
  86. package/skills/uxelle-design-harness/SKILL.md +149 -0
  87. package/skills/uxelle-design-harness/a2ui.md +73 -0
  88. package/skills/uxelle-design-harness/how-to-accessibility.md +31 -0
  89. package/skills/uxelle-design-harness/how-to-color.md +82 -0
  90. package/skills/uxelle-design-harness/how-to-host.md +108 -0
  91. package/skills/uxelle-design-harness/how-to-page-layout.md +203 -0
  92. package/skills/uxelle-design-harness/principles.md +72 -0
  93. package/skills/uxelle-design-harness/recipe-app-chrome.md +168 -0
  94. package/skills/uxelle-design-harness/recipe-card-grid.md +104 -0
  95. package/skills/uxelle-design-harness/recipe-cta-band.md +91 -0
  96. package/skills/uxelle-design-harness/recipe-dashboard-overview.md +118 -0
  97. package/skills/uxelle-design-harness/recipe-data-table-page.md +323 -0
  98. package/skills/uxelle-design-harness/recipe-feature-section.md +96 -0
  99. package/skills/uxelle-design-harness/recipe-footer.md +156 -0
  100. package/skills/uxelle-design-harness/recipe-form-section.md +163 -0
  101. package/skills/uxelle-design-harness/recipe-hero.md +89 -0
  102. package/skills/uxelle-design-harness/recipe-landing-page.md +94 -0
  103. package/skills/uxelle-design-harness/recipe-logo-wall.md +80 -0
  104. package/skills/uxelle-design-harness/recipe-multi-step-flow.md +108 -0
  105. package/skills/uxelle-design-harness/recipe-page-header.md +102 -0
  106. package/skills/uxelle-design-harness/recipe-page-shell.md +82 -0
  107. package/skills/uxelle-design-harness/recipe-pricing.md +83 -0
  108. package/skills/uxelle-design-harness/recipe-query-bar.md +108 -0
  109. package/skills/uxelle-design-harness/recipe-record-detail.md +96 -0
  110. package/skills/uxelle-design-harness/recipe-settings-page.md +170 -0
  111. package/skills/uxelle-design-harness/recipe-stat-callouts.md +111 -0
  112. package/skills/uxelle-design-harness/recipe-states.md +119 -0
  113. package/skills/uxelle-design-harness/recipe-summary-list.md +88 -0
  114. package/skills/uxelle-design-harness/recipe-template.md +62 -0
  115. package/skills/uxelle-design-harness/recipe-testimonial.md +73 -0
  116. package/skills/uxelle-design-harness/spacing-steps.md +57 -0
  117. package/skills/uxelle-design-harness/tokens.md +101 -0
package/README.md ADDED
@@ -0,0 +1,58 @@
1
+ # `@uxelle/skills`
2
+
3
+ Versioned generate-UI agent skills for uxElle: component API reference (`uxelle-components`) and composition recipes (`uxelle-design-harness`), plus a machine-readable manifest.
4
+
5
+ The version of this package tracks `@uxelle/components`. Pin them to the same version so generated props match the installed component API.
6
+
7
+ Prerelease versions (`0.2.0-beta.*`) are published on the `beta` dist-tag. Untagged `@uxelle/skills` looks up `latest`.
8
+
9
+ ```bash
10
+ npm install @uxelle/skills@beta
11
+ ```
12
+
13
+ ## Exports
14
+
15
+ | Specifier | What it is |
16
+ | --------------------------- | -------------------------------------------------- |
17
+ | `@uxelle/skills` | Typed `SKILLS` manifest and `skillFileSpecifier()` |
18
+ | `@uxelle/skills/index.json` | Same manifest as JSON |
19
+ | `@uxelle/skills/skills/*` | Raw markdown (`SKILL.md`, `Button.md`, recipes, …) |
20
+
21
+ ```ts
22
+ import { readFileSync } from "node:fs";
23
+ import { fileURLToPath } from "node:url";
24
+ import { SKILLS, skillFileSpecifier } from "@uxelle/skills";
25
+
26
+ for (const skill of SKILLS.skills) {
27
+ const specifier = skillFileSpecifier(skill.name, "SKILL.md");
28
+ const markdown = readFileSync(fileURLToPath(import.meta.resolve(specifier)), "utf8");
29
+ }
30
+ ```
31
+
32
+ Vite / webpack can load the same files with `?raw` (`import x from "@uxelle/skills/skills/uxelle-components/SKILL.md?raw"`). Node cannot `import()` `.md`.
33
+
34
+ Load `SKILL.md` for each skill plus the manifest up front. Fetch individual component or recipe files on demand — `uxelle-components/SKILL.md` tells agents not to preload every component file.
35
+
36
+ The two skill folders are siblings. The harness links into component docs with relative paths such as `../uxelle-components/Table.md`; do not split them.
37
+
38
+ ## `index.json`
39
+
40
+ ```json
41
+ {
42
+ "schemaVersion": 1,
43
+ "version": "0.2.0-beta.2",
44
+ "skills": [
45
+ {
46
+ "name": "uxelle-components",
47
+ "description": "…",
48
+ "files": [{ "path": "SKILL.md", "size": 12345, "hash": "sha256:…" }]
49
+ }
50
+ ]
51
+ }
52
+ ```
53
+
54
+ `files[].path` is POSIX, relative to that skill folder. `hash` is `sha256:` plus 64 hex digits.
55
+
56
+ ## Tests and pack checks (this repo)
57
+
58
+ Staged content under `packages/skills/skills/` and `index.json` are gitignored build output. `npm test -w @uxelle/skills` stages and sanitizes before Vitest. `npm run pack:check -w @uxelle/skills` builds, sanitizes, then dry-runs `npm pack`.
@@ -0,0 +1,26 @@
1
+ type SkillFile = {
2
+ path: string;
3
+ size: number;
4
+ hash: string;
5
+ };
6
+ type SkillEntry = {
7
+ name: string;
8
+ description: string;
9
+ files: SkillFile[];
10
+ };
11
+ type SkillsManifest = {
12
+ schemaVersion: 1;
13
+ version: string;
14
+ skills: SkillEntry[];
15
+ };
16
+ declare const SKILLS: SkillsManifest;
17
+ declare const SKILL_NAMES: string[];
18
+ /**
19
+ * Package specifier for a skill markdown file
20
+ * (`@uxelle/skills/skills/<skill>/<relativePath>`).
21
+ * Resolve with `import.meta.resolve` then `fs`; Node cannot `import()` `.md`.
22
+ * Bundlers may load the same specifier with `?raw`.
23
+ */
24
+ declare function skillFileSpecifier(skill: string, relativePath: string): string;
25
+
26
+ export { SKILLS, SKILL_NAMES, type SkillEntry, type SkillFile, type SkillsManifest, skillFileSpecifier };
package/dist/index.js ADDED
@@ -0,0 +1,586 @@
1
+ // src/manifest.generated.ts
2
+ var manifest = {
3
+ "schemaVersion": 1,
4
+ "version": "0.2.0-beta.2",
5
+ "skills": [
6
+ {
7
+ "name": "uxelle-components",
8
+ "description": "Reference for uxElle Generative Product Foundation (GPF) components. Use when generating UI with uxElle, implementing designs, building layouts, or when the user mentions uxElle components, design system, or enterprise UI.",
9
+ "files": [
10
+ {
11
+ "path": "Accordion.md",
12
+ "size": 3166,
13
+ "hash": "sha256:206b170ddf62f8a29ad56ad1084ba890de57a3e59aa6aec5f34d01bb0484bf83"
14
+ },
15
+ {
16
+ "path": "AccordionGroup.md",
17
+ "size": 997,
18
+ "hash": "sha256:313877bbe6d225b6bbe243e34afbb66fc302c70f7dadce9c1821a49f5e9a6808"
19
+ },
20
+ {
21
+ "path": "Banner.md",
22
+ "size": 6891,
23
+ "hash": "sha256:ed6ef1e333f88fcde8f132ed336de99899024ceb1651ad56073f4aef8e5ff6e7"
24
+ },
25
+ {
26
+ "path": "BannerAnnouncement.md",
27
+ "size": 5223,
28
+ "hash": "sha256:9ad6a79b3d7a3b6bcbd03bb8715d6c294b105769fb3986b9cdf87a7de0211d58"
29
+ },
30
+ {
31
+ "path": "Breadcrumb.md",
32
+ "size": 2218,
33
+ "hash": "sha256:174b83d6058df3c37e1193788b37b41d27dcc6341cfedf8f8478c7d3f25ed914"
34
+ },
35
+ {
36
+ "path": "Breadcrumbs.md",
37
+ "size": 1651,
38
+ "hash": "sha256:fcb52ddd8650c7baec56311227f5ea4864a829afbc1a592b5f9a864598403930"
39
+ },
40
+ {
41
+ "path": "Bubble.md",
42
+ "size": 1837,
43
+ "hash": "sha256:7f8aa8f4632053d18010d502d258daa21984a90233cc4aba02f51bed01afbdd6"
44
+ },
45
+ {
46
+ "path": "Button.md",
47
+ "size": 4593,
48
+ "hash": "sha256:cc0ccac068f5aeeb6b9ad86ca6899730eaa3529279a821ac155380dc9c8029c3"
49
+ },
50
+ {
51
+ "path": "ButtonGroup.md",
52
+ "size": 2382,
53
+ "hash": "sha256:ef9db011faa4045e54d8fb29462a1bf30a33f56caf8b0580445de4b464900c54"
54
+ },
55
+ {
56
+ "path": "Card.md",
57
+ "size": 1409,
58
+ "hash": "sha256:4dae3d00467b7330e8c78282cd9256666ebc48ac36f1d541f512b74abb5882e5"
59
+ },
60
+ {
61
+ "path": "Checkbox.md",
62
+ "size": 7283,
63
+ "hash": "sha256:bb08508d9ba7a060eeca285d68df6d8c46b393edf120b6252212b3119dcb3e4a"
64
+ },
65
+ {
66
+ "path": "CheckboxGroup.md",
67
+ "size": 4467,
68
+ "hash": "sha256:88b92a775f3521907b872c5623171834cf591a732a563288ad174ddf65bb511d"
69
+ },
70
+ {
71
+ "path": "ChoiceChip.md",
72
+ "size": 3796,
73
+ "hash": "sha256:9c2dc57310d28631817bb75acd151a9c23ff5644d19cb345c7bd65fa8d75797a"
74
+ },
75
+ {
76
+ "path": "ChoiceChipGroup.md",
77
+ "size": 4756,
78
+ "hash": "sha256:91de9bc2984cbfb640e1ba117661fcfd7633bb9c16ef3f3b2b9fd7c2d1f0c032"
79
+ },
80
+ {
81
+ "path": "DatePicker.md",
82
+ "size": 7432,
83
+ "hash": "sha256:4f42a2c7a17ff9eb025aebda1295ae5164888150681e835343bcbc85b95f96f9"
84
+ },
85
+ {
86
+ "path": "DatePickerRange.md",
87
+ "size": 8833,
88
+ "hash": "sha256:8c664d0fbe855d428c0e89fb288d4c3d8ac5e81c08ad063512cbdc621ec7ac1d"
89
+ },
90
+ {
91
+ "path": "Dialog.md",
92
+ "size": 5943,
93
+ "hash": "sha256:daeccdf2089b713b530d8f33aa3c7b109947468880eb7326ee80f3af0a053479"
94
+ },
95
+ {
96
+ "path": "Divider.md",
97
+ "size": 1974,
98
+ "hash": "sha256:2ddbd235175bf8e36d043261e32dd9ccf3f4806009a9d4807bafa093fbdb4c22"
99
+ },
100
+ {
101
+ "path": "DynamicAngleLine.md",
102
+ "size": 2173,
103
+ "hash": "sha256:86660fc704be3d78d5011c3668a883c8f45ec7c3d23975eea6a4c341a50fc244"
104
+ },
105
+ {
106
+ "path": "DynamicAngleLineCombo.md",
107
+ "size": 1869,
108
+ "hash": "sha256:4d0d00fca38ddc2a3b3e71635e83033141f057942ff0021aeee0cbdfe3a87c07"
109
+ },
110
+ {
111
+ "path": "DynamicAngleShape.md",
112
+ "size": 2418,
113
+ "hash": "sha256:f400ef14468e4dd433783594869ab008b8c36cbb24bde30744caf8ebfd91b448"
114
+ },
115
+ {
116
+ "path": "DynamicAngleShapeSurface.md",
117
+ "size": 2223,
118
+ "hash": "sha256:a2480104972331ac3fa759e073a5166a5c18b1d6bfa384ccb1792beccee3de61"
119
+ },
120
+ {
121
+ "path": "DynamicAngleTexture.md",
122
+ "size": 1633,
123
+ "hash": "sha256:b56acf13041d81a41ca573af423fd2b7408e8047d0e835541a679c4144e0abbf"
124
+ },
125
+ {
126
+ "path": "DynamicAngleTextureText.md",
127
+ "size": 2025,
128
+ "hash": "sha256:563ab33ead3eee347296a175daca6055793dab258f2ac0fee1a0f601f3b6ae00"
129
+ },
130
+ {
131
+ "path": "FieldMessage.md",
132
+ "size": 1491,
133
+ "hash": "sha256:2dd66b48dc780b86e0d0c6bfb13dbc1eaf18787105cbb853f06025e45ede1494"
134
+ },
135
+ {
136
+ "path": "FileUpload.md",
137
+ "size": 5949,
138
+ "hash": "sha256:5863b435101fb94abf08ec047fa9801680428a317469b5735f2e6506b04947c5"
139
+ },
140
+ {
141
+ "path": "FilterChip.md",
142
+ "size": 2891,
143
+ "hash": "sha256:da8c799773f8f94c82a29f777015d1516cedec9bb53d042fd079ff2b4dd25a41"
144
+ },
145
+ {
146
+ "path": "FilterChipGroup.md",
147
+ "size": 4369,
148
+ "hash": "sha256:fa8e1c2544071de8fc268c0c4aceda4ddea9aebe62f63b4bc32894632d857aa5"
149
+ },
150
+ {
151
+ "path": "Footer.md",
152
+ "size": 1276,
153
+ "hash": "sha256:e2ca30ae7eba1e8c206d70791f4636a66e4f654059dbddda1b508bfd08e7b5c2"
154
+ },
155
+ {
156
+ "path": "Hero.md",
157
+ "size": 3330,
158
+ "hash": "sha256:56619429625460a459b3ea7c37379769342628b35e461ed2614fe233fb99ebbc"
159
+ },
160
+ {
161
+ "path": "Icon.md",
162
+ "size": 2218,
163
+ "hash": "sha256:bfde859f04937c40b1ce2f3b386e9b059e3781878b1bb91471e688de605ccf1b"
164
+ },
165
+ {
166
+ "path": "IconButton.md",
167
+ "size": 3435,
168
+ "hash": "sha256:5d783be90eb071f936c1e544a881742377654ca561007d52c8cfe21375be5109"
169
+ },
170
+ {
171
+ "path": "Image.md",
172
+ "size": 2065,
173
+ "hash": "sha256:75ee6ba8c65372ecbbf013c264b2bafaac509847949fb08d571538179c053560"
174
+ },
175
+ {
176
+ "path": "Label.md",
177
+ "size": 1793,
178
+ "hash": "sha256:aa7988352f5797f63f0468c6ce9e447bf0a102a69990f298666de7191dc1ba96"
179
+ },
180
+ {
181
+ "path": "LabelBadge.md",
182
+ "size": 4264,
183
+ "hash": "sha256:8b1d05f05cfeaa3aed8a7a87fd92884c4d81ef8679483035dff7170d6c948424"
184
+ },
185
+ {
186
+ "path": "LanguageSelector.md",
187
+ "size": 1634,
188
+ "hash": "sha256:2b60e81a4efeda5acc9066d33aa4564a21cd8b956730092be08be04558cd9c8c"
189
+ },
190
+ {
191
+ "path": "LanguageSelectorButton.md",
192
+ "size": 1610,
193
+ "hash": "sha256:e2b94c54cb1ff9e6f21e983e77df1a683689033376ff794727bce3e8bddac835"
194
+ },
195
+ {
196
+ "path": "Layout.md",
197
+ "size": 8424,
198
+ "hash": "sha256:45d6c3ccfd4e22c29e9cbd2b30826bb6b2c3088dab5e55332b564d46501ea71d"
199
+ },
200
+ {
201
+ "path": "LinearProgress.md",
202
+ "size": 5804,
203
+ "hash": "sha256:969f73158b98bf54d3a03a1697ebfad8925cfd9fe3fc9b3ad1376e993abcacfb"
204
+ },
205
+ {
206
+ "path": "Link.md",
207
+ "size": 1760,
208
+ "hash": "sha256:ed64b4d88e56b94476d47ff480002b9c4088561f17ca7aaca13ee7f4dbf918e7"
209
+ },
210
+ {
211
+ "path": "List.md",
212
+ "size": 1227,
213
+ "hash": "sha256:b3e63988a6ac1a8bcd5130027b5744010694076b3823445b9fcce64b4c4ddae8"
214
+ },
215
+ {
216
+ "path": "ListControls.md",
217
+ "size": 7187,
218
+ "hash": "sha256:a8e4974dcefd3979f5f0e84839a9a9ddef94295fc74458829ca0ca67accc9e14"
219
+ },
220
+ {
221
+ "path": "ListItem.md",
222
+ "size": 6274,
223
+ "hash": "sha256:76fd4020b60baa307aac95166a5cee2306062edffbea6dafea9f88afeeba849c"
224
+ },
225
+ {
226
+ "path": "Lockup.md",
227
+ "size": 2045,
228
+ "hash": "sha256:ad45c25a8d81581d0462b2dd04d1e91e88142713e43307a0aac5fbbb84c94e99"
229
+ },
230
+ {
231
+ "path": "Logo.md",
232
+ "size": 3312,
233
+ "hash": "sha256:3ad0ce347065a7d21b9a3f8eef965d0edfdb394c6692d579bf8b9adf6cc8561c"
234
+ },
235
+ {
236
+ "path": "Menu.md",
237
+ "size": 3567,
238
+ "hash": "sha256:e8926edc847864a6cbdcedc8f2c83a4ab589e5fd29e5725bd599d01a96de94f7"
239
+ },
240
+ {
241
+ "path": "MultiSelect.md",
242
+ "size": 5923,
243
+ "hash": "sha256:2bf934ef37ddb1a39867fa5167bfc6693477b2dff72b37684446315570e2562e"
244
+ },
245
+ {
246
+ "path": "Navigation.md",
247
+ "size": 2626,
248
+ "hash": "sha256:ed38f63fc2728c5de857bcc891807c628103e30b7381e4b4b3e7576980b672e4"
249
+ },
250
+ {
251
+ "path": "NavigationSide.md",
252
+ "size": 5005,
253
+ "hash": "sha256:32386fd82517e9d74561b4c05b8a7b0951532fcf1ab80b038fe7bde376b96752"
254
+ },
255
+ {
256
+ "path": "NavigationSideGroup.md",
257
+ "size": 2147,
258
+ "hash": "sha256:571d2c42e0ec885f8802780116aba51e44fce27f43faf678eb919a14eed0eacd"
259
+ },
260
+ {
261
+ "path": "NavigationSideItem.md",
262
+ "size": 5839,
263
+ "hash": "sha256:a57473d0c207155e48e34e495a9a8b195357442871132c04e3a51b0130044cc9"
264
+ },
265
+ {
266
+ "path": "NavigationSideSubItem.md",
267
+ "size": 2350,
268
+ "hash": "sha256:f3da7ff70aac2a0568ff6831efd18bd2849d459f88ba41a76006432a33245b02"
269
+ },
270
+ {
271
+ "path": "NavLink.md",
272
+ "size": 2567,
273
+ "hash": "sha256:46d020ef5c1a46874e8fb89df9af5c96b0a2cc9b778fe8d64ceaaa1522df8047"
274
+ },
275
+ {
276
+ "path": "NotificationBadge.md",
277
+ "size": 5464,
278
+ "hash": "sha256:47827b5bb9e7d90828087b836fd49dff04cd8bf527188ea8cc343d443efb19db"
279
+ },
280
+ {
281
+ "path": "Pagination.md",
282
+ "size": 3968,
283
+ "hash": "sha256:b5c4176f69cfbbcbd4ba771b2e59cd3bf983cb172af52a71965d1a5354393068"
284
+ },
285
+ {
286
+ "path": "PaginationComplex.md",
287
+ "size": 4329,
288
+ "hash": "sha256:d52b26a45a311ceae64715bd1cd130396486a276c9d0b84e4da701875b7b692c"
289
+ },
290
+ {
291
+ "path": "PaginationSimple.md",
292
+ "size": 3042,
293
+ "hash": "sha256:c61f93baa4c090d8589935e43bb68b831643558e95974355163caf312e4239ff"
294
+ },
295
+ {
296
+ "path": "ProductCard.md",
297
+ "size": 2749,
298
+ "hash": "sha256:04adff625369cf595c1e9e751db04af15e6c89e0eb5a275db586b3cc8c4e0f56"
299
+ },
300
+ {
301
+ "path": "Quantity.md",
302
+ "size": 4442,
303
+ "hash": "sha256:d2e435403394cee7ccff1f2fae152978238c33e8e1a66868715144cb3dce3e37"
304
+ },
305
+ {
306
+ "path": "Radio.md",
307
+ "size": 7161,
308
+ "hash": "sha256:4d1d3f1ca69e4f02b6386d7ee4dc43f108c20c68ca5c73feca0b3b122ad59dba"
309
+ },
310
+ {
311
+ "path": "RadioGroup.md",
312
+ "size": 4872,
313
+ "hash": "sha256:762b06f2838a376744ac687b79e2624f96bd1edf25b3cd1530d274cf2e0a29a5"
314
+ },
315
+ {
316
+ "path": "Scrim.md",
317
+ "size": 957,
318
+ "hash": "sha256:5fed692a27aad2da728b1accf85d5383956e2b60f419e3cd237a4531faa8e71b"
319
+ },
320
+ {
321
+ "path": "SegmentedControl.md",
322
+ "size": 11570,
323
+ "hash": "sha256:3ce094d8e22dd7508af96a0da9a6cd6e4d0082e65755dcef68b52dc1d8b3aaa3"
324
+ },
325
+ {
326
+ "path": "Select.md",
327
+ "size": 6032,
328
+ "hash": "sha256:546f35666100ff9e3fc65c9b8a07908e3f73182abca021518f34b6f9b4118e47"
329
+ },
330
+ {
331
+ "path": "Sheet.md",
332
+ "size": 2836,
333
+ "hash": "sha256:99f8bab5c3d9ee1b89be6e7cfdb1ab79606900ee4c8418ecb149419a6b15e0b1"
334
+ },
335
+ {
336
+ "path": "Skeleton.md",
337
+ "size": 2189,
338
+ "hash": "sha256:f6d653ca65e0e46f4e5536ea1afab92967ffd65eb58b6ec6a444fff1f872f328"
339
+ },
340
+ {
341
+ "path": "SKILL.md",
342
+ "size": 13949,
343
+ "hash": "sha256:ea3ea17c6e11456ace3d1890d9cacdadd2eac8f2ff2e6ec4e68e697184928944"
344
+ },
345
+ {
346
+ "path": "Spinner.md",
347
+ "size": 2346,
348
+ "hash": "sha256:d9e9bca11b149bf5da817aaaa527e363dad54bddbbf81c2f31347e5db5568fa1"
349
+ },
350
+ {
351
+ "path": "StatTile.md",
352
+ "size": 7820,
353
+ "hash": "sha256:e9330341336d46ab38724a17e76548d8cd4081b06b1a483bfea6be642718ea9e"
354
+ },
355
+ {
356
+ "path": "Stepper.md",
357
+ "size": 6408,
358
+ "hash": "sha256:f6d1e5918ae89e1ac1c7df11dd0d6eca11f9c39f74cbfc534c8c8cbb43087ac3"
359
+ },
360
+ {
361
+ "path": "Switch.md",
362
+ "size": 3278,
363
+ "hash": "sha256:b909ceec7215ccdbda80bf3d9850e68bfd95ea1732c830c20cbc0901dc82a70d"
364
+ },
365
+ {
366
+ "path": "Tab.md",
367
+ "size": 3216,
368
+ "hash": "sha256:be8fc417473525c28c8dcb919b733163b0df79a45f96b374bb52b49a89154b0c"
369
+ },
370
+ {
371
+ "path": "Table.md",
372
+ "size": 2727,
373
+ "hash": "sha256:bfe8aa99f3cd9ee3bea87f151c5f42f091f93d4dd47006c76e0ed456a18b7af8"
374
+ },
375
+ {
376
+ "path": "TabsCompact.md",
377
+ "size": 2988,
378
+ "hash": "sha256:cd47f851b8ae1caa126bd6844127eda961a82938ad61dd68df936e0915661737"
379
+ },
380
+ {
381
+ "path": "TabsStretch.md",
382
+ "size": 2605,
383
+ "hash": "sha256:578c5ba9236661e33372b2afea9d16d3fbf47cc051836e01bea59ae27785f52c"
384
+ },
385
+ {
386
+ "path": "Text.md",
387
+ "size": 4131,
388
+ "hash": "sha256:4334c44a3abf6cc4ba1bb0f3480b837337b333870f842c2fc0f6f42c1b1cc83a"
389
+ },
390
+ {
391
+ "path": "Textarea.md",
392
+ "size": 4478,
393
+ "hash": "sha256:38d0ccca1f1533f74d68ec20d48789103029e2d5f5e0afe6577623470b608ef3"
394
+ },
395
+ {
396
+ "path": "Textfield.md",
397
+ "size": 5548,
398
+ "hash": "sha256:5fecf238dc2b82708e514a317d11a0128c2f3d52abe7fb82c48d83ac8ee70944"
399
+ },
400
+ {
401
+ "path": "Tooltip.md",
402
+ "size": 2300,
403
+ "hash": "sha256:54e54a65b9191cb9bcb586ced6e918a008b9e8a6787d1ceab42a543a8a7ba001"
404
+ }
405
+ ]
406
+ },
407
+ {
408
+ "name": "uxelle-design-harness",
409
+ "description": "The single home for building on-brand, enterprise uxElle experiences: Swiss design principles, the --uxl-* variable foundation (layout spacing, page chrome, color-switcher palettes, radius, elevation, type), first-class mobile responsiveness, WCAG AA, and composition recipes for product and marketing surfaces (app chrome, dashboards, data tables, record detail, settings, multi-step flows, states, landing pages, heroes, pricing, CTAs) across React (@uxelle/components) and A2UI (@uxelle/a2ui). Use when generating pages, apps, forms, layouts, dashboards, marketing/landing pages, greenfield React, or A2UI surfaces, or when writing CSS / inline styles that need --uxl-* tokens.",
410
+ "files": [
411
+ {
412
+ "path": "a2ui.md",
413
+ "size": 3438,
414
+ "hash": "sha256:79acf8d1fb2df2dd82bf979f05807c4d2d0f75b4fafd94e32b31a103bdac86f4"
415
+ },
416
+ {
417
+ "path": "how-to-accessibility.md",
418
+ "size": 3160,
419
+ "hash": "sha256:d84f9acbb4f9e55420f355acaeabca61533f5febc8d0ec688a4c9072b95ae501"
420
+ },
421
+ {
422
+ "path": "how-to-color.md",
423
+ "size": 3724,
424
+ "hash": "sha256:de6a183f582582cf43f4eb901706dca062f36b8d27601fc442c8ada4f56d2bf8"
425
+ },
426
+ {
427
+ "path": "how-to-host.md",
428
+ "size": 3080,
429
+ "hash": "sha256:b3cbd747f0913075e0db35747dc47e088b291bcf7a128a14648b6bf5c12e7009"
430
+ },
431
+ {
432
+ "path": "how-to-page-layout.md",
433
+ "size": 8414,
434
+ "hash": "sha256:9f6eb01b3a160d0ef6bc809fa416d2134869b3da31c3cc95039e906798454603"
435
+ },
436
+ {
437
+ "path": "principles.md",
438
+ "size": 4174,
439
+ "hash": "sha256:1d1a83cf5af7a32e4758cf1c7cd3da54f711ff6aae15dd12a8c1ad4a554c9fbe"
440
+ },
441
+ {
442
+ "path": "recipe-app-chrome.md",
443
+ "size": 9152,
444
+ "hash": "sha256:8d42d4fba9c8df38a72394a2512c584ad271855edf58013116f598c232d6b777"
445
+ },
446
+ {
447
+ "path": "recipe-card-grid.md",
448
+ "size": 3411,
449
+ "hash": "sha256:1ceb77d6de97f560b34c2de166142fc78fb3eb7c81e9af40262f59c2c1ceeffd"
450
+ },
451
+ {
452
+ "path": "recipe-cta-band.md",
453
+ "size": 3033,
454
+ "hash": "sha256:5d3973dc04c2cffd8beeb2c1e0c8f20eaefe9c047f090e70b6e01641cc84eb1a"
455
+ },
456
+ {
457
+ "path": "recipe-dashboard-overview.md",
458
+ "size": 4004,
459
+ "hash": "sha256:ab2e8a60dc61444564eb352a35d2a9a2be152e8b493d898e0f0aadbd87676d6e"
460
+ },
461
+ {
462
+ "path": "recipe-data-table-page.md",
463
+ "size": 14766,
464
+ "hash": "sha256:45dfcc1ef9ba681715e9a1b34e7e691870966d09f9851d5d416f6753c389bf55"
465
+ },
466
+ {
467
+ "path": "recipe-feature-section.md",
468
+ "size": 3239,
469
+ "hash": "sha256:8f77b15b331599bb384c02567fee0b2215691c69a76d364c29580b0930de1a7b"
470
+ },
471
+ {
472
+ "path": "recipe-footer.md",
473
+ "size": 7107,
474
+ "hash": "sha256:534369d865b44b752c51cc60d0c141c9e8f476ac59462e7d2013c5c0dc8dab9b"
475
+ },
476
+ {
477
+ "path": "recipe-form-section.md",
478
+ "size": 8676,
479
+ "hash": "sha256:ef5c72a29137302c7c939c666574c639abe3f737d32eccc6e8218e13bd4cbbf1"
480
+ },
481
+ {
482
+ "path": "recipe-hero.md",
483
+ "size": 3138,
484
+ "hash": "sha256:a3276a485257f8ba745482b75d9ca368812918d6f6a3e9dc351c2ddedffcc817"
485
+ },
486
+ {
487
+ "path": "recipe-landing-page.md",
488
+ "size": 3513,
489
+ "hash": "sha256:fdab8439e7a21ba901cc86c577092f9765a33d822044b66384b4c02c473a18cf"
490
+ },
491
+ {
492
+ "path": "recipe-logo-wall.md",
493
+ "size": 2702,
494
+ "hash": "sha256:d9ffed408a5dd0adeab19bc425413432db143fc12c2b58b73b49c31b5c608c40"
495
+ },
496
+ {
497
+ "path": "recipe-multi-step-flow.md",
498
+ "size": 3712,
499
+ "hash": "sha256:4921735a867d6635bc7a0152e2045fbcffb94b5ba047004fbbd5720e46080077"
500
+ },
501
+ {
502
+ "path": "recipe-page-header.md",
503
+ "size": 3483,
504
+ "hash": "sha256:83728fd741f2518ef97d927ea5bb33969b1609a1fca38ceb836ed733178cb42f"
505
+ },
506
+ {
507
+ "path": "recipe-page-shell.md",
508
+ "size": 3537,
509
+ "hash": "sha256:1392b86cafabeeb375b62d791804f8d4012345a72716cac6f80824253beb842e"
510
+ },
511
+ {
512
+ "path": "recipe-pricing.md",
513
+ "size": 3106,
514
+ "hash": "sha256:babee8bad4e2a8ddaf3baf5fbbddf82914a2f910be0c52e2b4df2e191407a084"
515
+ },
516
+ {
517
+ "path": "recipe-query-bar.md",
518
+ "size": 4024,
519
+ "hash": "sha256:caeb50b6bf583bc55963fa225677d9adb0701db7e705219f380490e450767739"
520
+ },
521
+ {
522
+ "path": "recipe-record-detail.md",
523
+ "size": 3249,
524
+ "hash": "sha256:8322cff9a5a1b344e10b7e63f25297d5cdfe58e21b6d53419910ef75acb2ef53"
525
+ },
526
+ {
527
+ "path": "recipe-settings-page.md",
528
+ "size": 7978,
529
+ "hash": "sha256:837984d7079f0334b5c3f12a7490f7febdca050ecb4ec675284f4e17259a7ec4"
530
+ },
531
+ {
532
+ "path": "recipe-stat-callouts.md",
533
+ "size": 3684,
534
+ "hash": "sha256:b0f0c70364f797265413b40b741e349f1e88429bf3e1bd9fc9c020cce37730ee"
535
+ },
536
+ {
537
+ "path": "recipe-states.md",
538
+ "size": 3684,
539
+ "hash": "sha256:9d25de854ed1ea06a74412aa26f3e238d559977075aa02877ef17f2a398b8605"
540
+ },
541
+ {
542
+ "path": "recipe-summary-list.md",
543
+ "size": 2808,
544
+ "hash": "sha256:c3ee287cdac7986994d53041cf2d6cf461018d039dca6224bd01e01275ef3b9a"
545
+ },
546
+ {
547
+ "path": "recipe-template.md",
548
+ "size": 3268,
549
+ "hash": "sha256:9117d2cfccb0c1d33ebb05272b7fac5d98f92570f44dff06b0072e7a72a1d45e"
550
+ },
551
+ {
552
+ "path": "recipe-testimonial.md",
553
+ "size": 2324,
554
+ "hash": "sha256:ee43cacccda063d1843759d117153e5ae658d2a0f0130c504e3d62dabedc9171"
555
+ },
556
+ {
557
+ "path": "SKILL.md",
558
+ "size": 9065,
559
+ "hash": "sha256:e9b12497656c5258cb88968548689a8e4a960b701861012c853c0b969dc946d4"
560
+ },
561
+ {
562
+ "path": "spacing-steps.md",
563
+ "size": 2379,
564
+ "hash": "sha256:f2b089b1575994f2f15b6220e76436e475c45c57efa6951aecbf497fa31bdb81"
565
+ },
566
+ {
567
+ "path": "tokens.md",
568
+ "size": 4547,
569
+ "hash": "sha256:de72dee7c0334a6dc074f02223e5142a53742c8889baac4402a18d3d74a5bba3"
570
+ }
571
+ ]
572
+ }
573
+ ]
574
+ };
575
+
576
+ // src/index.ts
577
+ var SKILLS = manifest;
578
+ var SKILL_NAMES = SKILLS.skills.map((skill) => skill.name);
579
+ function skillFileSpecifier(skill, relativePath) {
580
+ return `@uxelle/skills/skills/${skill}/${relativePath}`;
581
+ }
582
+ export {
583
+ SKILLS,
584
+ SKILL_NAMES,
585
+ skillFileSpecifier
586
+ };