@phcdevworks/spectre-ui 2.0.0 → 2.1.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/CHANGELOG.md +18 -0
- package/README.md +6 -0
- package/dist/index.cjs +29 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +19 -1
- package/dist/index.d.ts +19 -1
- package/dist/index.js +27 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,24 @@ reflects package releases published to npm.
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [2.1.0] - 2026-06-17
|
|
10
|
+
|
|
11
|
+
Release Title: Layout Recipe Expansion
|
|
12
|
+
|
|
13
|
+
Contract change type: additive
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
|
|
17
|
+
- **Layout Recipes**: Added `getContainerClasses`, `getStackClasses`, and
|
|
18
|
+
`getSectionClasses` recipes wrapping the existing token-backed
|
|
19
|
+
`.sp-container`, `.sp-stack` / `.sp-hstack`, and `.sp-section` utility
|
|
20
|
+
classes in `src/styles/utilities.css`. These classes already consumed the
|
|
21
|
+
published `layout.*` token group (`@phcdevworks/spectre-tokens@2.9.0`) with
|
|
22
|
+
no token gap; this adds the missing recipe wrapper to match every other
|
|
23
|
+
component family. `getStackClasses` supports a `direction` option
|
|
24
|
+
(`vertical` | `horizontal`) mapping to `.sp-stack` / `.sp-hstack`. This is
|
|
25
|
+
Phase 4b in `TODO.md`.
|
|
26
|
+
|
|
9
27
|
## [2.0.0] - 2026-06-17
|
|
10
28
|
|
|
11
29
|
Release Title: Token 3 Alignment
|
package/README.md
CHANGED
|
@@ -274,6 +274,9 @@ All options are optional and fall back to sensible defaults.
|
|
|
274
274
|
| Tooltip | `getTooltipClasses` | placement: `top` `bottom` `left` `right` | — | `visible` |
|
|
275
275
|
| Dropdown | `getDropdownClasses` | menu placement: `bottom-start` `bottom-end` `top-start` `top-end` | — | `fullWidth`, item: `active` `disabled` |
|
|
276
276
|
| Modal | `getModalClasses` | — | — | `open` `fullWidth` |
|
|
277
|
+
| Container | `getContainerClasses` | — | — | — |
|
|
278
|
+
| Stack | `getStackClasses` | direction: `vertical` `horizontal` | — | — |
|
|
279
|
+
| Section | `getSectionClasses` | — | — | — |
|
|
277
280
|
|
|
278
281
|
Each recipe family also exports sub-element helpers for its structural parts
|
|
279
282
|
(labels, wrappers, sub-containers, text elements). See the full list below.
|
|
@@ -298,6 +301,7 @@ Root recipe functions:
|
|
|
298
301
|
- `getBadgeClasses`
|
|
299
302
|
- `getButtonClasses`
|
|
300
303
|
- `getCardClasses`
|
|
304
|
+
- `getContainerClasses`
|
|
301
305
|
- `getDropdownClasses`
|
|
302
306
|
- `getIconBoxClasses`
|
|
303
307
|
- `getInputClasses`
|
|
@@ -305,7 +309,9 @@ Root recipe functions:
|
|
|
305
309
|
- `getNavClasses`
|
|
306
310
|
- `getPricingCardClasses`
|
|
307
311
|
- `getRatingClasses`
|
|
312
|
+
- `getSectionClasses`
|
|
308
313
|
- `getSpinnerClasses`
|
|
314
|
+
- `getStackClasses`
|
|
309
315
|
- `getTagClasses`
|
|
310
316
|
- `getTestimonialClasses`
|
|
311
317
|
- `getToastClasses`
|
package/dist/index.cjs
CHANGED
|
@@ -898,11 +898,38 @@ function getModalClasses(opts = {}) {
|
|
|
898
898
|
);
|
|
899
899
|
}
|
|
900
900
|
|
|
901
|
+
// src/recipes/container.ts
|
|
902
|
+
function getContainerClasses(_opts = {}) {
|
|
903
|
+
return "sp-container";
|
|
904
|
+
}
|
|
905
|
+
|
|
906
|
+
// src/recipes/stack.ts
|
|
907
|
+
var STACK_DIRECTIONS = {
|
|
908
|
+
vertical: true,
|
|
909
|
+
horizontal: true
|
|
910
|
+
};
|
|
911
|
+
function getStackClasses(opts = {}) {
|
|
912
|
+
const { direction: directionInput } = opts;
|
|
913
|
+
const direction = resolveOption({
|
|
914
|
+
name: "stack direction",
|
|
915
|
+
value: directionInput,
|
|
916
|
+
allowed: STACK_DIRECTIONS,
|
|
917
|
+
fallback: "vertical"
|
|
918
|
+
});
|
|
919
|
+
return direction === "horizontal" ? "sp-hstack" : "sp-stack";
|
|
920
|
+
}
|
|
921
|
+
|
|
922
|
+
// src/recipes/section.ts
|
|
923
|
+
function getSectionClasses(_opts = {}) {
|
|
924
|
+
return "sp-section";
|
|
925
|
+
}
|
|
926
|
+
|
|
901
927
|
exports.getAlertClasses = getAlertClasses;
|
|
902
928
|
exports.getAvatarClasses = getAvatarClasses;
|
|
903
929
|
exports.getBadgeClasses = getBadgeClasses;
|
|
904
930
|
exports.getButtonClasses = getButtonClasses;
|
|
905
931
|
exports.getCardClasses = getCardClasses;
|
|
932
|
+
exports.getContainerClasses = getContainerClasses;
|
|
906
933
|
exports.getDropdownClasses = getDropdownClasses;
|
|
907
934
|
exports.getDropdownItemClasses = getDropdownItemClasses;
|
|
908
935
|
exports.getDropdownMenuClasses = getDropdownMenuClasses;
|
|
@@ -926,7 +953,9 @@ exports.getRatingClasses = getRatingClasses;
|
|
|
926
953
|
exports.getRatingStarClasses = getRatingStarClasses;
|
|
927
954
|
exports.getRatingStarsClasses = getRatingStarsClasses;
|
|
928
955
|
exports.getRatingTextClasses = getRatingTextClasses;
|
|
956
|
+
exports.getSectionClasses = getSectionClasses;
|
|
929
957
|
exports.getSpinnerClasses = getSpinnerClasses;
|
|
958
|
+
exports.getStackClasses = getStackClasses;
|
|
930
959
|
exports.getTagClasses = getTagClasses;
|
|
931
960
|
exports.getTestimonialAuthorClasses = getTestimonialAuthorClasses;
|
|
932
961
|
exports.getTestimonialAuthorInfoClasses = getTestimonialAuthorInfoClasses;
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/css-constants.ts","../src/internal/cx.ts","../src/internal/resolve-option.ts","../src/recipes/button.ts","../src/recipes/card.ts","../src/recipes/input.ts","../src/recipes/badge.ts","../src/recipes/iconbox.ts","../src/recipes/testimonial.ts","../src/recipes/pricing-card.ts","../src/recipes/rating.ts","../src/recipes/alert.ts","../src/recipes/avatar.ts","../src/recipes/tag.ts","../src/recipes/spinner.ts","../src/recipes/nav.ts","../src/recipes/toast.ts","../src/recipes/tooltip.ts","../src/recipes/dropdown.ts","../src/recipes/modal.ts"],"names":[],"mappings":";;;AAAO,IAAM,qBAAA,GAAwB;AAC9B,IAAM,2BAAA,GAA8B;AACpC,IAAM,0BAAA,GAA6B;AACnC,IAAM,sBAAA,GAAyB;AAE/B,IAAM,aAAA,GAAgB;AAAA,EAC3B,KAAA,EAAO,sBAAA;AAAA,EACP,IAAA,EAAM,qBAAA;AAAA,EACN,UAAA,EAAY,2BAAA;AAAA,EACZ,SAAA,EAAW;AACb;;;ACVO,SAAS,MAAM,KAAA,EAAyD;AAC7E,EAAA,MAAM,IAAA,uBAAW,GAAA,EAAY;AAC7B,EAAA,MAAM,UAAoB,EAAC;AAE3B,EAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACxB,IAAA,IAAI,CAAC,IAAA,EAAM;AACX,IAAA,MAAM,OAAA,GAAU,KAAK,IAAA,EAAK;AAC1B,IAAA,IAAI,CAAC,OAAA,EAAS;AAEd,IAAA,IAAI,CAAC,IAAA,CAAK,IAAA,CAAK,OAAO,CAAA,EAAG;AACvB,MAAA,IAAI,CAAC,IAAA,CAAK,GAAA,CAAI,OAAO,CAAA,EAAG;AACtB,QAAA,IAAA,CAAK,IAAI,OAAO,CAAA;AAChB,QAAA,OAAA,CAAQ,KAAK,OAAO,CAAA;AAAA,MACtB;AACA,MAAA;AAAA,IACF;AAEA,IAAA,KAAA,MAAW,KAAA,IAAS,OAAA,CAAQ,KAAA,CAAM,KAAK,CAAA,EAAG;AACxC,MAAA,IAAI,CAAC,KAAA,IAAS,IAAA,CAAK,GAAA,CAAI,KAAK,CAAA,EAAG;AAC/B,MAAA,IAAA,CAAK,IAAI,KAAK,CAAA;AACd,MAAA,OAAA,CAAQ,KAAK,KAAK,CAAA;AAAA,IACpB;AAAA,EACF;AAEA,EAAA,OAAO,OAAA,CAAQ,KAAK,GAAG,CAAA;AACzB;;;ACvBA,IAAM,MAAA,GAAS,CAAC,KAAA,EAAe,GAAA,KAC7B,OAAO,SAAA,CAAU,cAAA,CAAe,IAAA,CAAK,KAAA,EAAO,GAAG,CAAA;AAEjD,IAAM,cAAA,GAAiB,CAAmB,KAAA,EAAU,OAAA,KAClD,MAAM,OAAA,CAAQ,OAAO,CAAA,GAAI,OAAA,CAAQ,QAAA,CAAS,KAAK,CAAA,GAAI,MAAA,CAAO,SAAS,KAAK,CAAA;AAEnE,SAAS,cAAgC,MAAA,EAK1C;AACJ,EAAA,MAAM,EAAE,IAAA,EAAM,KAAA,EAAO,OAAA,EAAS,UAAS,GAAI,MAAA;AAE3C,EAAA,IAAI,KAAA,KAAU,QAAW,OAAO,QAAA;AAChC,EAAA,IAAI,cAAA,CAAe,KAAA,EAAO,OAAO,CAAA,EAAG,OAAO,KAAA;AAE3C,EAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,YAAA,EAAc;AACzC,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,qBAAA,EAAwB,IAAI,CAAA,EAAA,EAAK,KAAK,CAAA,CAAE,CAAA;AAAA,EAC1D;AAEA,EAAA,OAAO,QAAA;AACT;;;ACrBA,IAAM,eAAA,GAAkB;AAAA,EACtB,OAAA,EAAS,IAAA;AAAA,EACT,SAAA,EAAW,IAAA;AAAA,EACX,KAAA,EAAO,IAAA;AAAA,EACP,MAAA,EAAQ,IAAA;AAAA,EACR,OAAA,EAAS,IAAA;AAAA,EACT,GAAA,EAAK,IAAA;AAAA,EACL,MAAA,EAAQ;AACV,CAAA;AAEA,IAAM,YAAA,GAAe;AAAA,EACnB,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAkBO,SAAS,gBAAA,CAAiB,IAAA,GAA4B,EAAC,EAAW;AACvE,EAAA,MAAM;AAAA,IACJ,OAAA,EAAS,YAAA;AAAA,IACT,IAAA,EAAM,SAAA;AAAA,IACN,SAAA,GAAY,KAAA;AAAA,IACZ,OAAA,GAAU,KAAA;AAAA,IACV,QAAA,GAAW,KAAA;AAAA,IACX,OAAA,GAAU,KAAA;AAAA,IACV,OAAA,GAAU,KAAA;AAAA,IACV,MAAA,GAAS,KAAA;AAAA,IACT,QAAA,GAAW,KAAA;AAAA,IACX,IAAA,GAAO;AAAA,GACT,GAAI,IAAA;AAEJ,EAAA,MAAM,UAAU,aAAA,CAAc;AAAA,IAC5B,IAAA,EAAM,gBAAA;AAAA,IACN,KAAA,EAAO,YAAA;AAAA,IACP,OAAA,EAAS,eAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AACD,EAAA,MAAM,OAAO,aAAA,CAAc;AAAA,IACzB,IAAA,EAAM,aAAA;AAAA,IACN,KAAA,EAAO,SAAA;AAAA,IACP,OAAA,EAAS,YAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,MAAM,UAAA,GAA4C;AAAA,IAChD,OAAA,EAAS,iBAAA;AAAA,IACT,SAAA,EAAW,mBAAA;AAAA,IACX,KAAA,EAAO,eAAA;AAAA,IACP,MAAA,EAAQ,gBAAA;AAAA,IACR,OAAA,EAAS,iBAAA;AAAA,IACT,GAAA,EAAK,aAAA;AAAA,IACL,MAAA,EAAQ;AAAA,GACV;AACA,EAAA,MAAM,YAAA,GAAe,WAAW,OAAO,CAAA;AAEvC,EAAA,MAAM,OAAA,GAAsC;AAAA,IAC1C,EAAA,EAAI,YAAA;AAAA,IACJ,EAAA,EAAI,YAAA;AAAA,IACJ,EAAA,EAAI;AAAA,GACN;AACA,EAAA,MAAM,SAAA,GAAY,QAAQ,IAAI,CAAA;AAE9B,EAAA,OAAO,EAAA;AAAA,IACL,QAAA;AAAA,IACA,YAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA,IAAa,cAAA;AAAA,IACb,OAAA,IAAW,iBAAA;AAAA,IACX,QAAA,IAAY,kBAAA;AAAA,IACZ,OAAA,IAAW,wBAAA;AAAA,IACX,OAAA,IAAW,wBAAA;AAAA,IACX,MAAA,IAAU,0BAAA;AAAA,IACV,QAAA,IAAY,cAAA;AAAA,IACZ,IAAA,IAAQ;AAAA,GACV;AACF;;;AC1FA,IAAM,aAAA,GAAgB;AAAA,EACpB,QAAA,EAAU,IAAA;AAAA,EACV,IAAA,EAAM,IAAA;AAAA,EACN,OAAA,EAAS,IAAA;AAAA,EACT,KAAA,EAAO;AACT,CAAA;AAgBO,SAAS,cAAA,CAAe,IAAA,GAA0B,EAAC,EAAW;AACnE,EAAA,MAAM;AAAA,IACJ,OAAA,EAAS,YAAA;AAAA,IACT,WAAA,GAAc,KAAA;AAAA,IACd,MAAA,GAAS,KAAA;AAAA,IACT,UAAA,GAAa,KAAA;AAAA,IACb,QAAA,GAAW,KAAA;AAAA,IACX,OAAA,GAAU,KAAA;AAAA,IACV,OAAA,GAAU,KAAA;AAAA,IACV,OAAA,GAAU,KAAA;AAAA,IACV,MAAA,GAAS;AAAA,GACX,GAAI,IAAA;AAEJ,EAAA,MAAM,UAAU,aAAA,CAAc;AAAA,IAC5B,IAAA,EAAM,cAAA;AAAA,IACN,KAAA,EAAO,YAAA;AAAA,IACP,OAAA,EAAS,aAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,MAAM,UAAA,GAA0C;AAAA,IAC9C,QAAA,EAAU,mBAAA;AAAA,IACV,IAAA,EAAM,eAAA;AAAA,IACN,OAAA,EAAS,kBAAA;AAAA,IACT,KAAA,EAAO;AAAA,GACT;AACA,EAAA,MAAM,YAAA,GAAe,WAAW,OAAO,CAAA;AAEvC,EAAA,OAAO,EAAA;AAAA,IACL,SAAA;AAAA,IACA,YAAA;AAAA,IACA,WAAA,IAAe,sBAAA;AAAA,IACf,MAAA,IAAU,iBAAA;AAAA,IACV,UAAA,IAAc,eAAA;AAAA,IACd,QAAA,IAAY,mBAAA;AAAA,IACZ,OAAA,IAAW,kBAAA;AAAA,IACX,OAAA,IAAW,yBAAA;AAAA,IACX,OAAA,IAAW,yBAAA;AAAA,IACX,MAAA,IAAU;AAAA,GACZ;AACF;;;AC7DA,IAAM,YAAA,GAAe;AAAA,EACnB,OAAA,EAAS,IAAA;AAAA,EACT,KAAA,EAAO,IAAA;AAAA,EACP,OAAA,EAAS,IAAA;AAAA,EACT,QAAA,EAAU,IAAA;AAAA,EACV,OAAA,EAAS;AACX,CAAA;AAEA,IAAM,WAAA,GAAc;AAAA,EAClB,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAiBO,SAAS,eAAA,CAAgB,IAAA,GAA2B,EAAC,EAAW;AACrE,EAAA,MAAM;AAAA,IACJ,KAAA,EAAO,UAAA;AAAA,IACP,IAAA,EAAM,SAAA;AAAA,IACN,SAAA,GAAY,KAAA;AAAA,IACZ,IAAA,GAAO,KAAA;AAAA,IACP,OAAA,GAAU,KAAA;AAAA,IACV,OAAA,GAAU,KAAA;AAAA,IACV,MAAA,GAAS,KAAA;AAAA,IACT,QAAA,GAAW,KAAA;AAAA,IACX,OAAA,GAAU;AAAA,GACZ,GAAI,IAAA;AAEJ,EAAA,MAAM,QAAQ,aAAA,CAAc;AAAA,IAC1B,IAAA,EAAM,aAAA;AAAA,IACN,KAAA,EAAO,UAAA;AAAA,IACP,OAAA,EAAS,YAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AACD,EAAA,MAAM,OAAO,aAAA,CAAc;AAAA,IACzB,IAAA,EAAM,YAAA;AAAA,IACN,KAAA,EAAO,SAAA;AAAA,IACP,OAAA,EAAS,WAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,MAAM,OAAA,GAAqC;AAAA,IACzC,EAAA,EAAI,cAAA;AAAA,IACJ,EAAA,EAAI,cAAA;AAAA,IACJ,EAAA,EAAI;AAAA,GACN;AACA,EAAA,MAAM,SAAA,GAAY,QAAQ,IAAI,CAAA;AAE9B,EAAA,OAAO,EAAA;AAAA,IACL,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAU,OAAA,IAAW,iBAAA;AAAA,IACrB,UAAU,SAAA,IAAa,mBAAA;AAAA;AAAA,IAAA,CAEtB,KAAA,KAAU,cAAc,QAAA,KAAa,oBAAA;AAAA,IAAA,CACrC,KAAA,KAAU,aAAa,OAAA,KAAY,mBAAA;AAAA,IACpC,OAAA,IAAW,0BAAA;AAAA,IACX,OAAA,IAAW,0BAAA;AAAA,IACX,MAAA,IAAU,4BAAA;AAAA,IACV,SAAA,IAAa,gBAAA;AAAA,IACb,IAAA,IAAQ;AAAA,GACV;AACF;AAEO,SAAS,sBAAA,GAAiC;AAC/C,EAAA,OAAO,GAAG,kBAAkB,CAAA;AAC9B;AAEO,SAAS,oBAAA,CAAqB,IAAA,GAA+B,EAAC,EAAW;AAC9E,EAAA,MAAM,EAAE,QAAA,GAAW,KAAA,EAAM,GAAI,IAAA;AAC7B,EAAA,OAAO,EAAA;AAAA,IACL,UAAA;AAAA,IACA,QAAA,IAAY;AAAA,GACd;AACF;AAEO,SAAS,yBAAA,CAA0B,IAAA,GAA+B,EAAC,EAAW;AACnF,EAAA,MAAM,EAAE,QAAA,GAAW,KAAA,EAAM,GAAI,IAAA;AAC7B,EAAA,OAAO,EAAA;AAAA,IACL,gBAAA;AAAA,IACA,QAAA,IAAY;AAAA,GACd;AACF;AAEO,SAAS,2BAAA,GAAsC;AACpD,EAAA,OAAO,GAAG,kBAAkB,CAAA;AAC9B;;;ACpGA,IAAM,cAAA,GAAiB;AAAA,EACrB,OAAA,EAAS,IAAA;AAAA,EACT,SAAA,EAAW,IAAA;AAAA,EACX,OAAA,EAAS,IAAA;AAAA,EACT,OAAA,EAAS,IAAA;AAAA,EACT,MAAA,EAAQ,IAAA;AAAA,EACR,OAAA,EAAS,IAAA;AAAA,EACT,IAAA,EAAM,IAAA;AAAA,EACN,KAAA,EAAO,IAAA;AAAA,EACP,OAAA,EAAS,IAAA;AAAA,EACT,MAAA,EAAQ,IAAA;AAAA,EACR,GAAA,EAAK;AACP,CAAA;AAEA,IAAM,WAAA,GAAc;AAAA,EAClB,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAiBO,SAAS,eAAA,CAAgB,IAAA,GAA2B,EAAC,EAAW;AACrE,EAAA,MAAM;AAAA,IACJ,OAAA,EAAS,YAAA;AAAA,IACT,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,GAAc,KAAA;AAAA,IACd,OAAA,GAAU,KAAA;AAAA,IACV,OAAA,GAAU,KAAA;AAAA,IACV,MAAA,GAAS,KAAA;AAAA,IACT,QAAA,GAAW,KAAA;AAAA,IACX,OAAA,GAAU,KAAA;AAAA,IACV,SAAA,GAAY;AAAA,GACd,GAAI,IAAA;AAEJ,EAAA,MAAM,UAAU,aAAA,CAAc;AAAA,IAC5B,IAAA,EAAM,eAAA;AAAA,IACN,KAAA,EAAO,YAAA;AAAA,IACP,OAAA,EAAS,cAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AACD,EAAA,MAAM,OAAO,aAAA,CAAc;AAAA,IACzB,IAAA,EAAM,YAAA;AAAA,IACN,KAAA,EAAO,SAAA;AAAA,IACP,OAAA,EAAS,WAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,MAAM,UAAA,GAA2C;AAAA,IAC/C,OAAA,EAAS,mBAAA;AAAA,IACT,SAAA,EAAW,qBAAA;AAAA,IACX,OAAA,EAAS,mBAAA;AAAA,IACT,OAAA,EAAS,mBAAA;AAAA,IACT,MAAA,EAAQ,kBAAA;AAAA,IACR,OAAA,EAAS,mBAAA;AAAA,IACT,IAAA,EAAM,gBAAA;AAAA,IACN,KAAA,EAAO,iBAAA;AAAA,IACP,OAAA,EAAS,mBAAA;AAAA,IACT,MAAA,EAAQ,kBAAA;AAAA,IACR,GAAA,EAAK;AAAA,GACP;AACA,EAAA,MAAM,YAAA,GAAe,WAAW,OAAO,CAAA;AAEvC,EAAA,MAAM,OAAA,GAAqC;AAAA,IACzC,EAAA,EAAI,cAAA;AAAA,IACJ,EAAA,EAAI,cAAA;AAAA,IACJ,EAAA,EAAI;AAAA,GACN;AACA,EAAA,MAAM,SAAA,GAAY,QAAQ,IAAI,CAAA;AAE9B,EAAA,OAAO,EAAA;AAAA,IACL,UAAA;AAAA,IACA,YAAA;AAAA,IACA,SAAA;AAAA,IACA,WAAA,IAAe,uBAAA;AAAA,IACf,OAAA,IAAW,0BAAA;AAAA,IACX,OAAA,IAAW,0BAAA;AAAA,IACX,MAAA,IAAU,4BAAA;AAAA,IACV,QAAA,IAAY,oBAAA;AAAA,IACZ,OAAA,IAAW,mBAAA;AAAA,IACX,SAAA,IAAa;AAAA,GACf;AACF;;;AC/FA,IAAM,gBAAA,GAAmB;AAAA,EACvB,OAAA,EAAS,IAAA;AAAA,EACT,SAAA,EAAW,IAAA;AAAA,EACX,OAAA,EAAS,IAAA;AAAA,EACT,OAAA,EAAS,IAAA;AAAA,EACT,MAAA,EAAQ,IAAA;AAAA,EACR,IAAA,EAAM,IAAA;AAAA,EACN,OAAA,EAAS,IAAA;AAAA,EACT,KAAA,EAAO,IAAA;AAAA,EACP,MAAA,EAAQ,IAAA;AAAA,EACR,GAAA,EAAK,IAAA;AAAA,EACL,OAAA,EAAS;AACX,CAAA;AAEA,IAAM,aAAA,GAAgB;AAAA,EACpB,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAkBO,SAAS,iBAAA,CAAkB,IAAA,GAA6B,EAAC,EAAW;AACzE,EAAA,MAAM;AAAA,IACJ,OAAA,EAAS,YAAA;AAAA,IACT,IAAA,EAAM,SAAA;AAAA,IACN,QAAA,GAAW,KAAA;AAAA,IACX,OAAA,GAAU,KAAA;AAAA,IACV,WAAA,GAAc,KAAA;AAAA,IACd,OAAA,GAAU,KAAA;AAAA,IACV,OAAA,GAAU,KAAA;AAAA,IACV,MAAA,GAAS,KAAA;AAAA,IACT,IAAA,GAAO,KAAA;AAAA,IACP,SAAA,GAAY;AAAA,GACd,GAAI,IAAA;AAEJ,EAAA,MAAM,UAAU,aAAA,CAAc;AAAA,IAC5B,IAAA,EAAM,kBAAA;AAAA,IACN,KAAA,EAAO,YAAA;AAAA,IACP,OAAA,EAAS,gBAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AACD,EAAA,MAAM,OAAO,aAAA,CAAc;AAAA,IACzB,IAAA,EAAM,eAAA;AAAA,IACN,KAAA,EAAO,SAAA;AAAA,IACP,OAAA,EAAS,aAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,MAAM,UAAA,GAA6C;AAAA,IACjD,OAAA,EAAS,qBAAA;AAAA,IACT,SAAA,EAAW,uBAAA;AAAA,IACX,OAAA,EAAS,qBAAA;AAAA,IACT,OAAA,EAAS,qBAAA;AAAA,IACT,MAAA,EAAQ,oBAAA;AAAA,IACR,IAAA,EAAM,kBAAA;AAAA,IACN,OAAA,EAAS,qBAAA;AAAA,IACT,KAAA,EAAO,mBAAA;AAAA,IACP,MAAA,EAAQ,oBAAA;AAAA,IACR,GAAA,EAAK,iBAAA;AAAA,IACL,OAAA,EAAS;AAAA,GACX;AACA,EAAA,MAAM,YAAA,GAAe,WAAW,OAAO,CAAA;AAEvC,EAAA,MAAM,OAAA,GAAuC;AAAA,IAC3C,EAAA,EAAI,gBAAA;AAAA,IACJ,EAAA,EAAI,gBAAA;AAAA,IACJ,EAAA,EAAI,gBAAA;AAAA,IACJ,EAAA,EAAI;AAAA,GACN;AACA,EAAA,MAAM,SAAA,GAAY,QAAQ,IAAI,CAAA;AAE9B,EAAA,OAAO,EAAA;AAAA,IACL,YAAA;AAAA,IACA,YAAA;AAAA,IACA,SAAA;AAAA,IACA,QAAA,IAAY,sBAAA;AAAA,IACZ,OAAA,IAAW,qBAAA;AAAA,IACX,WAAA,IAAe,yBAAA;AAAA,IACf,OAAA,IAAW,4BAAA;AAAA,IACX,OAAA,IAAW,4BAAA;AAAA,IACX,MAAA,IAAU,8BAAA;AAAA,IACV,IAAA,IAAQ,kBAAA;AAAA,IACR,SAAA,IAAa;AAAA,GACf;AACF;;;ACpGA,IAAM,oBAAA,GAAuB;AAAA,EAC3B,QAAA,EAAU,IAAA;AAAA,EACV,IAAA,EAAM,IAAA;AAAA,EACN,OAAA,EAAS,IAAA;AAAA,EACT,KAAA,EAAO;AACT,CAAA;AAeO,SAAS,qBAAA,CAAsB,IAAA,GAAiC,EAAC,EAAW;AACjF,EAAA,MAAM;AAAA,IACJ,OAAA,EAAS,YAAA;AAAA,IACT,QAAA,GAAW,KAAA;AAAA,IACX,OAAA,GAAU,KAAA;AAAA,IACV,WAAA,GAAc,KAAA;AAAA,IACd,OAAA,GAAU,KAAA;AAAA,IACV,OAAA,GAAU,KAAA;AAAA,IACV,MAAA,GAAS,KAAA;AAAA,IACT,UAAA,GAAa;AAAA,GACf,GAAI,IAAA;AAEJ,EAAA,MAAM,UAAU,aAAA,CAAc;AAAA,IAC5B,IAAA,EAAM,qBAAA;AAAA,IACN,KAAA,EAAO,YAAA;AAAA,IACP,OAAA,EAAS,oBAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,MAAM,UAAA,GAAiD;AAAA,IACrD,QAAA,EAAU,0BAAA;AAAA,IACV,IAAA,EAAM,sBAAA;AAAA,IACN,OAAA,EAAS,yBAAA;AAAA,IACT,KAAA,EAAO;AAAA,GACT;AACA,EAAA,MAAM,YAAA,GAAe,WAAW,OAAO,CAAA;AAEvC,EAAA,OAAO,EAAA;AAAA,IACL,gBAAA;AAAA,IACA,YAAA;AAAA,IACA,QAAA,IAAY,0BAAA;AAAA,IACZ,OAAA,IAAW,yBAAA;AAAA,IACX,WAAA,IAAe,6BAAA;AAAA,IACf,OAAA,IAAW,gCAAA;AAAA,IACX,OAAA,IAAW,gCAAA;AAAA,IACX,MAAA,IAAU,kCAAA;AAAA,IACV,UAAA,IAAc;AAAA,GAChB;AACF;AAEO,SAAS,0BAAA,GAAqC;AACnD,EAAA,OAAO,GAAG,sBAAsB,CAAA;AAClC;AAEO,SAAS,2BAAA,GAAsC;AACpD,EAAA,OAAO,GAAG,uBAAuB,CAAA;AACnC;AAEO,SAAS,+BAAA,GAA0C;AACxD,EAAA,OAAO,GAAG,4BAA4B,CAAA;AACxC;AAEO,SAAS,+BAAA,GAA0C;AACxD,EAAA,OAAO,GAAG,4BAA4B,CAAA;AACxC;AAEO,SAAS,gCAAA,GAA2C;AACzD,EAAA,OAAO,GAAG,6BAA6B,CAAA;AACzC;;;ACpEO,SAAS,qBAAA,CAAsB,IAAA,GAAiC,EAAC,EAAW;AACjF,EAAA,MAAM;AAAA,IACJ,QAAA,GAAW,KAAA;AAAA,IACX,QAAA,GAAW,KAAA;AAAA,IACX,OAAA,GAAU,KAAA;AAAA,IACV,WAAA,GAAc,KAAA;AAAA,IACd,OAAA,GAAU,KAAA;AAAA,IACV,OAAA,GAAU,KAAA;AAAA,IACV,MAAA,GAAS,KAAA;AAAA,IACT,UAAA,GAAa;AAAA,GACf,GAAI,IAAA;AAEJ,EAAA,OAAO,EAAA;AAAA,IACL,iBAAA;AAAA,IACA,QAAA,IAAY,2BAAA;AAAA,IACZ,QAAA,IAAY,2BAAA;AAAA,IACZ,OAAA,IAAW,0BAAA;AAAA,IACX,WAAA,IAAe,8BAAA;AAAA,IACf,OAAA,IAAW,iCAAA;AAAA,IACX,OAAA,IAAW,iCAAA;AAAA,IACX,MAAA,IAAU,mCAAA;AAAA,IACV,UAAA,IAAc;AAAA,GAChB;AACF;AAEO,SAAS,0BAAA,GAAqC;AACnD,EAAA,OAAO,GAAG,uBAAuB,CAAA;AACnC;AAEO,SAAS,mCAAA,GAA8C;AAC5D,EAAA,OAAO,GAAG,iCAAiC,CAAA;AAC7C;AAEO,SAAS,0BAAA,GAAqC;AACnD,EAAA,OAAO,GAAG,uBAAuB,CAAA;AACnC;AAEO,SAAS,gCAAA,GAA2C;AACzD,EAAA,OAAO,GAAG,6BAA6B,CAAA;AACzC;;;ACjDA,IAAM,YAAA,GAAe;AAAA,EACnB,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAgBO,SAAS,gBAAA,CAAiB,IAAA,GAA4B,EAAC,EAAW;AACvE,EAAA,MAAM;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,QAAA,GAAW,KAAA;AAAA,IACX,OAAA,GAAU,KAAA;AAAA,IACV,WAAA,GAAc,KAAA;AAAA,IACd,OAAA,GAAU,KAAA;AAAA,IACV,OAAA,GAAU,KAAA;AAAA,IACV,MAAA,GAAS,KAAA;AAAA,IACT,IAAA,GAAO,KAAA;AAAA,IACP,SAAA,GAAY;AAAA,GACd,GAAI,IAAA;AAEJ,EAAA,MAAM,OAAO,aAAA,CAAc;AAAA,IACzB,IAAA,EAAM,aAAA;AAAA,IACN,KAAA,EAAO,SAAA;AAAA,IACP,OAAA,EAAS,YAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,OAAO,EAAA;AAAA,IACL,WAAA;AAAA,IACA,cAAc,IAAI,CAAA,CAAA;AAAA,IAClB,QAAA,IAAY,qBAAA;AAAA,IACZ,OAAA,IAAW,oBAAA;AAAA,IACX,WAAA,IAAe,wBAAA;AAAA,IACf,OAAA,IAAW,2BAAA;AAAA,IACX,OAAA,IAAW,2BAAA;AAAA,IACX,MAAA,IAAU,6BAAA;AAAA,IACV,IAAA,IAAQ,iBAAA;AAAA,IACR,SAAA,IAAa;AAAA,GACf;AACF;AAEO,SAAS,qBAAA,GAAgC;AAC9C,EAAA,OAAO,GAAG,iBAAiB,CAAA;AAC7B;AAEO,SAAS,oBAAA,CAAqB,WAAoB,KAAA,EAAe;AACtE,EAAA,OAAO,EAAA,CAAG,gBAAA,EAAkB,QAAA,IAAY,wBAAwB,CAAA;AAClE;AAEO,SAAS,oBAAA,CAAqB,IAAA,GAA+B,EAAC,EAAW;AAC9E,EAAA,MAAM,EAAE,QAAA,GAAW,KAAA,EAAM,GAAI,IAAA;AAC7B,EAAA,OAAO,EAAA,CAAG,gBAAA,EAAkB,QAAA,IAAY,0BAA0B,CAAA;AACpE;;;ACjEA,IAAM,cAAA,GAAiB;AAAA,EACrB,IAAA,EAAM,IAAA;AAAA,EACN,OAAA,EAAS,IAAA;AAAA,EACT,OAAA,EAAS,IAAA;AAAA,EACT,MAAA,EAAQ,IAAA;AAAA,EACR,OAAA,EAAS;AACX,CAAA;AAEA,IAAM,WAAA,GAAc;AAAA,EAClB,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAkBO,SAAS,eAAA,CAAgB,IAAA,GAA2B,EAAC,EAAW;AACrE,EAAA,MAAM;AAAA,IACJ,OAAA,EAAS,YAAA;AAAA,IACT,IAAA,EAAM,SAAA;AAAA,IACN,SAAA,GAAY,KAAA;AAAA,IACZ,SAAA,GAAY,KAAA;AAAA,IACZ,WAAA,GAAc,KAAA;AAAA,IACd,OAAA,GAAU,KAAA;AAAA,IACV,OAAA,GAAU,KAAA;AAAA,IACV,MAAA,GAAS,KAAA;AAAA,IACT,QAAA,GAAW,KAAA;AAAA,IACX,OAAA,GAAU;AAAA,GACZ,GAAI,IAAA;AAEJ,EAAA,MAAM,UAAU,aAAA,CAAc;AAAA,IAC5B,IAAA,EAAM,eAAA;AAAA,IACN,KAAA,EAAO,YAAA;AAAA,IACP,OAAA,EAAS,cAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,MAAM,OAAO,aAAA,CAAc;AAAA,IACzB,IAAA,EAAM,YAAA;AAAA,IACN,KAAA,EAAO,SAAA;AAAA,IACP,OAAA,EAAS,WAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,OAAO,EAAA;AAAA,IACL,UAAA;AAAA,IACA,aAAa,OAAO,CAAA,CAAA;AAAA,IACpB,aAAa,IAAI,CAAA,CAAA;AAAA,IACjB,SAAA,IAAa,qBAAA;AAAA,IACb,SAAA,IAAa,gBAAA;AAAA,IACb,WAAA,IAAe,uBAAA;AAAA,IACf,OAAA,IAAW,0BAAA;AAAA,IACX,OAAA,IAAW,0BAAA;AAAA,IACX,MAAA,IAAU,4BAAA;AAAA,IACV,QAAA,IAAY,oBAAA;AAAA,IACZ,OAAA,IAAW;AAAA,GACb;AACF;;;ACvEA,IAAM,YAAA,GAAe;AAAA,EACnB,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,aAAA,GAAgB;AAAA,EACpB,MAAA,EAAQ,IAAA;AAAA,EACR,MAAA,EAAQ;AACV,CAAA;AAkBO,SAAS,gBAAA,CAAiB,IAAA,GAA4B,EAAC,EAAW;AACvE,EAAA,MAAM;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,KAAA,EAAO,UAAA;AAAA,IACP,QAAA,GAAW,KAAA;AAAA,IACX,OAAA,GAAU,KAAA;AAAA,IACV,WAAA,GAAc,KAAA;AAAA,IACd,OAAA,GAAU,KAAA;AAAA,IACV,OAAA,GAAU,KAAA;AAAA,IACV,MAAA,GAAS,KAAA;AAAA,IACT,SAAA,GAAY,KAAA;AAAA,IACZ,WAAA,GAAc;AAAA,GAChB,GAAI,IAAA;AAEJ,EAAA,MAAM,OAAO,aAAA,CAAc;AAAA,IACzB,IAAA,EAAM,aAAA;AAAA,IACN,KAAA,EAAO,SAAA;AAAA,IACP,OAAA,EAAS,YAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,MAAM,QAAQ,aAAA,CAAc;AAAA,IAC1B,IAAA,EAAM,cAAA;AAAA,IACN,KAAA,EAAO,UAAA;AAAA,IACP,OAAA,EAAS,aAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,OAAO,EAAA;AAAA,IACL,WAAA;AAAA,IACA,cAAc,IAAI,CAAA,CAAA;AAAA,IAClB,cAAc,KAAK,CAAA,CAAA;AAAA,IACnB,QAAA,IAAY,qBAAA;AAAA,IACZ,OAAA,IAAW,oBAAA;AAAA,IACX,WAAA,IAAe,wBAAA;AAAA,IACf,OAAA,IAAW,2BAAA;AAAA,IACX,OAAA,IAAW,2BAAA;AAAA,IACX,MAAA,IAAU,6BAAA;AAAA,IACV,SAAA,IAAa,iBAAA;AAAA,IACb,WAAA,IAAe;AAAA,GACjB;AACF;;;ACtEA,IAAM,YAAA,GAAe;AAAA,EACnB,OAAA,EAAS,IAAA;AAAA,EACT,OAAA,EAAS,IAAA;AAAA,EACT,SAAA,EAAW,IAAA;AAAA,EACX,OAAA,EAAS,IAAA;AAAA,EACT,OAAA,EAAS,IAAA;AAAA,EACT,MAAA,EAAQ,IAAA;AAAA,EACR,IAAA,EAAM,IAAA;AAAA,EACN,OAAA,EAAS,IAAA;AAAA,EACT,MAAA,EAAQ,IAAA;AAAA,EACR,GAAA,EAAK,IAAA;AAAA,EACL,OAAA,EAAS,IAAA;AAAA,EACT,KAAA,EAAO;AACT,CAAA;AAEA,IAAM,SAAA,GAAY;AAAA,EAChB,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAmBO,SAAS,aAAA,CAAc,IAAA,GAAyB,EAAC,EAAW;AACjE,EAAA,MAAM;AAAA,IACJ,OAAA,EAAS,YAAA;AAAA,IACT,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,GAAc,KAAA;AAAA,IACd,QAAA,GAAW,KAAA;AAAA,IACX,QAAA,GAAW,KAAA;AAAA,IACX,OAAA,GAAU,KAAA;AAAA,IACV,WAAA,GAAc,KAAA;AAAA,IACd,OAAA,GAAU,KAAA;AAAA,IACV,OAAA,GAAU,KAAA;AAAA,IACV,MAAA,GAAS,KAAA;AAAA,IACT,SAAA,GAAY;AAAA,GACd,GAAI,IAAA;AAEJ,EAAA,MAAM,UAAU,aAAA,CAAc;AAAA,IAC5B,IAAA,EAAM,aAAA;AAAA,IACN,KAAA,EAAO,YAAA;AAAA,IACP,OAAA,EAAS,YAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,MAAM,IAAA,GACJ,aACA,aAAA,CAAc;AAAA,IACZ,IAAA,EAAM,UAAA;AAAA,IACN,KAAA,EAAO,SAAA;AAAA,IACP,OAAA,EAAS,SAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AAEH,EAAA,OAAO,EAAA;AAAA,IACL,QAAA;AAAA,IACA,WAAW,OAAO,CAAA,CAAA;AAAA,IAClB,IAAA,IAAQ,WAAW,IAAI,CAAA,CAAA;AAAA,IACvB,WAAA,IAAe,qBAAA;AAAA,IACf,QAAA,IAAY,kBAAA;AAAA,IACZ,QAAA,IAAY,kBAAA;AAAA,IACZ,OAAA,IAAW,iBAAA;AAAA,IACX,WAAA,IAAe,qBAAA;AAAA,IACf,OAAA,IAAW,wBAAA;AAAA,IACX,OAAA,IAAW,wBAAA;AAAA,IACX,MAAA,IAAU,0BAAA;AAAA,IACV,SAAA,IAAa;AAAA,GACf;AACF;;;ACnFA,IAAM,gBAAA,GAAmB;AAAA,EACvB,OAAA,EAAS,IAAA;AAAA,EACT,SAAA,EAAW,IAAA;AAAA,EACX,OAAA,EAAS,IAAA;AAAA,EACT,OAAA,EAAS,IAAA;AAAA,EACT,MAAA,EAAQ,IAAA;AAAA,EACR,IAAA,EAAM,IAAA;AAAA,EACN,OAAA,EAAS,IAAA;AAAA,EACT,MAAA,EAAQ,IAAA;AAAA,EACR,GAAA,EAAK;AACP,CAAA;AAEA,IAAM,aAAA,GAAgB;AAAA,EACpB,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAYO,SAAS,iBAAA,CAAkB,IAAA,GAA6B,EAAC,EAAW;AACzE,EAAA,MAAM;AAAA,IACJ,OAAA,EAAS,YAAA;AAAA,IACT,IAAA,EAAM,SAAA;AAAA,IACN,QAAA,GAAW,KAAA;AAAA,IACX,OAAA,GAAU;AAAA,GACZ,GAAI,IAAA;AAEJ,EAAA,MAAM,OAAA,GACJ,gBACA,aAAA,CAAc;AAAA,IACZ,IAAA,EAAM,iBAAA;AAAA,IACN,KAAA,EAAO,YAAA;AAAA,IACP,OAAA,EAAS,gBAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AAEH,EAAA,MAAM,OAAO,aAAA,CAAc;AAAA,IACzB,IAAA,EAAM,cAAA;AAAA,IACN,KAAA,EAAO,SAAA;AAAA,IACP,OAAA,EAAS,aAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,OAAO,EAAA;AAAA,IACL,YAAA;AAAA,IACA,OAAA,IAAW,eAAe,OAAO,CAAA,CAAA;AAAA,IACjC,eAAe,IAAI,CAAA,CAAA;AAAA,IACnB,QAAA,IAAY,sBAAA;AAAA,IACZ,OAAA,IAAW;AAAA,GACb;AACF;;;ACtDO,SAAS,aAAA,CAAc,IAAA,GAAyB,EAAC,EAAW;AACjE,EAAA,MAAM,EAAE,QAAA,GAAW,KAAA,EAAO,SAAS,KAAA,EAAO,SAAA,GAAY,OAAM,GAAI,IAAA;AAEhE,EAAA,OAAO,EAAA;AAAA,IACL,QAAA;AAAA,IACA,QAAA,IAAY,kBAAA;AAAA,IACZ,MAAA,IAAU,gBAAA;AAAA,IACV,SAAA,IAAa;AAAA,GACf;AACF;AAEO,SAAS,kBAAA,GAA6B;AAC3C,EAAA,OAAO,GAAG,eAAe,CAAA;AAC3B;AASO,SAAS,iBAAA,CAAkB,IAAA,GAA6B,EAAC,EAAW;AACzE,EAAA,MAAM;AAAA,IACJ,MAAA,GAAS,KAAA;AAAA,IACT,QAAA,GAAW,KAAA;AAAA,IACX,OAAA,GAAU,KAAA;AAAA,IACV,OAAA,GAAU;AAAA,GACZ,GAAI,IAAA;AAEJ,EAAA,OAAO,EAAA;AAAA,IACL,cAAA;AAAA,IACA,MAAA,IAAU,sBAAA;AAAA,IACV,QAAA,IAAY,wBAAA;AAAA,IACZ,OAAA,IAAW,8BAAA;AAAA,IACX,OAAA,IAAW;AAAA,GACb;AACF;;;AC1CA,IAAM,cAAA,GAAiB;AAAA,EACrB,IAAA,EAAM,IAAA;AAAA,EACN,OAAA,EAAS,IAAA;AAAA,EACT,OAAA,EAAS,IAAA;AAAA,EACT,MAAA,EAAQ;AACV,CAAA;AAUO,SAAS,eAAA,CAAgB,IAAA,GAA2B,EAAC,EAAW;AACrE,EAAA,MAAM,EAAE,OAAA,EAAS,YAAA,EAAc,YAAY,KAAA,EAAO,SAAA,GAAY,OAAM,GAAI,IAAA;AAExE,EAAA,MAAM,UAAU,aAAA,CAAc;AAAA,IAC5B,IAAA,EAAM,eAAA;AAAA,IACN,KAAA,EAAO,YAAA;AAAA,IACP,OAAA,EAAS,cAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,OAAO,EAAA;AAAA,IACL,UAAA;AAAA,IACA,aAAa,OAAO,CAAA,CAAA;AAAA,IACpB,SAAA,IAAa,qBAAA;AAAA,IACb,SAAA,IAAa;AAAA,GACf;AACF;AAMO,SAAS,mBAAA,CACd,IAAA,GAA+B,EAAC,EACxB;AACR,EAAA,MAAM,EAAE,OAAA,EAAS,YAAA,EAAa,GAAI,IAAA;AAElC,EAAA,MAAM,UAAU,aAAA,CAAc;AAAA,IAC5B,IAAA,EAAM,eAAA;AAAA,IACN,KAAA,EAAO,YAAA;AAAA,IACP,OAAA,EAAS,cAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,OAAO,EAAA,CAAG,gBAAA,EAAkB,CAAA,gBAAA,EAAmB,OAAO,CAAA,CAAE,CAAA;AAC1D;;;AClDA,IAAM,kBAAA,GAAqB;AAAA,EACzB,GAAA,EAAK,IAAA;AAAA,EACL,MAAA,EAAQ,IAAA;AAAA,EACR,IAAA,EAAM,IAAA;AAAA,EACN,KAAA,EAAO;AACT,CAAA;AASO,SAAS,iBAAA,CAAkB,IAAA,GAA6B,EAAC,EAAW;AACzE,EAAA,MAAM,EAAE,SAAA,EAAW,cAAA,EAAgB,OAAA,GAAU,OAAM,GAAI,IAAA;AAEvD,EAAA,MAAM,YAAY,aAAA,CAAc;AAAA,IAC9B,IAAA,EAAM,mBAAA;AAAA,IACN,KAAA,EAAO,cAAA;AAAA,IACP,OAAA,EAAS,kBAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,OAAO,EAAA;AAAA,IACL,YAAA;AAAA,IACA,eAAe,SAAS,CAAA,CAAA;AAAA,IACxB,OAAA,IAAW;AAAA,GACb;AACF;;;AC7BA,IAAM,mBAAA,GAAsB;AAAA,EAC1B,cAAA,EAAgB,IAAA;AAAA,EAChB,YAAA,EAAc,IAAA;AAAA,EACd,WAAA,EAAa,IAAA;AAAA,EACb,SAAA,EAAW;AACb,CAAA;AAQO,SAAS,kBAAA,CAAmB,IAAA,GAA8B,EAAC,EAAW;AAC3E,EAAA,MAAM,EAAE,SAAA,GAAY,KAAA,EAAM,GAAI,IAAA;AAE9B,EAAA,OAAO,EAAA,CAAG,aAAA,EAAe,SAAA,IAAa,mBAAmB,CAAA;AAC3D;AAOO,SAAS,sBAAA,CACd,IAAA,GAAkC,EAAC,EAC3B;AACR,EAAA,MAAM,EAAE,SAAA,EAAW,cAAA,EAAgB,IAAA,GAAO,OAAM,GAAI,IAAA;AAEpD,EAAA,MAAM,YAAY,aAAA,CAAc;AAAA,IAC9B,IAAA,EAAM,yBAAA;AAAA,IACN,KAAA,EAAO,cAAA;AAAA,IACP,OAAA,EAAS,mBAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,OAAO,EAAA;AAAA,IACL,mBAAA;AAAA,IACA,sBAAsB,SAAS,CAAA,CAAA;AAAA,IAC/B,IAAA,IAAQ;AAAA,GACV;AACF;AASO,SAAS,sBAAA,CACd,IAAA,GAAkC,EAAC,EAC3B;AACR,EAAA,MAAM;AAAA,IACJ,MAAA,GAAS,KAAA;AAAA,IACT,QAAA,GAAW,KAAA;AAAA,IACX,OAAA,GAAU,KAAA;AAAA,IACV,OAAA,GAAU;AAAA,GACZ,GAAI,IAAA;AAEJ,EAAA,OAAO,EAAA;AAAA,IACL,mBAAA;AAAA,IACA,MAAA,IAAU,2BAAA;AAAA,IACV,QAAA,IAAY,6BAAA;AAAA,IACZ,OAAA,IAAW,mCAAA;AAAA,IACX,OAAA,IAAW;AAAA,GACb;AACF;;;AChEO,SAAS,sBAAA,CACd,IAAA,GAAkC,EAAC,EAC3B;AACR,EAAA,MAAM,EAAE,IAAA,GAAO,KAAA,EAAM,GAAI,IAAA;AAEzB,EAAA,OAAO,EAAA,CAAG,kBAAA,EAAoB,IAAA,IAAQ,wBAAwB,CAAA;AAChE;AAOO,SAAS,eAAA,CAAgB,IAAA,GAA2B,EAAC,EAAW;AACrE,EAAA,MAAM,EAAE,IAAA,GAAO,KAAA,EAAO,SAAA,GAAY,OAAM,GAAI,IAAA;AAE5C,EAAA,OAAO,EAAA;AAAA,IACL,UAAA;AAAA,IACA,IAAA,IAAQ,gBAAA;AAAA,IACR,SAAA,IAAa;AAAA,GACf;AACF","file":"index.cjs","sourcesContent":["export const spectreBaseStylesPath = \"@phcdevworks/spectre-ui/base.css\";\nexport const spectreComponentsStylesPath = \"@phcdevworks/spectre-ui/components.css\";\nexport const spectreUtilitiesStylesPath = \"@phcdevworks/spectre-ui/utilities.css\";\nexport const spectreIndexStylesPath = \"@phcdevworks/spectre-ui/index.css\";\n\nexport const spectreStyles = {\n index: spectreIndexStylesPath,\n base: spectreBaseStylesPath,\n components: spectreComponentsStylesPath,\n utilities: spectreUtilitiesStylesPath,\n};\n","export function cx(...parts: Array<string | false | null | undefined>): string {\n const seen = new Set<string>();\n const classes: string[] = [];\n\n for (const part of parts) {\n if (!part) continue;\n const trimmed = part.trim();\n if (!trimmed) continue;\n\n if (!/\\s/.test(trimmed)) {\n if (!seen.has(trimmed)) {\n seen.add(trimmed);\n classes.push(trimmed);\n }\n continue;\n }\n\n for (const token of trimmed.split(/\\s+/)) {\n if (!token || seen.has(token)) continue;\n seen.add(token);\n classes.push(token);\n }\n }\n\n return classes.join(\" \");\n}\n","type AllowedValues<T extends string> = readonly T[] | Record<T, unknown>;\n\nconst hasOwn = (value: object, key: string): boolean =>\n Object.prototype.hasOwnProperty.call(value, key);\n\nconst isAllowedValue = <T extends string>(value: T, allowed: AllowedValues<T>): boolean =>\n Array.isArray(allowed) ? allowed.includes(value) : hasOwn(allowed, value);\n\nexport function resolveOption<T extends string>(config: {\n name: string;\n value: T | undefined;\n allowed: AllowedValues<T>;\n fallback: T;\n}): T {\n const { name, value, allowed, fallback } = config;\n\n if (value === undefined) return fallback;\n if (isAllowedValue(value, allowed)) return value;\n\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error(`[spectre-ui] Unknown ${name}: ${value}`);\n }\n\n return fallback;\n}\n","import { cx } from \"../internal/cx\";\nimport { resolveOption } from \"../internal/resolve-option\";\n\nconst BUTTON_VARIANTS = {\n primary: true,\n secondary: true,\n ghost: true,\n danger: true,\n success: true,\n cta: true,\n accent: true,\n} as const;\n\nconst BUTTON_SIZES = {\n sm: true,\n md: true,\n lg: true,\n} as const;\n\nexport type ButtonVariant = keyof typeof BUTTON_VARIANTS;\nexport type ButtonSize = keyof typeof BUTTON_SIZES;\n\nexport interface ButtonRecipeOptions {\n variant?: ButtonVariant;\n size?: ButtonSize;\n fullWidth?: boolean;\n loading?: boolean;\n disabled?: boolean;\n hovered?: boolean;\n focused?: boolean;\n active?: boolean;\n iconOnly?: boolean;\n pill?: boolean;\n}\n\nexport function getButtonClasses(opts: ButtonRecipeOptions = {}): string {\n const {\n variant: variantInput,\n size: sizeInput,\n fullWidth = false,\n loading = false,\n disabled = false,\n hovered = false,\n focused = false,\n active = false,\n iconOnly = false,\n pill = false,\n } = opts;\n\n const variant = resolveOption({\n name: \"button variant\",\n value: variantInput,\n allowed: BUTTON_VARIANTS,\n fallback: \"primary\",\n });\n const size = resolveOption({\n name: \"button size\",\n value: sizeInput,\n allowed: BUTTON_SIZES,\n fallback: \"md\",\n });\n\n const variantMap: Record<ButtonVariant, string> = {\n primary: \"sp-btn--primary\",\n secondary: \"sp-btn--secondary\",\n ghost: \"sp-btn--ghost\",\n danger: \"sp-btn--danger\",\n success: \"sp-btn--success\",\n cta: \"sp-btn--cta\",\n accent: \"sp-btn--accent\",\n };\n const variantClass = variantMap[variant];\n\n const sizeMap: Record<ButtonSize, string> = {\n sm: \"sp-btn--sm\",\n md: \"sp-btn--md\",\n lg: \"sp-btn--lg\",\n };\n const sizeClass = sizeMap[size];\n\n return cx(\n \"sp-btn\",\n variantClass,\n sizeClass,\n fullWidth && \"sp-btn--full\",\n loading && \"sp-btn--loading\",\n disabled && \"sp-btn--disabled\",\n hovered && \"sp-btn--hover is-hover\",\n focused && \"sp-btn--focus is-focus\",\n active && \"sp-btn--active is-active\",\n iconOnly && \"sp-btn--icon\",\n pill && \"sp-btn--pill\",\n );\n}\n","import { cx } from \"../internal/cx\";\nimport { resolveOption } from \"../internal/resolve-option\";\n\nconst CARD_VARIANTS = {\n elevated: true,\n flat: true,\n outline: true,\n ghost: true,\n} as const;\n\nexport type CardVariant = keyof typeof CARD_VARIANTS;\n\nexport interface CardRecipeOptions {\n variant?: CardVariant;\n interactive?: boolean;\n padded?: boolean;\n fullHeight?: boolean;\n disabled?: boolean;\n loading?: boolean;\n hovered?: boolean;\n focused?: boolean;\n active?: boolean;\n}\n\nexport function getCardClasses(opts: CardRecipeOptions = {}): string {\n const {\n variant: variantInput,\n interactive = false,\n padded = false,\n fullHeight = false,\n disabled = false,\n loading = false,\n hovered = false,\n focused = false,\n active = false,\n } = opts;\n\n const variant = resolveOption({\n name: \"card variant\",\n value: variantInput,\n allowed: CARD_VARIANTS,\n fallback: \"elevated\",\n });\n\n const variantMap: Record<CardVariant, string> = {\n elevated: \"sp-card--elevated\",\n flat: \"sp-card--flat\",\n outline: \"sp-card--outline\",\n ghost: \"sp-card--ghost\",\n };\n const variantClass = variantMap[variant];\n\n return cx(\n \"sp-card\",\n variantClass,\n interactive && \"sp-card--interactive\",\n padded && \"sp-card--padded\",\n fullHeight && \"sp-card--full\",\n disabled && \"sp-card--disabled\",\n loading && \"sp-card--loading\",\n hovered && \"sp-card--hover is-hover\",\n focused && \"sp-card--focus is-focus\",\n active && \"sp-card--active is-active\",\n );\n}\n","import { cx } from \"../internal/cx\";\nimport { resolveOption } from \"../internal/resolve-option\";\n\nconst INPUT_STATES = {\n default: true,\n error: true,\n success: true,\n disabled: true,\n loading: true,\n} as const;\n\nconst INPUT_SIZES = {\n sm: true,\n md: true,\n lg: true,\n} as const;\n\nexport type InputState = keyof typeof INPUT_STATES;\nexport type InputSize = keyof typeof INPUT_SIZES;\n\nexport interface InputRecipeOptions {\n state?: InputState;\n size?: InputSize;\n fullWidth?: boolean;\n pill?: boolean;\n focused?: boolean;\n hovered?: boolean;\n active?: boolean;\n disabled?: boolean;\n loading?: boolean;\n}\n\nexport function getInputClasses(opts: InputRecipeOptions = {}): string {\n const {\n state: stateInput,\n size: sizeInput,\n fullWidth = false,\n pill = false,\n focused = false,\n hovered = false,\n active = false,\n disabled = false,\n loading = false,\n } = opts;\n\n const state = resolveOption({\n name: \"input state\",\n value: stateInput,\n allowed: INPUT_STATES,\n fallback: \"default\",\n });\n const size = resolveOption({\n name: \"input size\",\n value: sizeInput,\n allowed: INPUT_SIZES,\n fallback: \"md\",\n });\n\n const sizeMap: Record<InputSize, string> = {\n sm: \"sp-input--sm\",\n md: \"sp-input--md\",\n lg: \"sp-input--lg\",\n };\n const sizeClass = sizeMap[size];\n\n return cx(\n \"sp-input\",\n sizeClass,\n state === \"error\" && \"sp-input--error\",\n state === \"success\" && \"sp-input--success\",\n // Visual state only; actual disabled attribute is handled by adapters.\n (state === \"disabled\" || disabled) && \"sp-input--disabled\",\n (state === \"loading\" || loading) && \"sp-input--loading\",\n focused && \"sp-input--focus is-focus\",\n hovered && \"sp-input--hover is-hover\",\n active && \"sp-input--active is-active\",\n fullWidth && \"sp-input--full\",\n pill && \"sp-input--pill\",\n );\n}\n\nexport function getInputWrapperClasses(): string {\n return cx(\"sp-input-wrapper\");\n}\n\nexport function getInputLabelClasses(opts: { disabled?: boolean } = {}): string {\n const { disabled = false } = opts;\n return cx(\n \"sp-label\",\n disabled && \"sp-label--disabled\"\n );\n}\n\nexport function getInputHelperTextClasses(opts: { disabled?: boolean } = {}): string {\n const { disabled = false } = opts;\n return cx(\n \"sp-helper-text\",\n disabled && \"sp-helper-text--disabled\"\n );\n}\n\nexport function getInputErrorMessageClasses(): string {\n return cx(\"sp-error-message\");\n}\n","import { cx } from \"../internal/cx\";\nimport { resolveOption } from \"../internal/resolve-option\";\n\nconst BADGE_VARIANTS = {\n primary: true,\n secondary: true,\n success: true,\n warning: true,\n danger: true,\n neutral: true,\n info: true,\n ghost: true,\n outline: true,\n accent: true,\n cta: true,\n} as const;\n\nconst BADGE_SIZES = {\n sm: true,\n md: true,\n lg: true,\n} as const;\n\nexport type BadgeVariant = keyof typeof BADGE_VARIANTS;\nexport type BadgeSize = keyof typeof BADGE_SIZES;\n\nexport interface BadgeRecipeOptions {\n variant?: BadgeVariant;\n size?: BadgeSize;\n interactive?: boolean;\n hovered?: boolean;\n focused?: boolean;\n active?: boolean;\n disabled?: boolean;\n loading?: boolean;\n fullWidth?: boolean;\n}\n\nexport function getBadgeClasses(opts: BadgeRecipeOptions = {}): string {\n const {\n variant: variantInput,\n size: sizeInput,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n disabled = false,\n loading = false,\n fullWidth = false,\n } = opts;\n\n const variant = resolveOption({\n name: \"badge variant\",\n value: variantInput,\n allowed: BADGE_VARIANTS,\n fallback: \"primary\",\n });\n const size = resolveOption({\n name: \"badge size\",\n value: sizeInput,\n allowed: BADGE_SIZES,\n fallback: \"md\",\n });\n\n const variantMap: Record<BadgeVariant, string> = {\n primary: \"sp-badge--primary\",\n secondary: \"sp-badge--secondary\",\n success: \"sp-badge--success\",\n warning: \"sp-badge--warning\",\n danger: \"sp-badge--danger\",\n neutral: \"sp-badge--neutral\",\n info: \"sp-badge--info\",\n ghost: \"sp-badge--ghost\",\n outline: \"sp-badge--outline\",\n accent: \"sp-badge--accent\",\n cta: \"sp-badge--cta\",\n };\n const variantClass = variantMap[variant];\n\n const sizeMap: Record<BadgeSize, string> = {\n sm: \"sp-badge--sm\",\n md: \"sp-badge--md\",\n lg: \"sp-badge--lg\",\n };\n const sizeClass = sizeMap[size];\n\n return cx(\n \"sp-badge\",\n variantClass,\n sizeClass,\n interactive && \"sp-badge--interactive\",\n hovered && \"sp-badge--hover is-hover\",\n focused && \"sp-badge--focus is-focus\",\n active && \"sp-badge--active is-active\",\n disabled && \"sp-badge--disabled\",\n loading && \"sp-badge--loading\",\n fullWidth && \"sp-badge--full\"\n );\n}\n","import { cx } from \"../internal/cx\";\nimport { resolveOption } from \"../internal/resolve-option\";\n\nconst ICONBOX_VARIANTS = {\n primary: true,\n secondary: true,\n success: true,\n warning: true,\n danger: true,\n info: true,\n neutral: true,\n ghost: true,\n accent: true,\n cta: true,\n outline: true,\n} as const;\n\nconst ICONBOX_SIZES = {\n xs: true,\n sm: true,\n md: true,\n lg: true,\n} as const;\n\nexport type IconBoxVariant = keyof typeof ICONBOX_VARIANTS;\nexport type IconBoxSize = keyof typeof ICONBOX_SIZES;\n\nexport interface IconBoxRecipeOptions {\n variant?: IconBoxVariant;\n size?: IconBoxSize;\n disabled?: boolean;\n loading?: boolean;\n interactive?: boolean;\n hovered?: boolean;\n focused?: boolean;\n active?: boolean;\n pill?: boolean;\n fullWidth?: boolean;\n}\n\nexport function getIconBoxClasses(opts: IconBoxRecipeOptions = {}): string {\n const {\n variant: variantInput,\n size: sizeInput,\n disabled = false,\n loading = false,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n pill = false,\n fullWidth = false,\n } = opts;\n\n const variant = resolveOption({\n name: \"icon box variant\",\n value: variantInput,\n allowed: ICONBOX_VARIANTS,\n fallback: \"primary\",\n });\n const size = resolveOption({\n name: \"icon box size\",\n value: sizeInput,\n allowed: ICONBOX_SIZES,\n fallback: \"md\",\n });\n\n const variantMap: Record<IconBoxVariant, string> = {\n primary: \"sp-iconbox--primary\",\n secondary: \"sp-iconbox--secondary\",\n success: \"sp-iconbox--success\",\n warning: \"sp-iconbox--warning\",\n danger: \"sp-iconbox--danger\",\n info: \"sp-iconbox--info\",\n neutral: \"sp-iconbox--neutral\",\n ghost: \"sp-iconbox--ghost\",\n accent: \"sp-iconbox--accent\",\n cta: \"sp-iconbox--cta\",\n outline: \"sp-iconbox--outline\",\n };\n const variantClass = variantMap[variant];\n\n const sizeMap: Record<IconBoxSize, string> = {\n xs: \"sp-iconbox--xs\",\n sm: \"sp-iconbox--sm\",\n md: \"sp-iconbox--md\",\n lg: \"sp-iconbox--lg\",\n };\n const sizeClass = sizeMap[size];\n\n return cx(\n \"sp-iconbox\",\n variantClass,\n sizeClass,\n disabled && \"sp-iconbox--disabled\",\n loading && \"sp-iconbox--loading\",\n interactive && \"sp-iconbox--interactive\",\n hovered && \"sp-iconbox--hover is-hover\",\n focused && \"sp-iconbox--focus is-focus\",\n active && \"sp-iconbox--active is-active\",\n pill && \"sp-iconbox--pill\",\n fullWidth && \"sp-iconbox--full\"\n );\n}\n","import { cx } from \"../internal/cx\";\nimport { resolveOption } from \"../internal/resolve-option\";\n\nconst TESTIMONIAL_VARIANTS = {\n elevated: true,\n flat: true,\n outline: true,\n ghost: true,\n} as const;\n\nexport type TestimonialVariant = keyof typeof TESTIMONIAL_VARIANTS;\n\nexport interface TestimonialRecipeOptions {\n variant?: TestimonialVariant;\n disabled?: boolean;\n loading?: boolean;\n interactive?: boolean;\n hovered?: boolean;\n focused?: boolean;\n active?: boolean;\n fullHeight?: boolean;\n}\n\nexport function getTestimonialClasses(opts: TestimonialRecipeOptions = {}): string {\n const {\n variant: variantInput,\n disabled = false,\n loading = false,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n fullHeight = false,\n } = opts;\n\n const variant = resolveOption({\n name: \"testimonial variant\",\n value: variantInput,\n allowed: TESTIMONIAL_VARIANTS,\n fallback: \"outline\",\n });\n\n const variantMap: Record<TestimonialVariant, string> = {\n elevated: \"sp-testimonial--elevated\",\n flat: \"sp-testimonial--flat\",\n outline: \"sp-testimonial--outline\",\n ghost: \"sp-testimonial--ghost\",\n };\n const variantClass = variantMap[variant];\n\n return cx(\n \"sp-testimonial\",\n variantClass,\n disabled && \"sp-testimonial--disabled\",\n loading && \"sp-testimonial--loading\",\n interactive && \"sp-testimonial--interactive\",\n hovered && \"sp-testimonial--hover is-hover\",\n focused && \"sp-testimonial--focus is-focus\",\n active && \"sp-testimonial--active is-active\",\n fullHeight && \"sp-testimonial--full\"\n );\n}\n\nexport function getTestimonialQuoteClasses(): string {\n return cx(\"sp-testimonial-quote\");\n}\n\nexport function getTestimonialAuthorClasses(): string {\n return cx(\"sp-testimonial-author\");\n}\n\nexport function getTestimonialAuthorInfoClasses(): string {\n return cx(\"sp-testimonial-author-info\");\n}\n\nexport function getTestimonialAuthorNameClasses(): string {\n return cx(\"sp-testimonial-author-name\");\n}\n\nexport function getTestimonialAuthorTitleClasses(): string {\n return cx(\"sp-testimonial-author-title\");\n}\n","import { cx } from '../internal/cx'\n\nexport interface PricingCardRecipeOptions {\n featured?: boolean\n disabled?: boolean\n loading?: boolean\n interactive?: boolean\n hovered?: boolean\n focused?: boolean\n active?: boolean\n fullHeight?: boolean\n}\n\nexport function getPricingCardClasses(opts: PricingCardRecipeOptions = {}): string {\n const {\n featured = false,\n disabled = false,\n loading = false,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n fullHeight = false,\n } = opts\n\n return cx(\n 'sp-pricing-card',\n featured && 'sp-pricing-card--featured',\n disabled && 'sp-pricing-card--disabled',\n loading && 'sp-pricing-card--loading',\n interactive && 'sp-pricing-card--interactive',\n hovered && 'sp-pricing-card--hover is-hover',\n focused && 'sp-pricing-card--focus is-focus',\n active && 'sp-pricing-card--active is-active',\n fullHeight && 'sp-pricing-card--full'\n )\n}\n\nexport function getPricingCardBadgeClasses(): string {\n return cx('sp-pricing-card-badge')\n}\n\nexport function getPricingCardPriceContainerClasses(): string {\n return cx('sp-pricing-card-price-container')\n}\n\nexport function getPricingCardPriceClasses(): string {\n return cx('sp-pricing-card-price')\n}\n\nexport function getPricingCardDescriptionClasses(): string {\n return cx('sp-pricing-card-description')\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst RATING_SIZES = {\n sm: true,\n md: true,\n lg: true,\n} as const\n\nexport type RatingSize = keyof typeof RATING_SIZES\n\nexport interface RatingRecipeOptions {\n size?: RatingSize\n disabled?: boolean\n loading?: boolean\n interactive?: boolean\n hovered?: boolean\n focused?: boolean\n active?: boolean\n pill?: boolean\n fullWidth?: boolean\n}\n\nexport function getRatingClasses(opts: RatingRecipeOptions = {}): string {\n const {\n size: sizeInput,\n disabled = false,\n loading = false,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n pill = false,\n fullWidth = false,\n } = opts\n\n const size = resolveOption({\n name: 'rating size',\n value: sizeInput,\n allowed: RATING_SIZES,\n fallback: 'md',\n })\n\n return cx(\n 'sp-rating',\n `sp-rating--${size}`,\n disabled && 'sp-rating--disabled',\n loading && 'sp-rating--loading',\n interactive && 'sp-rating--interactive',\n hovered && 'sp-rating--hover is-hover',\n focused && 'sp-rating--focus is-focus',\n active && 'sp-rating--active is-active',\n pill && 'sp-rating--pill',\n fullWidth && 'sp-rating--full'\n )\n}\n\nexport function getRatingStarsClasses(): string {\n return cx('sp-rating-stars')\n}\n\nexport function getRatingStarClasses(isFilled: boolean = false): string {\n return cx('sp-rating-star', isFilled && 'sp-rating-star--filled')\n}\n\nexport function getRatingTextClasses(opts: { disabled?: boolean } = {}): string {\n const { disabled = false } = opts\n return cx('sp-rating-text', disabled && 'sp-rating-text--disabled')\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst ALERT_VARIANTS = {\n info: true,\n success: true,\n warning: true,\n danger: true,\n neutral: true,\n} as const\n\nconst ALERT_SIZES = {\n sm: true,\n md: true,\n lg: true,\n} as const\n\nexport type AlertVariant = keyof typeof ALERT_VARIANTS\nexport type AlertSize = keyof typeof ALERT_SIZES\n\nexport interface AlertRecipeOptions {\n variant?: AlertVariant\n size?: AlertSize\n dismissed?: boolean\n fullWidth?: boolean\n interactive?: boolean\n hovered?: boolean\n focused?: boolean\n active?: boolean\n disabled?: boolean\n loading?: boolean\n}\n\nexport function getAlertClasses(opts: AlertRecipeOptions = {}): string {\n const {\n variant: variantInput,\n size: sizeInput,\n dismissed = false,\n fullWidth = false,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n disabled = false,\n loading = false,\n } = opts\n\n const variant = resolveOption({\n name: 'alert variant',\n value: variantInput,\n allowed: ALERT_VARIANTS,\n fallback: 'info',\n })\n\n const size = resolveOption({\n name: 'alert size',\n value: sizeInput,\n allowed: ALERT_SIZES,\n fallback: 'md',\n })\n\n return cx(\n 'sp-alert',\n `sp-alert--${variant}`,\n `sp-alert--${size}`,\n dismissed && 'sp-alert--dismissed',\n fullWidth && 'sp-alert--full',\n interactive && 'sp-alert--interactive',\n hovered && 'sp-alert--hover is-hover',\n focused && 'sp-alert--focus is-focus',\n active && 'sp-alert--active is-active',\n disabled && 'sp-alert--disabled',\n loading && 'sp-alert--loading'\n )\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst AVATAR_SIZES = {\n xs: true,\n sm: true,\n md: true,\n lg: true,\n xl: true,\n} as const\n\nconst AVATAR_SHAPES = {\n circle: true,\n square: true,\n} as const\n\nexport type AvatarSize = keyof typeof AVATAR_SIZES\nexport type AvatarShape = keyof typeof AVATAR_SHAPES\n\nexport interface AvatarRecipeOptions {\n size?: AvatarSize\n shape?: AvatarShape\n disabled?: boolean\n loading?: boolean\n interactive?: boolean\n hovered?: boolean\n focused?: boolean\n active?: boolean\n fullWidth?: boolean\n placeholder?: boolean\n}\n\nexport function getAvatarClasses(opts: AvatarRecipeOptions = {}): string {\n const {\n size: sizeInput,\n shape: shapeInput,\n disabled = false,\n loading = false,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n fullWidth = false,\n placeholder = false,\n } = opts\n\n const size = resolveOption({\n name: 'avatar size',\n value: sizeInput,\n allowed: AVATAR_SIZES,\n fallback: 'md',\n })\n\n const shape = resolveOption({\n name: 'avatar shape',\n value: shapeInput,\n allowed: AVATAR_SHAPES,\n fallback: 'circle',\n })\n\n return cx(\n 'sp-avatar',\n `sp-avatar--${size}`,\n `sp-avatar--${shape}`,\n disabled && 'sp-avatar--disabled',\n loading && 'sp-avatar--loading',\n interactive && 'sp-avatar--interactive',\n hovered && 'sp-avatar--hover is-hover',\n focused && 'sp-avatar--focus is-focus',\n active && 'sp-avatar--active is-active',\n fullWidth && 'sp-avatar--full',\n placeholder && 'sp-avatar--placeholder'\n )\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst TAG_VARIANTS = {\n default: true,\n primary: true,\n secondary: true,\n success: true,\n warning: true,\n danger: true,\n info: true,\n neutral: true,\n accent: true,\n cta: true,\n outline: true,\n ghost: true,\n} as const\n\nconst TAG_SIZES = {\n sm: true,\n md: true,\n lg: true,\n} as const\n\nexport type TagVariant = keyof typeof TAG_VARIANTS\nexport type TagSize = keyof typeof TAG_SIZES\n\nexport interface TagRecipeOptions {\n variant?: TagVariant\n size?: TagSize\n dismissible?: boolean\n selected?: boolean\n disabled?: boolean\n loading?: boolean\n interactive?: boolean\n hovered?: boolean\n focused?: boolean\n active?: boolean\n fullWidth?: boolean\n}\n\nexport function getTagClasses(opts: TagRecipeOptions = {}): string {\n const {\n variant: variantInput,\n size: sizeInput,\n dismissible = false,\n selected = false,\n disabled = false,\n loading = false,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n fullWidth = false,\n } = opts\n\n const variant = resolveOption({\n name: 'tag variant',\n value: variantInput,\n allowed: TAG_VARIANTS,\n fallback: 'default',\n })\n\n const size =\n sizeInput &&\n resolveOption({\n name: 'tag size',\n value: sizeInput,\n allowed: TAG_SIZES,\n fallback: 'md',\n })\n\n return cx(\n 'sp-tag',\n `sp-tag--${variant}`,\n size && `sp-tag--${size}`,\n dismissible && 'sp-tag--dismissible',\n selected && 'sp-tag--selected',\n disabled && 'sp-tag--disabled',\n loading && 'sp-tag--loading',\n interactive && 'sp-tag--interactive',\n hovered && 'sp-tag--hover is-hover',\n focused && 'sp-tag--focus is-focus',\n active && 'sp-tag--active is-active',\n fullWidth && 'sp-tag--full'\n )\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst SPINNER_VARIANTS = {\n primary: true,\n secondary: true,\n success: true,\n warning: true,\n danger: true,\n info: true,\n neutral: true,\n accent: true,\n cta: true,\n} as const\n\nconst SPINNER_SIZES = {\n sm: true,\n md: true,\n lg: true,\n} as const\n\nexport type SpinnerVariant = keyof typeof SPINNER_VARIANTS\nexport type SpinnerSize = keyof typeof SPINNER_SIZES\n\nexport interface SpinnerRecipeOptions {\n variant?: SpinnerVariant\n size?: SpinnerSize\n disabled?: boolean\n loading?: boolean\n}\n\nexport function getSpinnerClasses(opts: SpinnerRecipeOptions = {}): string {\n const {\n variant: variantInput,\n size: sizeInput,\n disabled = false,\n loading = false,\n } = opts\n\n const variant =\n variantInput &&\n resolveOption({\n name: 'spinner variant',\n value: variantInput,\n allowed: SPINNER_VARIANTS,\n fallback: 'primary',\n })\n\n const size = resolveOption({\n name: 'spinner size',\n value: sizeInput,\n allowed: SPINNER_SIZES,\n fallback: 'md',\n })\n\n return cx(\n 'sp-spinner',\n variant && `sp-spinner--${variant}`,\n `sp-spinner--${size}`,\n disabled && 'sp-spinner--disabled',\n loading && 'sp-spinner--loading'\n )\n}\n","import { cx } from '../internal/cx'\n\nexport interface NavRecipeOptions {\n bordered?: boolean\n sticky?: boolean\n fullWidth?: boolean\n}\n\nexport function getNavClasses(opts: NavRecipeOptions = {}): string {\n const { bordered = false, sticky = false, fullWidth = false } = opts\n\n return cx(\n 'sp-nav',\n bordered && 'sp-nav--bordered',\n sticky && 'sp-nav--sticky',\n fullWidth && 'sp-nav--full'\n )\n}\n\nexport function getNavLinksClasses(): string {\n return cx('sp-nav__links')\n}\n\nexport interface NavLinkRecipeOptions {\n active?: boolean\n disabled?: boolean\n hovered?: boolean\n focused?: boolean\n}\n\nexport function getNavLinkClasses(opts: NavLinkRecipeOptions = {}): string {\n const {\n active = false,\n disabled = false,\n hovered = false,\n focused = false,\n } = opts\n\n return cx(\n 'sp-nav__link',\n active && 'sp-nav__link--active',\n disabled && 'sp-nav__link--disabled',\n hovered && 'sp-nav__link--hover is-hover',\n focused && 'sp-nav__link--focus is-focus'\n )\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst TOAST_VARIANTS = {\n info: true,\n success: true,\n warning: true,\n danger: true,\n} as const\n\nexport type ToastVariant = keyof typeof TOAST_VARIANTS\n\nexport interface ToastRecipeOptions {\n variant?: ToastVariant\n dismissed?: boolean\n fullWidth?: boolean\n}\n\nexport function getToastClasses(opts: ToastRecipeOptions = {}): string {\n const { variant: variantInput, dismissed = false, fullWidth = false } = opts\n\n const variant = resolveOption({\n name: 'toast variant',\n value: variantInput,\n allowed: TOAST_VARIANTS,\n fallback: 'info',\n })\n\n return cx(\n 'sp-toast',\n `sp-toast--${variant}`,\n dismissed && 'sp-toast--dismissed',\n fullWidth && 'sp-toast--full'\n )\n}\n\nexport interface ToastIconRecipeOptions {\n variant?: ToastVariant\n}\n\nexport function getToastIconClasses(\n opts: ToastIconRecipeOptions = {}\n): string {\n const { variant: variantInput } = opts\n\n const variant = resolveOption({\n name: 'toast variant',\n value: variantInput,\n allowed: TOAST_VARIANTS,\n fallback: 'info',\n })\n\n return cx('sp-toast__icon', `sp-toast__icon--${variant}`)\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst TOOLTIP_PLACEMENTS = {\n top: true,\n bottom: true,\n left: true,\n right: true,\n} as const\n\nexport type TooltipPlacement = keyof typeof TOOLTIP_PLACEMENTS\n\nexport interface TooltipRecipeOptions {\n placement?: TooltipPlacement\n visible?: boolean\n}\n\nexport function getTooltipClasses(opts: TooltipRecipeOptions = {}): string {\n const { placement: placementInput, visible = false } = opts\n\n const placement = resolveOption({\n name: 'tooltip placement',\n value: placementInput,\n allowed: TOOLTIP_PLACEMENTS,\n fallback: 'top',\n })\n\n return cx(\n 'sp-tooltip',\n `sp-tooltip--${placement}`,\n visible && 'sp-tooltip--visible'\n )\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst DROPDOWN_PLACEMENTS = {\n 'bottom-start': true,\n 'bottom-end': true,\n 'top-start': true,\n 'top-end': true,\n} as const\n\nexport type DropdownPlacement = keyof typeof DROPDOWN_PLACEMENTS\n\nexport interface DropdownRecipeOptions {\n fullWidth?: boolean\n}\n\nexport function getDropdownClasses(opts: DropdownRecipeOptions = {}): string {\n const { fullWidth = false } = opts\n\n return cx('sp-dropdown', fullWidth && 'sp-dropdown--full')\n}\n\nexport interface DropdownMenuRecipeOptions {\n placement?: DropdownPlacement\n open?: boolean\n}\n\nexport function getDropdownMenuClasses(\n opts: DropdownMenuRecipeOptions = {}\n): string {\n const { placement: placementInput, open = false } = opts\n\n const placement = resolveOption({\n name: 'dropdown menu placement',\n value: placementInput,\n allowed: DROPDOWN_PLACEMENTS,\n fallback: 'bottom-start',\n })\n\n return cx(\n 'sp-dropdown__menu',\n `sp-dropdown__menu--${placement}`,\n open && 'sp-dropdown__menu--open'\n )\n}\n\nexport interface DropdownItemRecipeOptions {\n active?: boolean\n disabled?: boolean\n hovered?: boolean\n focused?: boolean\n}\n\nexport function getDropdownItemClasses(\n opts: DropdownItemRecipeOptions = {}\n): string {\n const {\n active = false,\n disabled = false,\n hovered = false,\n focused = false,\n } = opts\n\n return cx(\n 'sp-dropdown__item',\n active && 'sp-dropdown__item--active',\n disabled && 'sp-dropdown__item--disabled',\n hovered && 'sp-dropdown__item--hover is-hover',\n focused && 'sp-dropdown__item--focus is-focus'\n )\n}\n","import { cx } from '../internal/cx'\n\nexport interface ModalOverlayRecipeOptions {\n open?: boolean\n}\n\nexport function getModalOverlayClasses(\n opts: ModalOverlayRecipeOptions = {}\n): string {\n const { open = false } = opts\n\n return cx('sp-modal-overlay', open && 'sp-modal-overlay--open')\n}\n\nexport interface ModalRecipeOptions {\n open?: boolean\n fullWidth?: boolean\n}\n\nexport function getModalClasses(opts: ModalRecipeOptions = {}): string {\n const { open = false, fullWidth = false } = opts\n\n return cx(\n 'sp-modal',\n open && 'sp-modal--open',\n fullWidth && 'sp-modal--full'\n )\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/css-constants.ts","../src/internal/cx.ts","../src/internal/resolve-option.ts","../src/recipes/button.ts","../src/recipes/card.ts","../src/recipes/input.ts","../src/recipes/badge.ts","../src/recipes/iconbox.ts","../src/recipes/testimonial.ts","../src/recipes/pricing-card.ts","../src/recipes/rating.ts","../src/recipes/alert.ts","../src/recipes/avatar.ts","../src/recipes/tag.ts","../src/recipes/spinner.ts","../src/recipes/nav.ts","../src/recipes/toast.ts","../src/recipes/tooltip.ts","../src/recipes/dropdown.ts","../src/recipes/modal.ts","../src/recipes/container.ts","../src/recipes/stack.ts","../src/recipes/section.ts"],"names":[],"mappings":"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","file":"index.cjs","sourcesContent":["export const spectreBaseStylesPath = \"@phcdevworks/spectre-ui/base.css\";\nexport const spectreComponentsStylesPath = \"@phcdevworks/spectre-ui/components.css\";\nexport const spectreUtilitiesStylesPath = \"@phcdevworks/spectre-ui/utilities.css\";\nexport const spectreIndexStylesPath = \"@phcdevworks/spectre-ui/index.css\";\n\nexport const spectreStyles = {\n index: spectreIndexStylesPath,\n base: spectreBaseStylesPath,\n components: spectreComponentsStylesPath,\n utilities: spectreUtilitiesStylesPath,\n};\n","export function cx(...parts: Array<string | false | null | undefined>): string {\n const seen = new Set<string>();\n const classes: string[] = [];\n\n for (const part of parts) {\n if (!part) continue;\n const trimmed = part.trim();\n if (!trimmed) continue;\n\n if (!/\\s/.test(trimmed)) {\n if (!seen.has(trimmed)) {\n seen.add(trimmed);\n classes.push(trimmed);\n }\n continue;\n }\n\n for (const token of trimmed.split(/\\s+/)) {\n if (!token || seen.has(token)) continue;\n seen.add(token);\n classes.push(token);\n }\n }\n\n return classes.join(\" \");\n}\n","type AllowedValues<T extends string> = readonly T[] | Record<T, unknown>;\n\nconst hasOwn = (value: object, key: string): boolean =>\n Object.prototype.hasOwnProperty.call(value, key);\n\nconst isAllowedValue = <T extends string>(value: T, allowed: AllowedValues<T>): boolean =>\n Array.isArray(allowed) ? allowed.includes(value) : hasOwn(allowed, value);\n\nexport function resolveOption<T extends string>(config: {\n name: string;\n value: T | undefined;\n allowed: AllowedValues<T>;\n fallback: T;\n}): T {\n const { name, value, allowed, fallback } = config;\n\n if (value === undefined) return fallback;\n if (isAllowedValue(value, allowed)) return value;\n\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error(`[spectre-ui] Unknown ${name}: ${value}`);\n }\n\n return fallback;\n}\n","import { cx } from \"../internal/cx\";\nimport { resolveOption } from \"../internal/resolve-option\";\n\nconst BUTTON_VARIANTS = {\n primary: true,\n secondary: true,\n ghost: true,\n danger: true,\n success: true,\n cta: true,\n accent: true,\n} as const;\n\nconst BUTTON_SIZES = {\n sm: true,\n md: true,\n lg: true,\n} as const;\n\nexport type ButtonVariant = keyof typeof BUTTON_VARIANTS;\nexport type ButtonSize = keyof typeof BUTTON_SIZES;\n\nexport interface ButtonRecipeOptions {\n variant?: ButtonVariant;\n size?: ButtonSize;\n fullWidth?: boolean;\n loading?: boolean;\n disabled?: boolean;\n hovered?: boolean;\n focused?: boolean;\n active?: boolean;\n iconOnly?: boolean;\n pill?: boolean;\n}\n\nexport function getButtonClasses(opts: ButtonRecipeOptions = {}): string {\n const {\n variant: variantInput,\n size: sizeInput,\n fullWidth = false,\n loading = false,\n disabled = false,\n hovered = false,\n focused = false,\n active = false,\n iconOnly = false,\n pill = false,\n } = opts;\n\n const variant = resolveOption({\n name: \"button variant\",\n value: variantInput,\n allowed: BUTTON_VARIANTS,\n fallback: \"primary\",\n });\n const size = resolveOption({\n name: \"button size\",\n value: sizeInput,\n allowed: BUTTON_SIZES,\n fallback: \"md\",\n });\n\n const variantMap: Record<ButtonVariant, string> = {\n primary: \"sp-btn--primary\",\n secondary: \"sp-btn--secondary\",\n ghost: \"sp-btn--ghost\",\n danger: \"sp-btn--danger\",\n success: \"sp-btn--success\",\n cta: \"sp-btn--cta\",\n accent: \"sp-btn--accent\",\n };\n const variantClass = variantMap[variant];\n\n const sizeMap: Record<ButtonSize, string> = {\n sm: \"sp-btn--sm\",\n md: \"sp-btn--md\",\n lg: \"sp-btn--lg\",\n };\n const sizeClass = sizeMap[size];\n\n return cx(\n \"sp-btn\",\n variantClass,\n sizeClass,\n fullWidth && \"sp-btn--full\",\n loading && \"sp-btn--loading\",\n disabled && \"sp-btn--disabled\",\n hovered && \"sp-btn--hover is-hover\",\n focused && \"sp-btn--focus is-focus\",\n active && \"sp-btn--active is-active\",\n iconOnly && \"sp-btn--icon\",\n pill && \"sp-btn--pill\",\n );\n}\n","import { cx } from \"../internal/cx\";\nimport { resolveOption } from \"../internal/resolve-option\";\n\nconst CARD_VARIANTS = {\n elevated: true,\n flat: true,\n outline: true,\n ghost: true,\n} as const;\n\nexport type CardVariant = keyof typeof CARD_VARIANTS;\n\nexport interface CardRecipeOptions {\n variant?: CardVariant;\n interactive?: boolean;\n padded?: boolean;\n fullHeight?: boolean;\n disabled?: boolean;\n loading?: boolean;\n hovered?: boolean;\n focused?: boolean;\n active?: boolean;\n}\n\nexport function getCardClasses(opts: CardRecipeOptions = {}): string {\n const {\n variant: variantInput,\n interactive = false,\n padded = false,\n fullHeight = false,\n disabled = false,\n loading = false,\n hovered = false,\n focused = false,\n active = false,\n } = opts;\n\n const variant = resolveOption({\n name: \"card variant\",\n value: variantInput,\n allowed: CARD_VARIANTS,\n fallback: \"elevated\",\n });\n\n const variantMap: Record<CardVariant, string> = {\n elevated: \"sp-card--elevated\",\n flat: \"sp-card--flat\",\n outline: \"sp-card--outline\",\n ghost: \"sp-card--ghost\",\n };\n const variantClass = variantMap[variant];\n\n return cx(\n \"sp-card\",\n variantClass,\n interactive && \"sp-card--interactive\",\n padded && \"sp-card--padded\",\n fullHeight && \"sp-card--full\",\n disabled && \"sp-card--disabled\",\n loading && \"sp-card--loading\",\n hovered && \"sp-card--hover is-hover\",\n focused && \"sp-card--focus is-focus\",\n active && \"sp-card--active is-active\",\n );\n}\n","import { cx } from \"../internal/cx\";\nimport { resolveOption } from \"../internal/resolve-option\";\n\nconst INPUT_STATES = {\n default: true,\n error: true,\n success: true,\n disabled: true,\n loading: true,\n} as const;\n\nconst INPUT_SIZES = {\n sm: true,\n md: true,\n lg: true,\n} as const;\n\nexport type InputState = keyof typeof INPUT_STATES;\nexport type InputSize = keyof typeof INPUT_SIZES;\n\nexport interface InputRecipeOptions {\n state?: InputState;\n size?: InputSize;\n fullWidth?: boolean;\n pill?: boolean;\n focused?: boolean;\n hovered?: boolean;\n active?: boolean;\n disabled?: boolean;\n loading?: boolean;\n}\n\nexport function getInputClasses(opts: InputRecipeOptions = {}): string {\n const {\n state: stateInput,\n size: sizeInput,\n fullWidth = false,\n pill = false,\n focused = false,\n hovered = false,\n active = false,\n disabled = false,\n loading = false,\n } = opts;\n\n const state = resolveOption({\n name: \"input state\",\n value: stateInput,\n allowed: INPUT_STATES,\n fallback: \"default\",\n });\n const size = resolveOption({\n name: \"input size\",\n value: sizeInput,\n allowed: INPUT_SIZES,\n fallback: \"md\",\n });\n\n const sizeMap: Record<InputSize, string> = {\n sm: \"sp-input--sm\",\n md: \"sp-input--md\",\n lg: \"sp-input--lg\",\n };\n const sizeClass = sizeMap[size];\n\n return cx(\n \"sp-input\",\n sizeClass,\n state === \"error\" && \"sp-input--error\",\n state === \"success\" && \"sp-input--success\",\n // Visual state only; actual disabled attribute is handled by adapters.\n (state === \"disabled\" || disabled) && \"sp-input--disabled\",\n (state === \"loading\" || loading) && \"sp-input--loading\",\n focused && \"sp-input--focus is-focus\",\n hovered && \"sp-input--hover is-hover\",\n active && \"sp-input--active is-active\",\n fullWidth && \"sp-input--full\",\n pill && \"sp-input--pill\",\n );\n}\n\nexport function getInputWrapperClasses(): string {\n return cx(\"sp-input-wrapper\");\n}\n\nexport function getInputLabelClasses(opts: { disabled?: boolean } = {}): string {\n const { disabled = false } = opts;\n return cx(\n \"sp-label\",\n disabled && \"sp-label--disabled\"\n );\n}\n\nexport function getInputHelperTextClasses(opts: { disabled?: boolean } = {}): string {\n const { disabled = false } = opts;\n return cx(\n \"sp-helper-text\",\n disabled && \"sp-helper-text--disabled\"\n );\n}\n\nexport function getInputErrorMessageClasses(): string {\n return cx(\"sp-error-message\");\n}\n","import { cx } from \"../internal/cx\";\nimport { resolveOption } from \"../internal/resolve-option\";\n\nconst BADGE_VARIANTS = {\n primary: true,\n secondary: true,\n success: true,\n warning: true,\n danger: true,\n neutral: true,\n info: true,\n ghost: true,\n outline: true,\n accent: true,\n cta: true,\n} as const;\n\nconst BADGE_SIZES = {\n sm: true,\n md: true,\n lg: true,\n} as const;\n\nexport type BadgeVariant = keyof typeof BADGE_VARIANTS;\nexport type BadgeSize = keyof typeof BADGE_SIZES;\n\nexport interface BadgeRecipeOptions {\n variant?: BadgeVariant;\n size?: BadgeSize;\n interactive?: boolean;\n hovered?: boolean;\n focused?: boolean;\n active?: boolean;\n disabled?: boolean;\n loading?: boolean;\n fullWidth?: boolean;\n}\n\nexport function getBadgeClasses(opts: BadgeRecipeOptions = {}): string {\n const {\n variant: variantInput,\n size: sizeInput,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n disabled = false,\n loading = false,\n fullWidth = false,\n } = opts;\n\n const variant = resolveOption({\n name: \"badge variant\",\n value: variantInput,\n allowed: BADGE_VARIANTS,\n fallback: \"primary\",\n });\n const size = resolveOption({\n name: \"badge size\",\n value: sizeInput,\n allowed: BADGE_SIZES,\n fallback: \"md\",\n });\n\n const variantMap: Record<BadgeVariant, string> = {\n primary: \"sp-badge--primary\",\n secondary: \"sp-badge--secondary\",\n success: \"sp-badge--success\",\n warning: \"sp-badge--warning\",\n danger: \"sp-badge--danger\",\n neutral: \"sp-badge--neutral\",\n info: \"sp-badge--info\",\n ghost: \"sp-badge--ghost\",\n outline: \"sp-badge--outline\",\n accent: \"sp-badge--accent\",\n cta: \"sp-badge--cta\",\n };\n const variantClass = variantMap[variant];\n\n const sizeMap: Record<BadgeSize, string> = {\n sm: \"sp-badge--sm\",\n md: \"sp-badge--md\",\n lg: \"sp-badge--lg\",\n };\n const sizeClass = sizeMap[size];\n\n return cx(\n \"sp-badge\",\n variantClass,\n sizeClass,\n interactive && \"sp-badge--interactive\",\n hovered && \"sp-badge--hover is-hover\",\n focused && \"sp-badge--focus is-focus\",\n active && \"sp-badge--active is-active\",\n disabled && \"sp-badge--disabled\",\n loading && \"sp-badge--loading\",\n fullWidth && \"sp-badge--full\"\n );\n}\n","import { cx } from \"../internal/cx\";\nimport { resolveOption } from \"../internal/resolve-option\";\n\nconst ICONBOX_VARIANTS = {\n primary: true,\n secondary: true,\n success: true,\n warning: true,\n danger: true,\n info: true,\n neutral: true,\n ghost: true,\n accent: true,\n cta: true,\n outline: true,\n} as const;\n\nconst ICONBOX_SIZES = {\n xs: true,\n sm: true,\n md: true,\n lg: true,\n} as const;\n\nexport type IconBoxVariant = keyof typeof ICONBOX_VARIANTS;\nexport type IconBoxSize = keyof typeof ICONBOX_SIZES;\n\nexport interface IconBoxRecipeOptions {\n variant?: IconBoxVariant;\n size?: IconBoxSize;\n disabled?: boolean;\n loading?: boolean;\n interactive?: boolean;\n hovered?: boolean;\n focused?: boolean;\n active?: boolean;\n pill?: boolean;\n fullWidth?: boolean;\n}\n\nexport function getIconBoxClasses(opts: IconBoxRecipeOptions = {}): string {\n const {\n variant: variantInput,\n size: sizeInput,\n disabled = false,\n loading = false,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n pill = false,\n fullWidth = false,\n } = opts;\n\n const variant = resolveOption({\n name: \"icon box variant\",\n value: variantInput,\n allowed: ICONBOX_VARIANTS,\n fallback: \"primary\",\n });\n const size = resolveOption({\n name: \"icon box size\",\n value: sizeInput,\n allowed: ICONBOX_SIZES,\n fallback: \"md\",\n });\n\n const variantMap: Record<IconBoxVariant, string> = {\n primary: \"sp-iconbox--primary\",\n secondary: \"sp-iconbox--secondary\",\n success: \"sp-iconbox--success\",\n warning: \"sp-iconbox--warning\",\n danger: \"sp-iconbox--danger\",\n info: \"sp-iconbox--info\",\n neutral: \"sp-iconbox--neutral\",\n ghost: \"sp-iconbox--ghost\",\n accent: \"sp-iconbox--accent\",\n cta: \"sp-iconbox--cta\",\n outline: \"sp-iconbox--outline\",\n };\n const variantClass = variantMap[variant];\n\n const sizeMap: Record<IconBoxSize, string> = {\n xs: \"sp-iconbox--xs\",\n sm: \"sp-iconbox--sm\",\n md: \"sp-iconbox--md\",\n lg: \"sp-iconbox--lg\",\n };\n const sizeClass = sizeMap[size];\n\n return cx(\n \"sp-iconbox\",\n variantClass,\n sizeClass,\n disabled && \"sp-iconbox--disabled\",\n loading && \"sp-iconbox--loading\",\n interactive && \"sp-iconbox--interactive\",\n hovered && \"sp-iconbox--hover is-hover\",\n focused && \"sp-iconbox--focus is-focus\",\n active && \"sp-iconbox--active is-active\",\n pill && \"sp-iconbox--pill\",\n fullWidth && \"sp-iconbox--full\"\n );\n}\n","import { cx } from \"../internal/cx\";\nimport { resolveOption } from \"../internal/resolve-option\";\n\nconst TESTIMONIAL_VARIANTS = {\n elevated: true,\n flat: true,\n outline: true,\n ghost: true,\n} as const;\n\nexport type TestimonialVariant = keyof typeof TESTIMONIAL_VARIANTS;\n\nexport interface TestimonialRecipeOptions {\n variant?: TestimonialVariant;\n disabled?: boolean;\n loading?: boolean;\n interactive?: boolean;\n hovered?: boolean;\n focused?: boolean;\n active?: boolean;\n fullHeight?: boolean;\n}\n\nexport function getTestimonialClasses(opts: TestimonialRecipeOptions = {}): string {\n const {\n variant: variantInput,\n disabled = false,\n loading = false,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n fullHeight = false,\n } = opts;\n\n const variant = resolveOption({\n name: \"testimonial variant\",\n value: variantInput,\n allowed: TESTIMONIAL_VARIANTS,\n fallback: \"outline\",\n });\n\n const variantMap: Record<TestimonialVariant, string> = {\n elevated: \"sp-testimonial--elevated\",\n flat: \"sp-testimonial--flat\",\n outline: \"sp-testimonial--outline\",\n ghost: \"sp-testimonial--ghost\",\n };\n const variantClass = variantMap[variant];\n\n return cx(\n \"sp-testimonial\",\n variantClass,\n disabled && \"sp-testimonial--disabled\",\n loading && \"sp-testimonial--loading\",\n interactive && \"sp-testimonial--interactive\",\n hovered && \"sp-testimonial--hover is-hover\",\n focused && \"sp-testimonial--focus is-focus\",\n active && \"sp-testimonial--active is-active\",\n fullHeight && \"sp-testimonial--full\"\n );\n}\n\nexport function getTestimonialQuoteClasses(): string {\n return cx(\"sp-testimonial-quote\");\n}\n\nexport function getTestimonialAuthorClasses(): string {\n return cx(\"sp-testimonial-author\");\n}\n\nexport function getTestimonialAuthorInfoClasses(): string {\n return cx(\"sp-testimonial-author-info\");\n}\n\nexport function getTestimonialAuthorNameClasses(): string {\n return cx(\"sp-testimonial-author-name\");\n}\n\nexport function getTestimonialAuthorTitleClasses(): string {\n return cx(\"sp-testimonial-author-title\");\n}\n","import { cx } from '../internal/cx'\n\nexport interface PricingCardRecipeOptions {\n featured?: boolean\n disabled?: boolean\n loading?: boolean\n interactive?: boolean\n hovered?: boolean\n focused?: boolean\n active?: boolean\n fullHeight?: boolean\n}\n\nexport function getPricingCardClasses(opts: PricingCardRecipeOptions = {}): string {\n const {\n featured = false,\n disabled = false,\n loading = false,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n fullHeight = false,\n } = opts\n\n return cx(\n 'sp-pricing-card',\n featured && 'sp-pricing-card--featured',\n disabled && 'sp-pricing-card--disabled',\n loading && 'sp-pricing-card--loading',\n interactive && 'sp-pricing-card--interactive',\n hovered && 'sp-pricing-card--hover is-hover',\n focused && 'sp-pricing-card--focus is-focus',\n active && 'sp-pricing-card--active is-active',\n fullHeight && 'sp-pricing-card--full'\n )\n}\n\nexport function getPricingCardBadgeClasses(): string {\n return cx('sp-pricing-card-badge')\n}\n\nexport function getPricingCardPriceContainerClasses(): string {\n return cx('sp-pricing-card-price-container')\n}\n\nexport function getPricingCardPriceClasses(): string {\n return cx('sp-pricing-card-price')\n}\n\nexport function getPricingCardDescriptionClasses(): string {\n return cx('sp-pricing-card-description')\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst RATING_SIZES = {\n sm: true,\n md: true,\n lg: true,\n} as const\n\nexport type RatingSize = keyof typeof RATING_SIZES\n\nexport interface RatingRecipeOptions {\n size?: RatingSize\n disabled?: boolean\n loading?: boolean\n interactive?: boolean\n hovered?: boolean\n focused?: boolean\n active?: boolean\n pill?: boolean\n fullWidth?: boolean\n}\n\nexport function getRatingClasses(opts: RatingRecipeOptions = {}): string {\n const {\n size: sizeInput,\n disabled = false,\n loading = false,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n pill = false,\n fullWidth = false,\n } = opts\n\n const size = resolveOption({\n name: 'rating size',\n value: sizeInput,\n allowed: RATING_SIZES,\n fallback: 'md',\n })\n\n return cx(\n 'sp-rating',\n `sp-rating--${size}`,\n disabled && 'sp-rating--disabled',\n loading && 'sp-rating--loading',\n interactive && 'sp-rating--interactive',\n hovered && 'sp-rating--hover is-hover',\n focused && 'sp-rating--focus is-focus',\n active && 'sp-rating--active is-active',\n pill && 'sp-rating--pill',\n fullWidth && 'sp-rating--full'\n )\n}\n\nexport function getRatingStarsClasses(): string {\n return cx('sp-rating-stars')\n}\n\nexport function getRatingStarClasses(isFilled: boolean = false): string {\n return cx('sp-rating-star', isFilled && 'sp-rating-star--filled')\n}\n\nexport function getRatingTextClasses(opts: { disabled?: boolean } = {}): string {\n const { disabled = false } = opts\n return cx('sp-rating-text', disabled && 'sp-rating-text--disabled')\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst ALERT_VARIANTS = {\n info: true,\n success: true,\n warning: true,\n danger: true,\n neutral: true,\n} as const\n\nconst ALERT_SIZES = {\n sm: true,\n md: true,\n lg: true,\n} as const\n\nexport type AlertVariant = keyof typeof ALERT_VARIANTS\nexport type AlertSize = keyof typeof ALERT_SIZES\n\nexport interface AlertRecipeOptions {\n variant?: AlertVariant\n size?: AlertSize\n dismissed?: boolean\n fullWidth?: boolean\n interactive?: boolean\n hovered?: boolean\n focused?: boolean\n active?: boolean\n disabled?: boolean\n loading?: boolean\n}\n\nexport function getAlertClasses(opts: AlertRecipeOptions = {}): string {\n const {\n variant: variantInput,\n size: sizeInput,\n dismissed = false,\n fullWidth = false,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n disabled = false,\n loading = false,\n } = opts\n\n const variant = resolveOption({\n name: 'alert variant',\n value: variantInput,\n allowed: ALERT_VARIANTS,\n fallback: 'info',\n })\n\n const size = resolveOption({\n name: 'alert size',\n value: sizeInput,\n allowed: ALERT_SIZES,\n fallback: 'md',\n })\n\n return cx(\n 'sp-alert',\n `sp-alert--${variant}`,\n `sp-alert--${size}`,\n dismissed && 'sp-alert--dismissed',\n fullWidth && 'sp-alert--full',\n interactive && 'sp-alert--interactive',\n hovered && 'sp-alert--hover is-hover',\n focused && 'sp-alert--focus is-focus',\n active && 'sp-alert--active is-active',\n disabled && 'sp-alert--disabled',\n loading && 'sp-alert--loading'\n )\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst AVATAR_SIZES = {\n xs: true,\n sm: true,\n md: true,\n lg: true,\n xl: true,\n} as const\n\nconst AVATAR_SHAPES = {\n circle: true,\n square: true,\n} as const\n\nexport type AvatarSize = keyof typeof AVATAR_SIZES\nexport type AvatarShape = keyof typeof AVATAR_SHAPES\n\nexport interface AvatarRecipeOptions {\n size?: AvatarSize\n shape?: AvatarShape\n disabled?: boolean\n loading?: boolean\n interactive?: boolean\n hovered?: boolean\n focused?: boolean\n active?: boolean\n fullWidth?: boolean\n placeholder?: boolean\n}\n\nexport function getAvatarClasses(opts: AvatarRecipeOptions = {}): string {\n const {\n size: sizeInput,\n shape: shapeInput,\n disabled = false,\n loading = false,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n fullWidth = false,\n placeholder = false,\n } = opts\n\n const size = resolveOption({\n name: 'avatar size',\n value: sizeInput,\n allowed: AVATAR_SIZES,\n fallback: 'md',\n })\n\n const shape = resolveOption({\n name: 'avatar shape',\n value: shapeInput,\n allowed: AVATAR_SHAPES,\n fallback: 'circle',\n })\n\n return cx(\n 'sp-avatar',\n `sp-avatar--${size}`,\n `sp-avatar--${shape}`,\n disabled && 'sp-avatar--disabled',\n loading && 'sp-avatar--loading',\n interactive && 'sp-avatar--interactive',\n hovered && 'sp-avatar--hover is-hover',\n focused && 'sp-avatar--focus is-focus',\n active && 'sp-avatar--active is-active',\n fullWidth && 'sp-avatar--full',\n placeholder && 'sp-avatar--placeholder'\n )\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst TAG_VARIANTS = {\n default: true,\n primary: true,\n secondary: true,\n success: true,\n warning: true,\n danger: true,\n info: true,\n neutral: true,\n accent: true,\n cta: true,\n outline: true,\n ghost: true,\n} as const\n\nconst TAG_SIZES = {\n sm: true,\n md: true,\n lg: true,\n} as const\n\nexport type TagVariant = keyof typeof TAG_VARIANTS\nexport type TagSize = keyof typeof TAG_SIZES\n\nexport interface TagRecipeOptions {\n variant?: TagVariant\n size?: TagSize\n dismissible?: boolean\n selected?: boolean\n disabled?: boolean\n loading?: boolean\n interactive?: boolean\n hovered?: boolean\n focused?: boolean\n active?: boolean\n fullWidth?: boolean\n}\n\nexport function getTagClasses(opts: TagRecipeOptions = {}): string {\n const {\n variant: variantInput,\n size: sizeInput,\n dismissible = false,\n selected = false,\n disabled = false,\n loading = false,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n fullWidth = false,\n } = opts\n\n const variant = resolveOption({\n name: 'tag variant',\n value: variantInput,\n allowed: TAG_VARIANTS,\n fallback: 'default',\n })\n\n const size =\n sizeInput &&\n resolveOption({\n name: 'tag size',\n value: sizeInput,\n allowed: TAG_SIZES,\n fallback: 'md',\n })\n\n return cx(\n 'sp-tag',\n `sp-tag--${variant}`,\n size && `sp-tag--${size}`,\n dismissible && 'sp-tag--dismissible',\n selected && 'sp-tag--selected',\n disabled && 'sp-tag--disabled',\n loading && 'sp-tag--loading',\n interactive && 'sp-tag--interactive',\n hovered && 'sp-tag--hover is-hover',\n focused && 'sp-tag--focus is-focus',\n active && 'sp-tag--active is-active',\n fullWidth && 'sp-tag--full'\n )\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst SPINNER_VARIANTS = {\n primary: true,\n secondary: true,\n success: true,\n warning: true,\n danger: true,\n info: true,\n neutral: true,\n accent: true,\n cta: true,\n} as const\n\nconst SPINNER_SIZES = {\n sm: true,\n md: true,\n lg: true,\n} as const\n\nexport type SpinnerVariant = keyof typeof SPINNER_VARIANTS\nexport type SpinnerSize = keyof typeof SPINNER_SIZES\n\nexport interface SpinnerRecipeOptions {\n variant?: SpinnerVariant\n size?: SpinnerSize\n disabled?: boolean\n loading?: boolean\n}\n\nexport function getSpinnerClasses(opts: SpinnerRecipeOptions = {}): string {\n const {\n variant: variantInput,\n size: sizeInput,\n disabled = false,\n loading = false,\n } = opts\n\n const variant =\n variantInput &&\n resolveOption({\n name: 'spinner variant',\n value: variantInput,\n allowed: SPINNER_VARIANTS,\n fallback: 'primary',\n })\n\n const size = resolveOption({\n name: 'spinner size',\n value: sizeInput,\n allowed: SPINNER_SIZES,\n fallback: 'md',\n })\n\n return cx(\n 'sp-spinner',\n variant && `sp-spinner--${variant}`,\n `sp-spinner--${size}`,\n disabled && 'sp-spinner--disabled',\n loading && 'sp-spinner--loading'\n )\n}\n","import { cx } from '../internal/cx'\n\nexport interface NavRecipeOptions {\n bordered?: boolean\n sticky?: boolean\n fullWidth?: boolean\n}\n\nexport function getNavClasses(opts: NavRecipeOptions = {}): string {\n const { bordered = false, sticky = false, fullWidth = false } = opts\n\n return cx(\n 'sp-nav',\n bordered && 'sp-nav--bordered',\n sticky && 'sp-nav--sticky',\n fullWidth && 'sp-nav--full'\n )\n}\n\nexport function getNavLinksClasses(): string {\n return cx('sp-nav__links')\n}\n\nexport interface NavLinkRecipeOptions {\n active?: boolean\n disabled?: boolean\n hovered?: boolean\n focused?: boolean\n}\n\nexport function getNavLinkClasses(opts: NavLinkRecipeOptions = {}): string {\n const {\n active = false,\n disabled = false,\n hovered = false,\n focused = false,\n } = opts\n\n return cx(\n 'sp-nav__link',\n active && 'sp-nav__link--active',\n disabled && 'sp-nav__link--disabled',\n hovered && 'sp-nav__link--hover is-hover',\n focused && 'sp-nav__link--focus is-focus'\n )\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst TOAST_VARIANTS = {\n info: true,\n success: true,\n warning: true,\n danger: true,\n} as const\n\nexport type ToastVariant = keyof typeof TOAST_VARIANTS\n\nexport interface ToastRecipeOptions {\n variant?: ToastVariant\n dismissed?: boolean\n fullWidth?: boolean\n}\n\nexport function getToastClasses(opts: ToastRecipeOptions = {}): string {\n const { variant: variantInput, dismissed = false, fullWidth = false } = opts\n\n const variant = resolveOption({\n name: 'toast variant',\n value: variantInput,\n allowed: TOAST_VARIANTS,\n fallback: 'info',\n })\n\n return cx(\n 'sp-toast',\n `sp-toast--${variant}`,\n dismissed && 'sp-toast--dismissed',\n fullWidth && 'sp-toast--full'\n )\n}\n\nexport interface ToastIconRecipeOptions {\n variant?: ToastVariant\n}\n\nexport function getToastIconClasses(\n opts: ToastIconRecipeOptions = {}\n): string {\n const { variant: variantInput } = opts\n\n const variant = resolveOption({\n name: 'toast variant',\n value: variantInput,\n allowed: TOAST_VARIANTS,\n fallback: 'info',\n })\n\n return cx('sp-toast__icon', `sp-toast__icon--${variant}`)\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst TOOLTIP_PLACEMENTS = {\n top: true,\n bottom: true,\n left: true,\n right: true,\n} as const\n\nexport type TooltipPlacement = keyof typeof TOOLTIP_PLACEMENTS\n\nexport interface TooltipRecipeOptions {\n placement?: TooltipPlacement\n visible?: boolean\n}\n\nexport function getTooltipClasses(opts: TooltipRecipeOptions = {}): string {\n const { placement: placementInput, visible = false } = opts\n\n const placement = resolveOption({\n name: 'tooltip placement',\n value: placementInput,\n allowed: TOOLTIP_PLACEMENTS,\n fallback: 'top',\n })\n\n return cx(\n 'sp-tooltip',\n `sp-tooltip--${placement}`,\n visible && 'sp-tooltip--visible'\n )\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst DROPDOWN_PLACEMENTS = {\n 'bottom-start': true,\n 'bottom-end': true,\n 'top-start': true,\n 'top-end': true,\n} as const\n\nexport type DropdownPlacement = keyof typeof DROPDOWN_PLACEMENTS\n\nexport interface DropdownRecipeOptions {\n fullWidth?: boolean\n}\n\nexport function getDropdownClasses(opts: DropdownRecipeOptions = {}): string {\n const { fullWidth = false } = opts\n\n return cx('sp-dropdown', fullWidth && 'sp-dropdown--full')\n}\n\nexport interface DropdownMenuRecipeOptions {\n placement?: DropdownPlacement\n open?: boolean\n}\n\nexport function getDropdownMenuClasses(\n opts: DropdownMenuRecipeOptions = {}\n): string {\n const { placement: placementInput, open = false } = opts\n\n const placement = resolveOption({\n name: 'dropdown menu placement',\n value: placementInput,\n allowed: DROPDOWN_PLACEMENTS,\n fallback: 'bottom-start',\n })\n\n return cx(\n 'sp-dropdown__menu',\n `sp-dropdown__menu--${placement}`,\n open && 'sp-dropdown__menu--open'\n )\n}\n\nexport interface DropdownItemRecipeOptions {\n active?: boolean\n disabled?: boolean\n hovered?: boolean\n focused?: boolean\n}\n\nexport function getDropdownItemClasses(\n opts: DropdownItemRecipeOptions = {}\n): string {\n const {\n active = false,\n disabled = false,\n hovered = false,\n focused = false,\n } = opts\n\n return cx(\n 'sp-dropdown__item',\n active && 'sp-dropdown__item--active',\n disabled && 'sp-dropdown__item--disabled',\n hovered && 'sp-dropdown__item--hover is-hover',\n focused && 'sp-dropdown__item--focus is-focus'\n )\n}\n","import { cx } from '../internal/cx'\n\nexport interface ModalOverlayRecipeOptions {\n open?: boolean\n}\n\nexport function getModalOverlayClasses(\n opts: ModalOverlayRecipeOptions = {}\n): string {\n const { open = false } = opts\n\n return cx('sp-modal-overlay', open && 'sp-modal-overlay--open')\n}\n\nexport interface ModalRecipeOptions {\n open?: boolean\n fullWidth?: boolean\n}\n\nexport function getModalClasses(opts: ModalRecipeOptions = {}): string {\n const { open = false, fullWidth = false } = opts\n\n return cx(\n 'sp-modal',\n open && 'sp-modal--open',\n fullWidth && 'sp-modal--full'\n )\n}\n","export interface ContainerRecipeOptions {}\n\nexport function getContainerClasses(_opts: ContainerRecipeOptions = {}): string {\n return 'sp-container'\n}\n","import { resolveOption } from '../internal/resolve-option'\n\nconst STACK_DIRECTIONS = {\n vertical: true,\n horizontal: true,\n} as const\n\nexport type StackDirection = keyof typeof STACK_DIRECTIONS\n\nexport interface StackRecipeOptions {\n direction?: StackDirection\n}\n\nexport function getStackClasses(opts: StackRecipeOptions = {}): string {\n const { direction: directionInput } = opts\n\n const direction = resolveOption({\n name: 'stack direction',\n value: directionInput,\n allowed: STACK_DIRECTIONS,\n fallback: 'vertical',\n })\n\n return direction === 'horizontal' ? 'sp-hstack' : 'sp-stack'\n}\n","export interface SectionRecipeOptions {}\n\nexport function getSectionClasses(_opts: SectionRecipeOptions = {}): string {\n return 'sp-section'\n}\n"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -423,4 +423,22 @@ interface ModalRecipeOptions {
|
|
|
423
423
|
}
|
|
424
424
|
declare function getModalClasses(opts?: ModalRecipeOptions): string;
|
|
425
425
|
|
|
426
|
-
|
|
426
|
+
interface ContainerRecipeOptions {
|
|
427
|
+
}
|
|
428
|
+
declare function getContainerClasses(_opts?: ContainerRecipeOptions): string;
|
|
429
|
+
|
|
430
|
+
declare const STACK_DIRECTIONS: {
|
|
431
|
+
readonly vertical: true;
|
|
432
|
+
readonly horizontal: true;
|
|
433
|
+
};
|
|
434
|
+
type StackDirection = keyof typeof STACK_DIRECTIONS;
|
|
435
|
+
interface StackRecipeOptions {
|
|
436
|
+
direction?: StackDirection;
|
|
437
|
+
}
|
|
438
|
+
declare function getStackClasses(opts?: StackRecipeOptions): string;
|
|
439
|
+
|
|
440
|
+
interface SectionRecipeOptions {
|
|
441
|
+
}
|
|
442
|
+
declare function getSectionClasses(_opts?: SectionRecipeOptions): string;
|
|
443
|
+
|
|
444
|
+
export { type AlertRecipeOptions, type AlertSize, type AlertVariant, type AvatarRecipeOptions, type AvatarShape, type AvatarSize, type BadgeRecipeOptions, type BadgeSize, type BadgeVariant, type ButtonRecipeOptions, type ButtonSize, type ButtonVariant, type CardRecipeOptions, type CardVariant, type ContainerRecipeOptions, type DropdownItemRecipeOptions, type DropdownMenuRecipeOptions, type DropdownPlacement, type DropdownRecipeOptions, type IconBoxRecipeOptions, type IconBoxSize, type IconBoxVariant, type InputRecipeOptions, type InputSize, type InputState, type ModalOverlayRecipeOptions, type ModalRecipeOptions, type NavLinkRecipeOptions, type NavRecipeOptions, type PricingCardRecipeOptions, type RatingRecipeOptions, type RatingSize, type SectionRecipeOptions, type SpinnerRecipeOptions, type SpinnerSize, type SpinnerVariant, type StackDirection, type StackRecipeOptions, type TagRecipeOptions, type TagSize, type TagVariant, type TestimonialRecipeOptions, type ToastIconRecipeOptions, type ToastRecipeOptions, type ToastVariant, type TooltipPlacement, type TooltipRecipeOptions, getAlertClasses, getAvatarClasses, getBadgeClasses, getButtonClasses, getCardClasses, getContainerClasses, getDropdownClasses, getDropdownItemClasses, getDropdownMenuClasses, getIconBoxClasses, getInputClasses, getInputErrorMessageClasses, getInputHelperTextClasses, getInputLabelClasses, getInputWrapperClasses, getModalClasses, getModalOverlayClasses, getNavClasses, getNavLinkClasses, getNavLinksClasses, getPricingCardBadgeClasses, getPricingCardClasses, getPricingCardDescriptionClasses, getPricingCardPriceClasses, getPricingCardPriceContainerClasses, getRatingClasses, getRatingStarClasses, getRatingStarsClasses, getRatingTextClasses, getSectionClasses, getSpinnerClasses, getStackClasses, getTagClasses, getTestimonialAuthorClasses, getTestimonialAuthorInfoClasses, getTestimonialAuthorNameClasses, getTestimonialAuthorTitleClasses, getTestimonialClasses, getTestimonialQuoteClasses, getToastClasses, getToastIconClasses, getTooltipClasses, spectreBaseStylesPath, spectreComponentsStylesPath, spectreIndexStylesPath, spectreStyles, spectreUtilitiesStylesPath };
|
package/dist/index.d.ts
CHANGED
|
@@ -423,4 +423,22 @@ interface ModalRecipeOptions {
|
|
|
423
423
|
}
|
|
424
424
|
declare function getModalClasses(opts?: ModalRecipeOptions): string;
|
|
425
425
|
|
|
426
|
-
|
|
426
|
+
interface ContainerRecipeOptions {
|
|
427
|
+
}
|
|
428
|
+
declare function getContainerClasses(_opts?: ContainerRecipeOptions): string;
|
|
429
|
+
|
|
430
|
+
declare const STACK_DIRECTIONS: {
|
|
431
|
+
readonly vertical: true;
|
|
432
|
+
readonly horizontal: true;
|
|
433
|
+
};
|
|
434
|
+
type StackDirection = keyof typeof STACK_DIRECTIONS;
|
|
435
|
+
interface StackRecipeOptions {
|
|
436
|
+
direction?: StackDirection;
|
|
437
|
+
}
|
|
438
|
+
declare function getStackClasses(opts?: StackRecipeOptions): string;
|
|
439
|
+
|
|
440
|
+
interface SectionRecipeOptions {
|
|
441
|
+
}
|
|
442
|
+
declare function getSectionClasses(_opts?: SectionRecipeOptions): string;
|
|
443
|
+
|
|
444
|
+
export { type AlertRecipeOptions, type AlertSize, type AlertVariant, type AvatarRecipeOptions, type AvatarShape, type AvatarSize, type BadgeRecipeOptions, type BadgeSize, type BadgeVariant, type ButtonRecipeOptions, type ButtonSize, type ButtonVariant, type CardRecipeOptions, type CardVariant, type ContainerRecipeOptions, type DropdownItemRecipeOptions, type DropdownMenuRecipeOptions, type DropdownPlacement, type DropdownRecipeOptions, type IconBoxRecipeOptions, type IconBoxSize, type IconBoxVariant, type InputRecipeOptions, type InputSize, type InputState, type ModalOverlayRecipeOptions, type ModalRecipeOptions, type NavLinkRecipeOptions, type NavRecipeOptions, type PricingCardRecipeOptions, type RatingRecipeOptions, type RatingSize, type SectionRecipeOptions, type SpinnerRecipeOptions, type SpinnerSize, type SpinnerVariant, type StackDirection, type StackRecipeOptions, type TagRecipeOptions, type TagSize, type TagVariant, type TestimonialRecipeOptions, type ToastIconRecipeOptions, type ToastRecipeOptions, type ToastVariant, type TooltipPlacement, type TooltipRecipeOptions, getAlertClasses, getAvatarClasses, getBadgeClasses, getButtonClasses, getCardClasses, getContainerClasses, getDropdownClasses, getDropdownItemClasses, getDropdownMenuClasses, getIconBoxClasses, getInputClasses, getInputErrorMessageClasses, getInputHelperTextClasses, getInputLabelClasses, getInputWrapperClasses, getModalClasses, getModalOverlayClasses, getNavClasses, getNavLinkClasses, getNavLinksClasses, getPricingCardBadgeClasses, getPricingCardClasses, getPricingCardDescriptionClasses, getPricingCardPriceClasses, getPricingCardPriceContainerClasses, getRatingClasses, getRatingStarClasses, getRatingStarsClasses, getRatingTextClasses, getSectionClasses, getSpinnerClasses, getStackClasses, getTagClasses, getTestimonialAuthorClasses, getTestimonialAuthorInfoClasses, getTestimonialAuthorNameClasses, getTestimonialAuthorTitleClasses, getTestimonialClasses, getTestimonialQuoteClasses, getToastClasses, getToastIconClasses, getTooltipClasses, spectreBaseStylesPath, spectreComponentsStylesPath, spectreIndexStylesPath, spectreStyles, spectreUtilitiesStylesPath };
|
package/dist/index.js
CHANGED
|
@@ -896,6 +896,32 @@ function getModalClasses(opts = {}) {
|
|
|
896
896
|
);
|
|
897
897
|
}
|
|
898
898
|
|
|
899
|
-
|
|
899
|
+
// src/recipes/container.ts
|
|
900
|
+
function getContainerClasses(_opts = {}) {
|
|
901
|
+
return "sp-container";
|
|
902
|
+
}
|
|
903
|
+
|
|
904
|
+
// src/recipes/stack.ts
|
|
905
|
+
var STACK_DIRECTIONS = {
|
|
906
|
+
vertical: true,
|
|
907
|
+
horizontal: true
|
|
908
|
+
};
|
|
909
|
+
function getStackClasses(opts = {}) {
|
|
910
|
+
const { direction: directionInput } = opts;
|
|
911
|
+
const direction = resolveOption({
|
|
912
|
+
name: "stack direction",
|
|
913
|
+
value: directionInput,
|
|
914
|
+
allowed: STACK_DIRECTIONS,
|
|
915
|
+
fallback: "vertical"
|
|
916
|
+
});
|
|
917
|
+
return direction === "horizontal" ? "sp-hstack" : "sp-stack";
|
|
918
|
+
}
|
|
919
|
+
|
|
920
|
+
// src/recipes/section.ts
|
|
921
|
+
function getSectionClasses(_opts = {}) {
|
|
922
|
+
return "sp-section";
|
|
923
|
+
}
|
|
924
|
+
|
|
925
|
+
export { getAlertClasses, getAvatarClasses, getBadgeClasses, getButtonClasses, getCardClasses, getContainerClasses, getDropdownClasses, getDropdownItemClasses, getDropdownMenuClasses, getIconBoxClasses, getInputClasses, getInputErrorMessageClasses, getInputHelperTextClasses, getInputLabelClasses, getInputWrapperClasses, getModalClasses, getModalOverlayClasses, getNavClasses, getNavLinkClasses, getNavLinksClasses, getPricingCardBadgeClasses, getPricingCardClasses, getPricingCardDescriptionClasses, getPricingCardPriceClasses, getPricingCardPriceContainerClasses, getRatingClasses, getRatingStarClasses, getRatingStarsClasses, getRatingTextClasses, getSectionClasses, getSpinnerClasses, getStackClasses, getTagClasses, getTestimonialAuthorClasses, getTestimonialAuthorInfoClasses, getTestimonialAuthorNameClasses, getTestimonialAuthorTitleClasses, getTestimonialClasses, getTestimonialQuoteClasses, getToastClasses, getToastIconClasses, getTooltipClasses, spectreBaseStylesPath, spectreComponentsStylesPath, spectreIndexStylesPath, spectreStyles, spectreUtilitiesStylesPath };
|
|
900
926
|
//# sourceMappingURL=index.js.map
|
|
901
927
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/css-constants.ts","../src/internal/cx.ts","../src/internal/resolve-option.ts","../src/recipes/button.ts","../src/recipes/card.ts","../src/recipes/input.ts","../src/recipes/badge.ts","../src/recipes/iconbox.ts","../src/recipes/testimonial.ts","../src/recipes/pricing-card.ts","../src/recipes/rating.ts","../src/recipes/alert.ts","../src/recipes/avatar.ts","../src/recipes/tag.ts","../src/recipes/spinner.ts","../src/recipes/nav.ts","../src/recipes/toast.ts","../src/recipes/tooltip.ts","../src/recipes/dropdown.ts","../src/recipes/modal.ts"],"names":[],"mappings":";AAAO,IAAM,qBAAA,GAAwB;AAC9B,IAAM,2BAAA,GAA8B;AACpC,IAAM,0BAAA,GAA6B;AACnC,IAAM,sBAAA,GAAyB;AAE/B,IAAM,aAAA,GAAgB;AAAA,EAC3B,KAAA,EAAO,sBAAA;AAAA,EACP,IAAA,EAAM,qBAAA;AAAA,EACN,UAAA,EAAY,2BAAA;AAAA,EACZ,SAAA,EAAW;AACb;;;ACVO,SAAS,MAAM,KAAA,EAAyD;AAC7E,EAAA,MAAM,IAAA,uBAAW,GAAA,EAAY;AAC7B,EAAA,MAAM,UAAoB,EAAC;AAE3B,EAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACxB,IAAA,IAAI,CAAC,IAAA,EAAM;AACX,IAAA,MAAM,OAAA,GAAU,KAAK,IAAA,EAAK;AAC1B,IAAA,IAAI,CAAC,OAAA,EAAS;AAEd,IAAA,IAAI,CAAC,IAAA,CAAK,IAAA,CAAK,OAAO,CAAA,EAAG;AACvB,MAAA,IAAI,CAAC,IAAA,CAAK,GAAA,CAAI,OAAO,CAAA,EAAG;AACtB,QAAA,IAAA,CAAK,IAAI,OAAO,CAAA;AAChB,QAAA,OAAA,CAAQ,KAAK,OAAO,CAAA;AAAA,MACtB;AACA,MAAA;AAAA,IACF;AAEA,IAAA,KAAA,MAAW,KAAA,IAAS,OAAA,CAAQ,KAAA,CAAM,KAAK,CAAA,EAAG;AACxC,MAAA,IAAI,CAAC,KAAA,IAAS,IAAA,CAAK,GAAA,CAAI,KAAK,CAAA,EAAG;AAC/B,MAAA,IAAA,CAAK,IAAI,KAAK,CAAA;AACd,MAAA,OAAA,CAAQ,KAAK,KAAK,CAAA;AAAA,IACpB;AAAA,EACF;AAEA,EAAA,OAAO,OAAA,CAAQ,KAAK,GAAG,CAAA;AACzB;;;ACvBA,IAAM,MAAA,GAAS,CAAC,KAAA,EAAe,GAAA,KAC7B,OAAO,SAAA,CAAU,cAAA,CAAe,IAAA,CAAK,KAAA,EAAO,GAAG,CAAA;AAEjD,IAAM,cAAA,GAAiB,CAAmB,KAAA,EAAU,OAAA,KAClD,MAAM,OAAA,CAAQ,OAAO,CAAA,GAAI,OAAA,CAAQ,QAAA,CAAS,KAAK,CAAA,GAAI,MAAA,CAAO,SAAS,KAAK,CAAA;AAEnE,SAAS,cAAgC,MAAA,EAK1C;AACJ,EAAA,MAAM,EAAE,IAAA,EAAM,KAAA,EAAO,OAAA,EAAS,UAAS,GAAI,MAAA;AAE3C,EAAA,IAAI,KAAA,KAAU,QAAW,OAAO,QAAA;AAChC,EAAA,IAAI,cAAA,CAAe,KAAA,EAAO,OAAO,CAAA,EAAG,OAAO,KAAA;AAE3C,EAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,YAAA,EAAc;AACzC,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,qBAAA,EAAwB,IAAI,CAAA,EAAA,EAAK,KAAK,CAAA,CAAE,CAAA;AAAA,EAC1D;AAEA,EAAA,OAAO,QAAA;AACT;;;ACrBA,IAAM,eAAA,GAAkB;AAAA,EACtB,OAAA,EAAS,IAAA;AAAA,EACT,SAAA,EAAW,IAAA;AAAA,EACX,KAAA,EAAO,IAAA;AAAA,EACP,MAAA,EAAQ,IAAA;AAAA,EACR,OAAA,EAAS,IAAA;AAAA,EACT,GAAA,EAAK,IAAA;AAAA,EACL,MAAA,EAAQ;AACV,CAAA;AAEA,IAAM,YAAA,GAAe;AAAA,EACnB,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAkBO,SAAS,gBAAA,CAAiB,IAAA,GAA4B,EAAC,EAAW;AACvE,EAAA,MAAM;AAAA,IACJ,OAAA,EAAS,YAAA;AAAA,IACT,IAAA,EAAM,SAAA;AAAA,IACN,SAAA,GAAY,KAAA;AAAA,IACZ,OAAA,GAAU,KAAA;AAAA,IACV,QAAA,GAAW,KAAA;AAAA,IACX,OAAA,GAAU,KAAA;AAAA,IACV,OAAA,GAAU,KAAA;AAAA,IACV,MAAA,GAAS,KAAA;AAAA,IACT,QAAA,GAAW,KAAA;AAAA,IACX,IAAA,GAAO;AAAA,GACT,GAAI,IAAA;AAEJ,EAAA,MAAM,UAAU,aAAA,CAAc;AAAA,IAC5B,IAAA,EAAM,gBAAA;AAAA,IACN,KAAA,EAAO,YAAA;AAAA,IACP,OAAA,EAAS,eAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AACD,EAAA,MAAM,OAAO,aAAA,CAAc;AAAA,IACzB,IAAA,EAAM,aAAA;AAAA,IACN,KAAA,EAAO,SAAA;AAAA,IACP,OAAA,EAAS,YAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,MAAM,UAAA,GAA4C;AAAA,IAChD,OAAA,EAAS,iBAAA;AAAA,IACT,SAAA,EAAW,mBAAA;AAAA,IACX,KAAA,EAAO,eAAA;AAAA,IACP,MAAA,EAAQ,gBAAA;AAAA,IACR,OAAA,EAAS,iBAAA;AAAA,IACT,GAAA,EAAK,aAAA;AAAA,IACL,MAAA,EAAQ;AAAA,GACV;AACA,EAAA,MAAM,YAAA,GAAe,WAAW,OAAO,CAAA;AAEvC,EAAA,MAAM,OAAA,GAAsC;AAAA,IAC1C,EAAA,EAAI,YAAA;AAAA,IACJ,EAAA,EAAI,YAAA;AAAA,IACJ,EAAA,EAAI;AAAA,GACN;AACA,EAAA,MAAM,SAAA,GAAY,QAAQ,IAAI,CAAA;AAE9B,EAAA,OAAO,EAAA;AAAA,IACL,QAAA;AAAA,IACA,YAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA,IAAa,cAAA;AAAA,IACb,OAAA,IAAW,iBAAA;AAAA,IACX,QAAA,IAAY,kBAAA;AAAA,IACZ,OAAA,IAAW,wBAAA;AAAA,IACX,OAAA,IAAW,wBAAA;AAAA,IACX,MAAA,IAAU,0BAAA;AAAA,IACV,QAAA,IAAY,cAAA;AAAA,IACZ,IAAA,IAAQ;AAAA,GACV;AACF;;;AC1FA,IAAM,aAAA,GAAgB;AAAA,EACpB,QAAA,EAAU,IAAA;AAAA,EACV,IAAA,EAAM,IAAA;AAAA,EACN,OAAA,EAAS,IAAA;AAAA,EACT,KAAA,EAAO;AACT,CAAA;AAgBO,SAAS,cAAA,CAAe,IAAA,GAA0B,EAAC,EAAW;AACnE,EAAA,MAAM;AAAA,IACJ,OAAA,EAAS,YAAA;AAAA,IACT,WAAA,GAAc,KAAA;AAAA,IACd,MAAA,GAAS,KAAA;AAAA,IACT,UAAA,GAAa,KAAA;AAAA,IACb,QAAA,GAAW,KAAA;AAAA,IACX,OAAA,GAAU,KAAA;AAAA,IACV,OAAA,GAAU,KAAA;AAAA,IACV,OAAA,GAAU,KAAA;AAAA,IACV,MAAA,GAAS;AAAA,GACX,GAAI,IAAA;AAEJ,EAAA,MAAM,UAAU,aAAA,CAAc;AAAA,IAC5B,IAAA,EAAM,cAAA;AAAA,IACN,KAAA,EAAO,YAAA;AAAA,IACP,OAAA,EAAS,aAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,MAAM,UAAA,GAA0C;AAAA,IAC9C,QAAA,EAAU,mBAAA;AAAA,IACV,IAAA,EAAM,eAAA;AAAA,IACN,OAAA,EAAS,kBAAA;AAAA,IACT,KAAA,EAAO;AAAA,GACT;AACA,EAAA,MAAM,YAAA,GAAe,WAAW,OAAO,CAAA;AAEvC,EAAA,OAAO,EAAA;AAAA,IACL,SAAA;AAAA,IACA,YAAA;AAAA,IACA,WAAA,IAAe,sBAAA;AAAA,IACf,MAAA,IAAU,iBAAA;AAAA,IACV,UAAA,IAAc,eAAA;AAAA,IACd,QAAA,IAAY,mBAAA;AAAA,IACZ,OAAA,IAAW,kBAAA;AAAA,IACX,OAAA,IAAW,yBAAA;AAAA,IACX,OAAA,IAAW,yBAAA;AAAA,IACX,MAAA,IAAU;AAAA,GACZ;AACF;;;AC7DA,IAAM,YAAA,GAAe;AAAA,EACnB,OAAA,EAAS,IAAA;AAAA,EACT,KAAA,EAAO,IAAA;AAAA,EACP,OAAA,EAAS,IAAA;AAAA,EACT,QAAA,EAAU,IAAA;AAAA,EACV,OAAA,EAAS;AACX,CAAA;AAEA,IAAM,WAAA,GAAc;AAAA,EAClB,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAiBO,SAAS,eAAA,CAAgB,IAAA,GAA2B,EAAC,EAAW;AACrE,EAAA,MAAM;AAAA,IACJ,KAAA,EAAO,UAAA;AAAA,IACP,IAAA,EAAM,SAAA;AAAA,IACN,SAAA,GAAY,KAAA;AAAA,IACZ,IAAA,GAAO,KAAA;AAAA,IACP,OAAA,GAAU,KAAA;AAAA,IACV,OAAA,GAAU,KAAA;AAAA,IACV,MAAA,GAAS,KAAA;AAAA,IACT,QAAA,GAAW,KAAA;AAAA,IACX,OAAA,GAAU;AAAA,GACZ,GAAI,IAAA;AAEJ,EAAA,MAAM,QAAQ,aAAA,CAAc;AAAA,IAC1B,IAAA,EAAM,aAAA;AAAA,IACN,KAAA,EAAO,UAAA;AAAA,IACP,OAAA,EAAS,YAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AACD,EAAA,MAAM,OAAO,aAAA,CAAc;AAAA,IACzB,IAAA,EAAM,YAAA;AAAA,IACN,KAAA,EAAO,SAAA;AAAA,IACP,OAAA,EAAS,WAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,MAAM,OAAA,GAAqC;AAAA,IACzC,EAAA,EAAI,cAAA;AAAA,IACJ,EAAA,EAAI,cAAA;AAAA,IACJ,EAAA,EAAI;AAAA,GACN;AACA,EAAA,MAAM,SAAA,GAAY,QAAQ,IAAI,CAAA;AAE9B,EAAA,OAAO,EAAA;AAAA,IACL,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAU,OAAA,IAAW,iBAAA;AAAA,IACrB,UAAU,SAAA,IAAa,mBAAA;AAAA;AAAA,IAAA,CAEtB,KAAA,KAAU,cAAc,QAAA,KAAa,oBAAA;AAAA,IAAA,CACrC,KAAA,KAAU,aAAa,OAAA,KAAY,mBAAA;AAAA,IACpC,OAAA,IAAW,0BAAA;AAAA,IACX,OAAA,IAAW,0BAAA;AAAA,IACX,MAAA,IAAU,4BAAA;AAAA,IACV,SAAA,IAAa,gBAAA;AAAA,IACb,IAAA,IAAQ;AAAA,GACV;AACF;AAEO,SAAS,sBAAA,GAAiC;AAC/C,EAAA,OAAO,GAAG,kBAAkB,CAAA;AAC9B;AAEO,SAAS,oBAAA,CAAqB,IAAA,GAA+B,EAAC,EAAW;AAC9E,EAAA,MAAM,EAAE,QAAA,GAAW,KAAA,EAAM,GAAI,IAAA;AAC7B,EAAA,OAAO,EAAA;AAAA,IACL,UAAA;AAAA,IACA,QAAA,IAAY;AAAA,GACd;AACF;AAEO,SAAS,yBAAA,CAA0B,IAAA,GAA+B,EAAC,EAAW;AACnF,EAAA,MAAM,EAAE,QAAA,GAAW,KAAA,EAAM,GAAI,IAAA;AAC7B,EAAA,OAAO,EAAA;AAAA,IACL,gBAAA;AAAA,IACA,QAAA,IAAY;AAAA,GACd;AACF;AAEO,SAAS,2BAAA,GAAsC;AACpD,EAAA,OAAO,GAAG,kBAAkB,CAAA;AAC9B;;;ACpGA,IAAM,cAAA,GAAiB;AAAA,EACrB,OAAA,EAAS,IAAA;AAAA,EACT,SAAA,EAAW,IAAA;AAAA,EACX,OAAA,EAAS,IAAA;AAAA,EACT,OAAA,EAAS,IAAA;AAAA,EACT,MAAA,EAAQ,IAAA;AAAA,EACR,OAAA,EAAS,IAAA;AAAA,EACT,IAAA,EAAM,IAAA;AAAA,EACN,KAAA,EAAO,IAAA;AAAA,EACP,OAAA,EAAS,IAAA;AAAA,EACT,MAAA,EAAQ,IAAA;AAAA,EACR,GAAA,EAAK;AACP,CAAA;AAEA,IAAM,WAAA,GAAc;AAAA,EAClB,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAiBO,SAAS,eAAA,CAAgB,IAAA,GAA2B,EAAC,EAAW;AACrE,EAAA,MAAM;AAAA,IACJ,OAAA,EAAS,YAAA;AAAA,IACT,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,GAAc,KAAA;AAAA,IACd,OAAA,GAAU,KAAA;AAAA,IACV,OAAA,GAAU,KAAA;AAAA,IACV,MAAA,GAAS,KAAA;AAAA,IACT,QAAA,GAAW,KAAA;AAAA,IACX,OAAA,GAAU,KAAA;AAAA,IACV,SAAA,GAAY;AAAA,GACd,GAAI,IAAA;AAEJ,EAAA,MAAM,UAAU,aAAA,CAAc;AAAA,IAC5B,IAAA,EAAM,eAAA;AAAA,IACN,KAAA,EAAO,YAAA;AAAA,IACP,OAAA,EAAS,cAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AACD,EAAA,MAAM,OAAO,aAAA,CAAc;AAAA,IACzB,IAAA,EAAM,YAAA;AAAA,IACN,KAAA,EAAO,SAAA;AAAA,IACP,OAAA,EAAS,WAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,MAAM,UAAA,GAA2C;AAAA,IAC/C,OAAA,EAAS,mBAAA;AAAA,IACT,SAAA,EAAW,qBAAA;AAAA,IACX,OAAA,EAAS,mBAAA;AAAA,IACT,OAAA,EAAS,mBAAA;AAAA,IACT,MAAA,EAAQ,kBAAA;AAAA,IACR,OAAA,EAAS,mBAAA;AAAA,IACT,IAAA,EAAM,gBAAA;AAAA,IACN,KAAA,EAAO,iBAAA;AAAA,IACP,OAAA,EAAS,mBAAA;AAAA,IACT,MAAA,EAAQ,kBAAA;AAAA,IACR,GAAA,EAAK;AAAA,GACP;AACA,EAAA,MAAM,YAAA,GAAe,WAAW,OAAO,CAAA;AAEvC,EAAA,MAAM,OAAA,GAAqC;AAAA,IACzC,EAAA,EAAI,cAAA;AAAA,IACJ,EAAA,EAAI,cAAA;AAAA,IACJ,EAAA,EAAI;AAAA,GACN;AACA,EAAA,MAAM,SAAA,GAAY,QAAQ,IAAI,CAAA;AAE9B,EAAA,OAAO,EAAA;AAAA,IACL,UAAA;AAAA,IACA,YAAA;AAAA,IACA,SAAA;AAAA,IACA,WAAA,IAAe,uBAAA;AAAA,IACf,OAAA,IAAW,0BAAA;AAAA,IACX,OAAA,IAAW,0BAAA;AAAA,IACX,MAAA,IAAU,4BAAA;AAAA,IACV,QAAA,IAAY,oBAAA;AAAA,IACZ,OAAA,IAAW,mBAAA;AAAA,IACX,SAAA,IAAa;AAAA,GACf;AACF;;;AC/FA,IAAM,gBAAA,GAAmB;AAAA,EACvB,OAAA,EAAS,IAAA;AAAA,EACT,SAAA,EAAW,IAAA;AAAA,EACX,OAAA,EAAS,IAAA;AAAA,EACT,OAAA,EAAS,IAAA;AAAA,EACT,MAAA,EAAQ,IAAA;AAAA,EACR,IAAA,EAAM,IAAA;AAAA,EACN,OAAA,EAAS,IAAA;AAAA,EACT,KAAA,EAAO,IAAA;AAAA,EACP,MAAA,EAAQ,IAAA;AAAA,EACR,GAAA,EAAK,IAAA;AAAA,EACL,OAAA,EAAS;AACX,CAAA;AAEA,IAAM,aAAA,GAAgB;AAAA,EACpB,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAkBO,SAAS,iBAAA,CAAkB,IAAA,GAA6B,EAAC,EAAW;AACzE,EAAA,MAAM;AAAA,IACJ,OAAA,EAAS,YAAA;AAAA,IACT,IAAA,EAAM,SAAA;AAAA,IACN,QAAA,GAAW,KAAA;AAAA,IACX,OAAA,GAAU,KAAA;AAAA,IACV,WAAA,GAAc,KAAA;AAAA,IACd,OAAA,GAAU,KAAA;AAAA,IACV,OAAA,GAAU,KAAA;AAAA,IACV,MAAA,GAAS,KAAA;AAAA,IACT,IAAA,GAAO,KAAA;AAAA,IACP,SAAA,GAAY;AAAA,GACd,GAAI,IAAA;AAEJ,EAAA,MAAM,UAAU,aAAA,CAAc;AAAA,IAC5B,IAAA,EAAM,kBAAA;AAAA,IACN,KAAA,EAAO,YAAA;AAAA,IACP,OAAA,EAAS,gBAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AACD,EAAA,MAAM,OAAO,aAAA,CAAc;AAAA,IACzB,IAAA,EAAM,eAAA;AAAA,IACN,KAAA,EAAO,SAAA;AAAA,IACP,OAAA,EAAS,aAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,MAAM,UAAA,GAA6C;AAAA,IACjD,OAAA,EAAS,qBAAA;AAAA,IACT,SAAA,EAAW,uBAAA;AAAA,IACX,OAAA,EAAS,qBAAA;AAAA,IACT,OAAA,EAAS,qBAAA;AAAA,IACT,MAAA,EAAQ,oBAAA;AAAA,IACR,IAAA,EAAM,kBAAA;AAAA,IACN,OAAA,EAAS,qBAAA;AAAA,IACT,KAAA,EAAO,mBAAA;AAAA,IACP,MAAA,EAAQ,oBAAA;AAAA,IACR,GAAA,EAAK,iBAAA;AAAA,IACL,OAAA,EAAS;AAAA,GACX;AACA,EAAA,MAAM,YAAA,GAAe,WAAW,OAAO,CAAA;AAEvC,EAAA,MAAM,OAAA,GAAuC;AAAA,IAC3C,EAAA,EAAI,gBAAA;AAAA,IACJ,EAAA,EAAI,gBAAA;AAAA,IACJ,EAAA,EAAI,gBAAA;AAAA,IACJ,EAAA,EAAI;AAAA,GACN;AACA,EAAA,MAAM,SAAA,GAAY,QAAQ,IAAI,CAAA;AAE9B,EAAA,OAAO,EAAA;AAAA,IACL,YAAA;AAAA,IACA,YAAA;AAAA,IACA,SAAA;AAAA,IACA,QAAA,IAAY,sBAAA;AAAA,IACZ,OAAA,IAAW,qBAAA;AAAA,IACX,WAAA,IAAe,yBAAA;AAAA,IACf,OAAA,IAAW,4BAAA;AAAA,IACX,OAAA,IAAW,4BAAA;AAAA,IACX,MAAA,IAAU,8BAAA;AAAA,IACV,IAAA,IAAQ,kBAAA;AAAA,IACR,SAAA,IAAa;AAAA,GACf;AACF;;;ACpGA,IAAM,oBAAA,GAAuB;AAAA,EAC3B,QAAA,EAAU,IAAA;AAAA,EACV,IAAA,EAAM,IAAA;AAAA,EACN,OAAA,EAAS,IAAA;AAAA,EACT,KAAA,EAAO;AACT,CAAA;AAeO,SAAS,qBAAA,CAAsB,IAAA,GAAiC,EAAC,EAAW;AACjF,EAAA,MAAM;AAAA,IACJ,OAAA,EAAS,YAAA;AAAA,IACT,QAAA,GAAW,KAAA;AAAA,IACX,OAAA,GAAU,KAAA;AAAA,IACV,WAAA,GAAc,KAAA;AAAA,IACd,OAAA,GAAU,KAAA;AAAA,IACV,OAAA,GAAU,KAAA;AAAA,IACV,MAAA,GAAS,KAAA;AAAA,IACT,UAAA,GAAa;AAAA,GACf,GAAI,IAAA;AAEJ,EAAA,MAAM,UAAU,aAAA,CAAc;AAAA,IAC5B,IAAA,EAAM,qBAAA;AAAA,IACN,KAAA,EAAO,YAAA;AAAA,IACP,OAAA,EAAS,oBAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,MAAM,UAAA,GAAiD;AAAA,IACrD,QAAA,EAAU,0BAAA;AAAA,IACV,IAAA,EAAM,sBAAA;AAAA,IACN,OAAA,EAAS,yBAAA;AAAA,IACT,KAAA,EAAO;AAAA,GACT;AACA,EAAA,MAAM,YAAA,GAAe,WAAW,OAAO,CAAA;AAEvC,EAAA,OAAO,EAAA;AAAA,IACL,gBAAA;AAAA,IACA,YAAA;AAAA,IACA,QAAA,IAAY,0BAAA;AAAA,IACZ,OAAA,IAAW,yBAAA;AAAA,IACX,WAAA,IAAe,6BAAA;AAAA,IACf,OAAA,IAAW,gCAAA;AAAA,IACX,OAAA,IAAW,gCAAA;AAAA,IACX,MAAA,IAAU,kCAAA;AAAA,IACV,UAAA,IAAc;AAAA,GAChB;AACF;AAEO,SAAS,0BAAA,GAAqC;AACnD,EAAA,OAAO,GAAG,sBAAsB,CAAA;AAClC;AAEO,SAAS,2BAAA,GAAsC;AACpD,EAAA,OAAO,GAAG,uBAAuB,CAAA;AACnC;AAEO,SAAS,+BAAA,GAA0C;AACxD,EAAA,OAAO,GAAG,4BAA4B,CAAA;AACxC;AAEO,SAAS,+BAAA,GAA0C;AACxD,EAAA,OAAO,GAAG,4BAA4B,CAAA;AACxC;AAEO,SAAS,gCAAA,GAA2C;AACzD,EAAA,OAAO,GAAG,6BAA6B,CAAA;AACzC;;;ACpEO,SAAS,qBAAA,CAAsB,IAAA,GAAiC,EAAC,EAAW;AACjF,EAAA,MAAM;AAAA,IACJ,QAAA,GAAW,KAAA;AAAA,IACX,QAAA,GAAW,KAAA;AAAA,IACX,OAAA,GAAU,KAAA;AAAA,IACV,WAAA,GAAc,KAAA;AAAA,IACd,OAAA,GAAU,KAAA;AAAA,IACV,OAAA,GAAU,KAAA;AAAA,IACV,MAAA,GAAS,KAAA;AAAA,IACT,UAAA,GAAa;AAAA,GACf,GAAI,IAAA;AAEJ,EAAA,OAAO,EAAA;AAAA,IACL,iBAAA;AAAA,IACA,QAAA,IAAY,2BAAA;AAAA,IACZ,QAAA,IAAY,2BAAA;AAAA,IACZ,OAAA,IAAW,0BAAA;AAAA,IACX,WAAA,IAAe,8BAAA;AAAA,IACf,OAAA,IAAW,iCAAA;AAAA,IACX,OAAA,IAAW,iCAAA;AAAA,IACX,MAAA,IAAU,mCAAA;AAAA,IACV,UAAA,IAAc;AAAA,GAChB;AACF;AAEO,SAAS,0BAAA,GAAqC;AACnD,EAAA,OAAO,GAAG,uBAAuB,CAAA;AACnC;AAEO,SAAS,mCAAA,GAA8C;AAC5D,EAAA,OAAO,GAAG,iCAAiC,CAAA;AAC7C;AAEO,SAAS,0BAAA,GAAqC;AACnD,EAAA,OAAO,GAAG,uBAAuB,CAAA;AACnC;AAEO,SAAS,gCAAA,GAA2C;AACzD,EAAA,OAAO,GAAG,6BAA6B,CAAA;AACzC;;;ACjDA,IAAM,YAAA,GAAe;AAAA,EACnB,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAgBO,SAAS,gBAAA,CAAiB,IAAA,GAA4B,EAAC,EAAW;AACvE,EAAA,MAAM;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,QAAA,GAAW,KAAA;AAAA,IACX,OAAA,GAAU,KAAA;AAAA,IACV,WAAA,GAAc,KAAA;AAAA,IACd,OAAA,GAAU,KAAA;AAAA,IACV,OAAA,GAAU,KAAA;AAAA,IACV,MAAA,GAAS,KAAA;AAAA,IACT,IAAA,GAAO,KAAA;AAAA,IACP,SAAA,GAAY;AAAA,GACd,GAAI,IAAA;AAEJ,EAAA,MAAM,OAAO,aAAA,CAAc;AAAA,IACzB,IAAA,EAAM,aAAA;AAAA,IACN,KAAA,EAAO,SAAA;AAAA,IACP,OAAA,EAAS,YAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,OAAO,EAAA;AAAA,IACL,WAAA;AAAA,IACA,cAAc,IAAI,CAAA,CAAA;AAAA,IAClB,QAAA,IAAY,qBAAA;AAAA,IACZ,OAAA,IAAW,oBAAA;AAAA,IACX,WAAA,IAAe,wBAAA;AAAA,IACf,OAAA,IAAW,2BAAA;AAAA,IACX,OAAA,IAAW,2BAAA;AAAA,IACX,MAAA,IAAU,6BAAA;AAAA,IACV,IAAA,IAAQ,iBAAA;AAAA,IACR,SAAA,IAAa;AAAA,GACf;AACF;AAEO,SAAS,qBAAA,GAAgC;AAC9C,EAAA,OAAO,GAAG,iBAAiB,CAAA;AAC7B;AAEO,SAAS,oBAAA,CAAqB,WAAoB,KAAA,EAAe;AACtE,EAAA,OAAO,EAAA,CAAG,gBAAA,EAAkB,QAAA,IAAY,wBAAwB,CAAA;AAClE;AAEO,SAAS,oBAAA,CAAqB,IAAA,GAA+B,EAAC,EAAW;AAC9E,EAAA,MAAM,EAAE,QAAA,GAAW,KAAA,EAAM,GAAI,IAAA;AAC7B,EAAA,OAAO,EAAA,CAAG,gBAAA,EAAkB,QAAA,IAAY,0BAA0B,CAAA;AACpE;;;ACjEA,IAAM,cAAA,GAAiB;AAAA,EACrB,IAAA,EAAM,IAAA;AAAA,EACN,OAAA,EAAS,IAAA;AAAA,EACT,OAAA,EAAS,IAAA;AAAA,EACT,MAAA,EAAQ,IAAA;AAAA,EACR,OAAA,EAAS;AACX,CAAA;AAEA,IAAM,WAAA,GAAc;AAAA,EAClB,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAkBO,SAAS,eAAA,CAAgB,IAAA,GAA2B,EAAC,EAAW;AACrE,EAAA,MAAM;AAAA,IACJ,OAAA,EAAS,YAAA;AAAA,IACT,IAAA,EAAM,SAAA;AAAA,IACN,SAAA,GAAY,KAAA;AAAA,IACZ,SAAA,GAAY,KAAA;AAAA,IACZ,WAAA,GAAc,KAAA;AAAA,IACd,OAAA,GAAU,KAAA;AAAA,IACV,OAAA,GAAU,KAAA;AAAA,IACV,MAAA,GAAS,KAAA;AAAA,IACT,QAAA,GAAW,KAAA;AAAA,IACX,OAAA,GAAU;AAAA,GACZ,GAAI,IAAA;AAEJ,EAAA,MAAM,UAAU,aAAA,CAAc;AAAA,IAC5B,IAAA,EAAM,eAAA;AAAA,IACN,KAAA,EAAO,YAAA;AAAA,IACP,OAAA,EAAS,cAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,MAAM,OAAO,aAAA,CAAc;AAAA,IACzB,IAAA,EAAM,YAAA;AAAA,IACN,KAAA,EAAO,SAAA;AAAA,IACP,OAAA,EAAS,WAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,OAAO,EAAA;AAAA,IACL,UAAA;AAAA,IACA,aAAa,OAAO,CAAA,CAAA;AAAA,IACpB,aAAa,IAAI,CAAA,CAAA;AAAA,IACjB,SAAA,IAAa,qBAAA;AAAA,IACb,SAAA,IAAa,gBAAA;AAAA,IACb,WAAA,IAAe,uBAAA;AAAA,IACf,OAAA,IAAW,0BAAA;AAAA,IACX,OAAA,IAAW,0BAAA;AAAA,IACX,MAAA,IAAU,4BAAA;AAAA,IACV,QAAA,IAAY,oBAAA;AAAA,IACZ,OAAA,IAAW;AAAA,GACb;AACF;;;ACvEA,IAAM,YAAA,GAAe;AAAA,EACnB,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,aAAA,GAAgB;AAAA,EACpB,MAAA,EAAQ,IAAA;AAAA,EACR,MAAA,EAAQ;AACV,CAAA;AAkBO,SAAS,gBAAA,CAAiB,IAAA,GAA4B,EAAC,EAAW;AACvE,EAAA,MAAM;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,KAAA,EAAO,UAAA;AAAA,IACP,QAAA,GAAW,KAAA;AAAA,IACX,OAAA,GAAU,KAAA;AAAA,IACV,WAAA,GAAc,KAAA;AAAA,IACd,OAAA,GAAU,KAAA;AAAA,IACV,OAAA,GAAU,KAAA;AAAA,IACV,MAAA,GAAS,KAAA;AAAA,IACT,SAAA,GAAY,KAAA;AAAA,IACZ,WAAA,GAAc;AAAA,GAChB,GAAI,IAAA;AAEJ,EAAA,MAAM,OAAO,aAAA,CAAc;AAAA,IACzB,IAAA,EAAM,aAAA;AAAA,IACN,KAAA,EAAO,SAAA;AAAA,IACP,OAAA,EAAS,YAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,MAAM,QAAQ,aAAA,CAAc;AAAA,IAC1B,IAAA,EAAM,cAAA;AAAA,IACN,KAAA,EAAO,UAAA;AAAA,IACP,OAAA,EAAS,aAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,OAAO,EAAA;AAAA,IACL,WAAA;AAAA,IACA,cAAc,IAAI,CAAA,CAAA;AAAA,IAClB,cAAc,KAAK,CAAA,CAAA;AAAA,IACnB,QAAA,IAAY,qBAAA;AAAA,IACZ,OAAA,IAAW,oBAAA;AAAA,IACX,WAAA,IAAe,wBAAA;AAAA,IACf,OAAA,IAAW,2BAAA;AAAA,IACX,OAAA,IAAW,2BAAA;AAAA,IACX,MAAA,IAAU,6BAAA;AAAA,IACV,SAAA,IAAa,iBAAA;AAAA,IACb,WAAA,IAAe;AAAA,GACjB;AACF;;;ACtEA,IAAM,YAAA,GAAe;AAAA,EACnB,OAAA,EAAS,IAAA;AAAA,EACT,OAAA,EAAS,IAAA;AAAA,EACT,SAAA,EAAW,IAAA;AAAA,EACX,OAAA,EAAS,IAAA;AAAA,EACT,OAAA,EAAS,IAAA;AAAA,EACT,MAAA,EAAQ,IAAA;AAAA,EACR,IAAA,EAAM,IAAA;AAAA,EACN,OAAA,EAAS,IAAA;AAAA,EACT,MAAA,EAAQ,IAAA;AAAA,EACR,GAAA,EAAK,IAAA;AAAA,EACL,OAAA,EAAS,IAAA;AAAA,EACT,KAAA,EAAO;AACT,CAAA;AAEA,IAAM,SAAA,GAAY;AAAA,EAChB,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAmBO,SAAS,aAAA,CAAc,IAAA,GAAyB,EAAC,EAAW;AACjE,EAAA,MAAM;AAAA,IACJ,OAAA,EAAS,YAAA;AAAA,IACT,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,GAAc,KAAA;AAAA,IACd,QAAA,GAAW,KAAA;AAAA,IACX,QAAA,GAAW,KAAA;AAAA,IACX,OAAA,GAAU,KAAA;AAAA,IACV,WAAA,GAAc,KAAA;AAAA,IACd,OAAA,GAAU,KAAA;AAAA,IACV,OAAA,GAAU,KAAA;AAAA,IACV,MAAA,GAAS,KAAA;AAAA,IACT,SAAA,GAAY;AAAA,GACd,GAAI,IAAA;AAEJ,EAAA,MAAM,UAAU,aAAA,CAAc;AAAA,IAC5B,IAAA,EAAM,aAAA;AAAA,IACN,KAAA,EAAO,YAAA;AAAA,IACP,OAAA,EAAS,YAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,MAAM,IAAA,GACJ,aACA,aAAA,CAAc;AAAA,IACZ,IAAA,EAAM,UAAA;AAAA,IACN,KAAA,EAAO,SAAA;AAAA,IACP,OAAA,EAAS,SAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AAEH,EAAA,OAAO,EAAA;AAAA,IACL,QAAA;AAAA,IACA,WAAW,OAAO,CAAA,CAAA;AAAA,IAClB,IAAA,IAAQ,WAAW,IAAI,CAAA,CAAA;AAAA,IACvB,WAAA,IAAe,qBAAA;AAAA,IACf,QAAA,IAAY,kBAAA;AAAA,IACZ,QAAA,IAAY,kBAAA;AAAA,IACZ,OAAA,IAAW,iBAAA;AAAA,IACX,WAAA,IAAe,qBAAA;AAAA,IACf,OAAA,IAAW,wBAAA;AAAA,IACX,OAAA,IAAW,wBAAA;AAAA,IACX,MAAA,IAAU,0BAAA;AAAA,IACV,SAAA,IAAa;AAAA,GACf;AACF;;;ACnFA,IAAM,gBAAA,GAAmB;AAAA,EACvB,OAAA,EAAS,IAAA;AAAA,EACT,SAAA,EAAW,IAAA;AAAA,EACX,OAAA,EAAS,IAAA;AAAA,EACT,OAAA,EAAS,IAAA;AAAA,EACT,MAAA,EAAQ,IAAA;AAAA,EACR,IAAA,EAAM,IAAA;AAAA,EACN,OAAA,EAAS,IAAA;AAAA,EACT,MAAA,EAAQ,IAAA;AAAA,EACR,GAAA,EAAK;AACP,CAAA;AAEA,IAAM,aAAA,GAAgB;AAAA,EACpB,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAYO,SAAS,iBAAA,CAAkB,IAAA,GAA6B,EAAC,EAAW;AACzE,EAAA,MAAM;AAAA,IACJ,OAAA,EAAS,YAAA;AAAA,IACT,IAAA,EAAM,SAAA;AAAA,IACN,QAAA,GAAW,KAAA;AAAA,IACX,OAAA,GAAU;AAAA,GACZ,GAAI,IAAA;AAEJ,EAAA,MAAM,OAAA,GACJ,gBACA,aAAA,CAAc;AAAA,IACZ,IAAA,EAAM,iBAAA;AAAA,IACN,KAAA,EAAO,YAAA;AAAA,IACP,OAAA,EAAS,gBAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AAEH,EAAA,MAAM,OAAO,aAAA,CAAc;AAAA,IACzB,IAAA,EAAM,cAAA;AAAA,IACN,KAAA,EAAO,SAAA;AAAA,IACP,OAAA,EAAS,aAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,OAAO,EAAA;AAAA,IACL,YAAA;AAAA,IACA,OAAA,IAAW,eAAe,OAAO,CAAA,CAAA;AAAA,IACjC,eAAe,IAAI,CAAA,CAAA;AAAA,IACnB,QAAA,IAAY,sBAAA;AAAA,IACZ,OAAA,IAAW;AAAA,GACb;AACF;;;ACtDO,SAAS,aAAA,CAAc,IAAA,GAAyB,EAAC,EAAW;AACjE,EAAA,MAAM,EAAE,QAAA,GAAW,KAAA,EAAO,SAAS,KAAA,EAAO,SAAA,GAAY,OAAM,GAAI,IAAA;AAEhE,EAAA,OAAO,EAAA;AAAA,IACL,QAAA;AAAA,IACA,QAAA,IAAY,kBAAA;AAAA,IACZ,MAAA,IAAU,gBAAA;AAAA,IACV,SAAA,IAAa;AAAA,GACf;AACF;AAEO,SAAS,kBAAA,GAA6B;AAC3C,EAAA,OAAO,GAAG,eAAe,CAAA;AAC3B;AASO,SAAS,iBAAA,CAAkB,IAAA,GAA6B,EAAC,EAAW;AACzE,EAAA,MAAM;AAAA,IACJ,MAAA,GAAS,KAAA;AAAA,IACT,QAAA,GAAW,KAAA;AAAA,IACX,OAAA,GAAU,KAAA;AAAA,IACV,OAAA,GAAU;AAAA,GACZ,GAAI,IAAA;AAEJ,EAAA,OAAO,EAAA;AAAA,IACL,cAAA;AAAA,IACA,MAAA,IAAU,sBAAA;AAAA,IACV,QAAA,IAAY,wBAAA;AAAA,IACZ,OAAA,IAAW,8BAAA;AAAA,IACX,OAAA,IAAW;AAAA,GACb;AACF;;;AC1CA,IAAM,cAAA,GAAiB;AAAA,EACrB,IAAA,EAAM,IAAA;AAAA,EACN,OAAA,EAAS,IAAA;AAAA,EACT,OAAA,EAAS,IAAA;AAAA,EACT,MAAA,EAAQ;AACV,CAAA;AAUO,SAAS,eAAA,CAAgB,IAAA,GAA2B,EAAC,EAAW;AACrE,EAAA,MAAM,EAAE,OAAA,EAAS,YAAA,EAAc,YAAY,KAAA,EAAO,SAAA,GAAY,OAAM,GAAI,IAAA;AAExE,EAAA,MAAM,UAAU,aAAA,CAAc;AAAA,IAC5B,IAAA,EAAM,eAAA;AAAA,IACN,KAAA,EAAO,YAAA;AAAA,IACP,OAAA,EAAS,cAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,OAAO,EAAA;AAAA,IACL,UAAA;AAAA,IACA,aAAa,OAAO,CAAA,CAAA;AAAA,IACpB,SAAA,IAAa,qBAAA;AAAA,IACb,SAAA,IAAa;AAAA,GACf;AACF;AAMO,SAAS,mBAAA,CACd,IAAA,GAA+B,EAAC,EACxB;AACR,EAAA,MAAM,EAAE,OAAA,EAAS,YAAA,EAAa,GAAI,IAAA;AAElC,EAAA,MAAM,UAAU,aAAA,CAAc;AAAA,IAC5B,IAAA,EAAM,eAAA;AAAA,IACN,KAAA,EAAO,YAAA;AAAA,IACP,OAAA,EAAS,cAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,OAAO,EAAA,CAAG,gBAAA,EAAkB,CAAA,gBAAA,EAAmB,OAAO,CAAA,CAAE,CAAA;AAC1D;;;AClDA,IAAM,kBAAA,GAAqB;AAAA,EACzB,GAAA,EAAK,IAAA;AAAA,EACL,MAAA,EAAQ,IAAA;AAAA,EACR,IAAA,EAAM,IAAA;AAAA,EACN,KAAA,EAAO;AACT,CAAA;AASO,SAAS,iBAAA,CAAkB,IAAA,GAA6B,EAAC,EAAW;AACzE,EAAA,MAAM,EAAE,SAAA,EAAW,cAAA,EAAgB,OAAA,GAAU,OAAM,GAAI,IAAA;AAEvD,EAAA,MAAM,YAAY,aAAA,CAAc;AAAA,IAC9B,IAAA,EAAM,mBAAA;AAAA,IACN,KAAA,EAAO,cAAA;AAAA,IACP,OAAA,EAAS,kBAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,OAAO,EAAA;AAAA,IACL,YAAA;AAAA,IACA,eAAe,SAAS,CAAA,CAAA;AAAA,IACxB,OAAA,IAAW;AAAA,GACb;AACF;;;AC7BA,IAAM,mBAAA,GAAsB;AAAA,EAC1B,cAAA,EAAgB,IAAA;AAAA,EAChB,YAAA,EAAc,IAAA;AAAA,EACd,WAAA,EAAa,IAAA;AAAA,EACb,SAAA,EAAW;AACb,CAAA;AAQO,SAAS,kBAAA,CAAmB,IAAA,GAA8B,EAAC,EAAW;AAC3E,EAAA,MAAM,EAAE,SAAA,GAAY,KAAA,EAAM,GAAI,IAAA;AAE9B,EAAA,OAAO,EAAA,CAAG,aAAA,EAAe,SAAA,IAAa,mBAAmB,CAAA;AAC3D;AAOO,SAAS,sBAAA,CACd,IAAA,GAAkC,EAAC,EAC3B;AACR,EAAA,MAAM,EAAE,SAAA,EAAW,cAAA,EAAgB,IAAA,GAAO,OAAM,GAAI,IAAA;AAEpD,EAAA,MAAM,YAAY,aAAA,CAAc;AAAA,IAC9B,IAAA,EAAM,yBAAA;AAAA,IACN,KAAA,EAAO,cAAA;AAAA,IACP,OAAA,EAAS,mBAAA;AAAA,IACT,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,OAAO,EAAA;AAAA,IACL,mBAAA;AAAA,IACA,sBAAsB,SAAS,CAAA,CAAA;AAAA,IAC/B,IAAA,IAAQ;AAAA,GACV;AACF;AASO,SAAS,sBAAA,CACd,IAAA,GAAkC,EAAC,EAC3B;AACR,EAAA,MAAM;AAAA,IACJ,MAAA,GAAS,KAAA;AAAA,IACT,QAAA,GAAW,KAAA;AAAA,IACX,OAAA,GAAU,KAAA;AAAA,IACV,OAAA,GAAU;AAAA,GACZ,GAAI,IAAA;AAEJ,EAAA,OAAO,EAAA;AAAA,IACL,mBAAA;AAAA,IACA,MAAA,IAAU,2BAAA;AAAA,IACV,QAAA,IAAY,6BAAA;AAAA,IACZ,OAAA,IAAW,mCAAA;AAAA,IACX,OAAA,IAAW;AAAA,GACb;AACF;;;AChEO,SAAS,sBAAA,CACd,IAAA,GAAkC,EAAC,EAC3B;AACR,EAAA,MAAM,EAAE,IAAA,GAAO,KAAA,EAAM,GAAI,IAAA;AAEzB,EAAA,OAAO,EAAA,CAAG,kBAAA,EAAoB,IAAA,IAAQ,wBAAwB,CAAA;AAChE;AAOO,SAAS,eAAA,CAAgB,IAAA,GAA2B,EAAC,EAAW;AACrE,EAAA,MAAM,EAAE,IAAA,GAAO,KAAA,EAAO,SAAA,GAAY,OAAM,GAAI,IAAA;AAE5C,EAAA,OAAO,EAAA;AAAA,IACL,UAAA;AAAA,IACA,IAAA,IAAQ,gBAAA;AAAA,IACR,SAAA,IAAa;AAAA,GACf;AACF","file":"index.js","sourcesContent":["export const spectreBaseStylesPath = \"@phcdevworks/spectre-ui/base.css\";\nexport const spectreComponentsStylesPath = \"@phcdevworks/spectre-ui/components.css\";\nexport const spectreUtilitiesStylesPath = \"@phcdevworks/spectre-ui/utilities.css\";\nexport const spectreIndexStylesPath = \"@phcdevworks/spectre-ui/index.css\";\n\nexport const spectreStyles = {\n index: spectreIndexStylesPath,\n base: spectreBaseStylesPath,\n components: spectreComponentsStylesPath,\n utilities: spectreUtilitiesStylesPath,\n};\n","export function cx(...parts: Array<string | false | null | undefined>): string {\n const seen = new Set<string>();\n const classes: string[] = [];\n\n for (const part of parts) {\n if (!part) continue;\n const trimmed = part.trim();\n if (!trimmed) continue;\n\n if (!/\\s/.test(trimmed)) {\n if (!seen.has(trimmed)) {\n seen.add(trimmed);\n classes.push(trimmed);\n }\n continue;\n }\n\n for (const token of trimmed.split(/\\s+/)) {\n if (!token || seen.has(token)) continue;\n seen.add(token);\n classes.push(token);\n }\n }\n\n return classes.join(\" \");\n}\n","type AllowedValues<T extends string> = readonly T[] | Record<T, unknown>;\n\nconst hasOwn = (value: object, key: string): boolean =>\n Object.prototype.hasOwnProperty.call(value, key);\n\nconst isAllowedValue = <T extends string>(value: T, allowed: AllowedValues<T>): boolean =>\n Array.isArray(allowed) ? allowed.includes(value) : hasOwn(allowed, value);\n\nexport function resolveOption<T extends string>(config: {\n name: string;\n value: T | undefined;\n allowed: AllowedValues<T>;\n fallback: T;\n}): T {\n const { name, value, allowed, fallback } = config;\n\n if (value === undefined) return fallback;\n if (isAllowedValue(value, allowed)) return value;\n\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error(`[spectre-ui] Unknown ${name}: ${value}`);\n }\n\n return fallback;\n}\n","import { cx } from \"../internal/cx\";\nimport { resolveOption } from \"../internal/resolve-option\";\n\nconst BUTTON_VARIANTS = {\n primary: true,\n secondary: true,\n ghost: true,\n danger: true,\n success: true,\n cta: true,\n accent: true,\n} as const;\n\nconst BUTTON_SIZES = {\n sm: true,\n md: true,\n lg: true,\n} as const;\n\nexport type ButtonVariant = keyof typeof BUTTON_VARIANTS;\nexport type ButtonSize = keyof typeof BUTTON_SIZES;\n\nexport interface ButtonRecipeOptions {\n variant?: ButtonVariant;\n size?: ButtonSize;\n fullWidth?: boolean;\n loading?: boolean;\n disabled?: boolean;\n hovered?: boolean;\n focused?: boolean;\n active?: boolean;\n iconOnly?: boolean;\n pill?: boolean;\n}\n\nexport function getButtonClasses(opts: ButtonRecipeOptions = {}): string {\n const {\n variant: variantInput,\n size: sizeInput,\n fullWidth = false,\n loading = false,\n disabled = false,\n hovered = false,\n focused = false,\n active = false,\n iconOnly = false,\n pill = false,\n } = opts;\n\n const variant = resolveOption({\n name: \"button variant\",\n value: variantInput,\n allowed: BUTTON_VARIANTS,\n fallback: \"primary\",\n });\n const size = resolveOption({\n name: \"button size\",\n value: sizeInput,\n allowed: BUTTON_SIZES,\n fallback: \"md\",\n });\n\n const variantMap: Record<ButtonVariant, string> = {\n primary: \"sp-btn--primary\",\n secondary: \"sp-btn--secondary\",\n ghost: \"sp-btn--ghost\",\n danger: \"sp-btn--danger\",\n success: \"sp-btn--success\",\n cta: \"sp-btn--cta\",\n accent: \"sp-btn--accent\",\n };\n const variantClass = variantMap[variant];\n\n const sizeMap: Record<ButtonSize, string> = {\n sm: \"sp-btn--sm\",\n md: \"sp-btn--md\",\n lg: \"sp-btn--lg\",\n };\n const sizeClass = sizeMap[size];\n\n return cx(\n \"sp-btn\",\n variantClass,\n sizeClass,\n fullWidth && \"sp-btn--full\",\n loading && \"sp-btn--loading\",\n disabled && \"sp-btn--disabled\",\n hovered && \"sp-btn--hover is-hover\",\n focused && \"sp-btn--focus is-focus\",\n active && \"sp-btn--active is-active\",\n iconOnly && \"sp-btn--icon\",\n pill && \"sp-btn--pill\",\n );\n}\n","import { cx } from \"../internal/cx\";\nimport { resolveOption } from \"../internal/resolve-option\";\n\nconst CARD_VARIANTS = {\n elevated: true,\n flat: true,\n outline: true,\n ghost: true,\n} as const;\n\nexport type CardVariant = keyof typeof CARD_VARIANTS;\n\nexport interface CardRecipeOptions {\n variant?: CardVariant;\n interactive?: boolean;\n padded?: boolean;\n fullHeight?: boolean;\n disabled?: boolean;\n loading?: boolean;\n hovered?: boolean;\n focused?: boolean;\n active?: boolean;\n}\n\nexport function getCardClasses(opts: CardRecipeOptions = {}): string {\n const {\n variant: variantInput,\n interactive = false,\n padded = false,\n fullHeight = false,\n disabled = false,\n loading = false,\n hovered = false,\n focused = false,\n active = false,\n } = opts;\n\n const variant = resolveOption({\n name: \"card variant\",\n value: variantInput,\n allowed: CARD_VARIANTS,\n fallback: \"elevated\",\n });\n\n const variantMap: Record<CardVariant, string> = {\n elevated: \"sp-card--elevated\",\n flat: \"sp-card--flat\",\n outline: \"sp-card--outline\",\n ghost: \"sp-card--ghost\",\n };\n const variantClass = variantMap[variant];\n\n return cx(\n \"sp-card\",\n variantClass,\n interactive && \"sp-card--interactive\",\n padded && \"sp-card--padded\",\n fullHeight && \"sp-card--full\",\n disabled && \"sp-card--disabled\",\n loading && \"sp-card--loading\",\n hovered && \"sp-card--hover is-hover\",\n focused && \"sp-card--focus is-focus\",\n active && \"sp-card--active is-active\",\n );\n}\n","import { cx } from \"../internal/cx\";\nimport { resolveOption } from \"../internal/resolve-option\";\n\nconst INPUT_STATES = {\n default: true,\n error: true,\n success: true,\n disabled: true,\n loading: true,\n} as const;\n\nconst INPUT_SIZES = {\n sm: true,\n md: true,\n lg: true,\n} as const;\n\nexport type InputState = keyof typeof INPUT_STATES;\nexport type InputSize = keyof typeof INPUT_SIZES;\n\nexport interface InputRecipeOptions {\n state?: InputState;\n size?: InputSize;\n fullWidth?: boolean;\n pill?: boolean;\n focused?: boolean;\n hovered?: boolean;\n active?: boolean;\n disabled?: boolean;\n loading?: boolean;\n}\n\nexport function getInputClasses(opts: InputRecipeOptions = {}): string {\n const {\n state: stateInput,\n size: sizeInput,\n fullWidth = false,\n pill = false,\n focused = false,\n hovered = false,\n active = false,\n disabled = false,\n loading = false,\n } = opts;\n\n const state = resolveOption({\n name: \"input state\",\n value: stateInput,\n allowed: INPUT_STATES,\n fallback: \"default\",\n });\n const size = resolveOption({\n name: \"input size\",\n value: sizeInput,\n allowed: INPUT_SIZES,\n fallback: \"md\",\n });\n\n const sizeMap: Record<InputSize, string> = {\n sm: \"sp-input--sm\",\n md: \"sp-input--md\",\n lg: \"sp-input--lg\",\n };\n const sizeClass = sizeMap[size];\n\n return cx(\n \"sp-input\",\n sizeClass,\n state === \"error\" && \"sp-input--error\",\n state === \"success\" && \"sp-input--success\",\n // Visual state only; actual disabled attribute is handled by adapters.\n (state === \"disabled\" || disabled) && \"sp-input--disabled\",\n (state === \"loading\" || loading) && \"sp-input--loading\",\n focused && \"sp-input--focus is-focus\",\n hovered && \"sp-input--hover is-hover\",\n active && \"sp-input--active is-active\",\n fullWidth && \"sp-input--full\",\n pill && \"sp-input--pill\",\n );\n}\n\nexport function getInputWrapperClasses(): string {\n return cx(\"sp-input-wrapper\");\n}\n\nexport function getInputLabelClasses(opts: { disabled?: boolean } = {}): string {\n const { disabled = false } = opts;\n return cx(\n \"sp-label\",\n disabled && \"sp-label--disabled\"\n );\n}\n\nexport function getInputHelperTextClasses(opts: { disabled?: boolean } = {}): string {\n const { disabled = false } = opts;\n return cx(\n \"sp-helper-text\",\n disabled && \"sp-helper-text--disabled\"\n );\n}\n\nexport function getInputErrorMessageClasses(): string {\n return cx(\"sp-error-message\");\n}\n","import { cx } from \"../internal/cx\";\nimport { resolveOption } from \"../internal/resolve-option\";\n\nconst BADGE_VARIANTS = {\n primary: true,\n secondary: true,\n success: true,\n warning: true,\n danger: true,\n neutral: true,\n info: true,\n ghost: true,\n outline: true,\n accent: true,\n cta: true,\n} as const;\n\nconst BADGE_SIZES = {\n sm: true,\n md: true,\n lg: true,\n} as const;\n\nexport type BadgeVariant = keyof typeof BADGE_VARIANTS;\nexport type BadgeSize = keyof typeof BADGE_SIZES;\n\nexport interface BadgeRecipeOptions {\n variant?: BadgeVariant;\n size?: BadgeSize;\n interactive?: boolean;\n hovered?: boolean;\n focused?: boolean;\n active?: boolean;\n disabled?: boolean;\n loading?: boolean;\n fullWidth?: boolean;\n}\n\nexport function getBadgeClasses(opts: BadgeRecipeOptions = {}): string {\n const {\n variant: variantInput,\n size: sizeInput,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n disabled = false,\n loading = false,\n fullWidth = false,\n } = opts;\n\n const variant = resolveOption({\n name: \"badge variant\",\n value: variantInput,\n allowed: BADGE_VARIANTS,\n fallback: \"primary\",\n });\n const size = resolveOption({\n name: \"badge size\",\n value: sizeInput,\n allowed: BADGE_SIZES,\n fallback: \"md\",\n });\n\n const variantMap: Record<BadgeVariant, string> = {\n primary: \"sp-badge--primary\",\n secondary: \"sp-badge--secondary\",\n success: \"sp-badge--success\",\n warning: \"sp-badge--warning\",\n danger: \"sp-badge--danger\",\n neutral: \"sp-badge--neutral\",\n info: \"sp-badge--info\",\n ghost: \"sp-badge--ghost\",\n outline: \"sp-badge--outline\",\n accent: \"sp-badge--accent\",\n cta: \"sp-badge--cta\",\n };\n const variantClass = variantMap[variant];\n\n const sizeMap: Record<BadgeSize, string> = {\n sm: \"sp-badge--sm\",\n md: \"sp-badge--md\",\n lg: \"sp-badge--lg\",\n };\n const sizeClass = sizeMap[size];\n\n return cx(\n \"sp-badge\",\n variantClass,\n sizeClass,\n interactive && \"sp-badge--interactive\",\n hovered && \"sp-badge--hover is-hover\",\n focused && \"sp-badge--focus is-focus\",\n active && \"sp-badge--active is-active\",\n disabled && \"sp-badge--disabled\",\n loading && \"sp-badge--loading\",\n fullWidth && \"sp-badge--full\"\n );\n}\n","import { cx } from \"../internal/cx\";\nimport { resolveOption } from \"../internal/resolve-option\";\n\nconst ICONBOX_VARIANTS = {\n primary: true,\n secondary: true,\n success: true,\n warning: true,\n danger: true,\n info: true,\n neutral: true,\n ghost: true,\n accent: true,\n cta: true,\n outline: true,\n} as const;\n\nconst ICONBOX_SIZES = {\n xs: true,\n sm: true,\n md: true,\n lg: true,\n} as const;\n\nexport type IconBoxVariant = keyof typeof ICONBOX_VARIANTS;\nexport type IconBoxSize = keyof typeof ICONBOX_SIZES;\n\nexport interface IconBoxRecipeOptions {\n variant?: IconBoxVariant;\n size?: IconBoxSize;\n disabled?: boolean;\n loading?: boolean;\n interactive?: boolean;\n hovered?: boolean;\n focused?: boolean;\n active?: boolean;\n pill?: boolean;\n fullWidth?: boolean;\n}\n\nexport function getIconBoxClasses(opts: IconBoxRecipeOptions = {}): string {\n const {\n variant: variantInput,\n size: sizeInput,\n disabled = false,\n loading = false,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n pill = false,\n fullWidth = false,\n } = opts;\n\n const variant = resolveOption({\n name: \"icon box variant\",\n value: variantInput,\n allowed: ICONBOX_VARIANTS,\n fallback: \"primary\",\n });\n const size = resolveOption({\n name: \"icon box size\",\n value: sizeInput,\n allowed: ICONBOX_SIZES,\n fallback: \"md\",\n });\n\n const variantMap: Record<IconBoxVariant, string> = {\n primary: \"sp-iconbox--primary\",\n secondary: \"sp-iconbox--secondary\",\n success: \"sp-iconbox--success\",\n warning: \"sp-iconbox--warning\",\n danger: \"sp-iconbox--danger\",\n info: \"sp-iconbox--info\",\n neutral: \"sp-iconbox--neutral\",\n ghost: \"sp-iconbox--ghost\",\n accent: \"sp-iconbox--accent\",\n cta: \"sp-iconbox--cta\",\n outline: \"sp-iconbox--outline\",\n };\n const variantClass = variantMap[variant];\n\n const sizeMap: Record<IconBoxSize, string> = {\n xs: \"sp-iconbox--xs\",\n sm: \"sp-iconbox--sm\",\n md: \"sp-iconbox--md\",\n lg: \"sp-iconbox--lg\",\n };\n const sizeClass = sizeMap[size];\n\n return cx(\n \"sp-iconbox\",\n variantClass,\n sizeClass,\n disabled && \"sp-iconbox--disabled\",\n loading && \"sp-iconbox--loading\",\n interactive && \"sp-iconbox--interactive\",\n hovered && \"sp-iconbox--hover is-hover\",\n focused && \"sp-iconbox--focus is-focus\",\n active && \"sp-iconbox--active is-active\",\n pill && \"sp-iconbox--pill\",\n fullWidth && \"sp-iconbox--full\"\n );\n}\n","import { cx } from \"../internal/cx\";\nimport { resolveOption } from \"../internal/resolve-option\";\n\nconst TESTIMONIAL_VARIANTS = {\n elevated: true,\n flat: true,\n outline: true,\n ghost: true,\n} as const;\n\nexport type TestimonialVariant = keyof typeof TESTIMONIAL_VARIANTS;\n\nexport interface TestimonialRecipeOptions {\n variant?: TestimonialVariant;\n disabled?: boolean;\n loading?: boolean;\n interactive?: boolean;\n hovered?: boolean;\n focused?: boolean;\n active?: boolean;\n fullHeight?: boolean;\n}\n\nexport function getTestimonialClasses(opts: TestimonialRecipeOptions = {}): string {\n const {\n variant: variantInput,\n disabled = false,\n loading = false,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n fullHeight = false,\n } = opts;\n\n const variant = resolveOption({\n name: \"testimonial variant\",\n value: variantInput,\n allowed: TESTIMONIAL_VARIANTS,\n fallback: \"outline\",\n });\n\n const variantMap: Record<TestimonialVariant, string> = {\n elevated: \"sp-testimonial--elevated\",\n flat: \"sp-testimonial--flat\",\n outline: \"sp-testimonial--outline\",\n ghost: \"sp-testimonial--ghost\",\n };\n const variantClass = variantMap[variant];\n\n return cx(\n \"sp-testimonial\",\n variantClass,\n disabled && \"sp-testimonial--disabled\",\n loading && \"sp-testimonial--loading\",\n interactive && \"sp-testimonial--interactive\",\n hovered && \"sp-testimonial--hover is-hover\",\n focused && \"sp-testimonial--focus is-focus\",\n active && \"sp-testimonial--active is-active\",\n fullHeight && \"sp-testimonial--full\"\n );\n}\n\nexport function getTestimonialQuoteClasses(): string {\n return cx(\"sp-testimonial-quote\");\n}\n\nexport function getTestimonialAuthorClasses(): string {\n return cx(\"sp-testimonial-author\");\n}\n\nexport function getTestimonialAuthorInfoClasses(): string {\n return cx(\"sp-testimonial-author-info\");\n}\n\nexport function getTestimonialAuthorNameClasses(): string {\n return cx(\"sp-testimonial-author-name\");\n}\n\nexport function getTestimonialAuthorTitleClasses(): string {\n return cx(\"sp-testimonial-author-title\");\n}\n","import { cx } from '../internal/cx'\n\nexport interface PricingCardRecipeOptions {\n featured?: boolean\n disabled?: boolean\n loading?: boolean\n interactive?: boolean\n hovered?: boolean\n focused?: boolean\n active?: boolean\n fullHeight?: boolean\n}\n\nexport function getPricingCardClasses(opts: PricingCardRecipeOptions = {}): string {\n const {\n featured = false,\n disabled = false,\n loading = false,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n fullHeight = false,\n } = opts\n\n return cx(\n 'sp-pricing-card',\n featured && 'sp-pricing-card--featured',\n disabled && 'sp-pricing-card--disabled',\n loading && 'sp-pricing-card--loading',\n interactive && 'sp-pricing-card--interactive',\n hovered && 'sp-pricing-card--hover is-hover',\n focused && 'sp-pricing-card--focus is-focus',\n active && 'sp-pricing-card--active is-active',\n fullHeight && 'sp-pricing-card--full'\n )\n}\n\nexport function getPricingCardBadgeClasses(): string {\n return cx('sp-pricing-card-badge')\n}\n\nexport function getPricingCardPriceContainerClasses(): string {\n return cx('sp-pricing-card-price-container')\n}\n\nexport function getPricingCardPriceClasses(): string {\n return cx('sp-pricing-card-price')\n}\n\nexport function getPricingCardDescriptionClasses(): string {\n return cx('sp-pricing-card-description')\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst RATING_SIZES = {\n sm: true,\n md: true,\n lg: true,\n} as const\n\nexport type RatingSize = keyof typeof RATING_SIZES\n\nexport interface RatingRecipeOptions {\n size?: RatingSize\n disabled?: boolean\n loading?: boolean\n interactive?: boolean\n hovered?: boolean\n focused?: boolean\n active?: boolean\n pill?: boolean\n fullWidth?: boolean\n}\n\nexport function getRatingClasses(opts: RatingRecipeOptions = {}): string {\n const {\n size: sizeInput,\n disabled = false,\n loading = false,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n pill = false,\n fullWidth = false,\n } = opts\n\n const size = resolveOption({\n name: 'rating size',\n value: sizeInput,\n allowed: RATING_SIZES,\n fallback: 'md',\n })\n\n return cx(\n 'sp-rating',\n `sp-rating--${size}`,\n disabled && 'sp-rating--disabled',\n loading && 'sp-rating--loading',\n interactive && 'sp-rating--interactive',\n hovered && 'sp-rating--hover is-hover',\n focused && 'sp-rating--focus is-focus',\n active && 'sp-rating--active is-active',\n pill && 'sp-rating--pill',\n fullWidth && 'sp-rating--full'\n )\n}\n\nexport function getRatingStarsClasses(): string {\n return cx('sp-rating-stars')\n}\n\nexport function getRatingStarClasses(isFilled: boolean = false): string {\n return cx('sp-rating-star', isFilled && 'sp-rating-star--filled')\n}\n\nexport function getRatingTextClasses(opts: { disabled?: boolean } = {}): string {\n const { disabled = false } = opts\n return cx('sp-rating-text', disabled && 'sp-rating-text--disabled')\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst ALERT_VARIANTS = {\n info: true,\n success: true,\n warning: true,\n danger: true,\n neutral: true,\n} as const\n\nconst ALERT_SIZES = {\n sm: true,\n md: true,\n lg: true,\n} as const\n\nexport type AlertVariant = keyof typeof ALERT_VARIANTS\nexport type AlertSize = keyof typeof ALERT_SIZES\n\nexport interface AlertRecipeOptions {\n variant?: AlertVariant\n size?: AlertSize\n dismissed?: boolean\n fullWidth?: boolean\n interactive?: boolean\n hovered?: boolean\n focused?: boolean\n active?: boolean\n disabled?: boolean\n loading?: boolean\n}\n\nexport function getAlertClasses(opts: AlertRecipeOptions = {}): string {\n const {\n variant: variantInput,\n size: sizeInput,\n dismissed = false,\n fullWidth = false,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n disabled = false,\n loading = false,\n } = opts\n\n const variant = resolveOption({\n name: 'alert variant',\n value: variantInput,\n allowed: ALERT_VARIANTS,\n fallback: 'info',\n })\n\n const size = resolveOption({\n name: 'alert size',\n value: sizeInput,\n allowed: ALERT_SIZES,\n fallback: 'md',\n })\n\n return cx(\n 'sp-alert',\n `sp-alert--${variant}`,\n `sp-alert--${size}`,\n dismissed && 'sp-alert--dismissed',\n fullWidth && 'sp-alert--full',\n interactive && 'sp-alert--interactive',\n hovered && 'sp-alert--hover is-hover',\n focused && 'sp-alert--focus is-focus',\n active && 'sp-alert--active is-active',\n disabled && 'sp-alert--disabled',\n loading && 'sp-alert--loading'\n )\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst AVATAR_SIZES = {\n xs: true,\n sm: true,\n md: true,\n lg: true,\n xl: true,\n} as const\n\nconst AVATAR_SHAPES = {\n circle: true,\n square: true,\n} as const\n\nexport type AvatarSize = keyof typeof AVATAR_SIZES\nexport type AvatarShape = keyof typeof AVATAR_SHAPES\n\nexport interface AvatarRecipeOptions {\n size?: AvatarSize\n shape?: AvatarShape\n disabled?: boolean\n loading?: boolean\n interactive?: boolean\n hovered?: boolean\n focused?: boolean\n active?: boolean\n fullWidth?: boolean\n placeholder?: boolean\n}\n\nexport function getAvatarClasses(opts: AvatarRecipeOptions = {}): string {\n const {\n size: sizeInput,\n shape: shapeInput,\n disabled = false,\n loading = false,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n fullWidth = false,\n placeholder = false,\n } = opts\n\n const size = resolveOption({\n name: 'avatar size',\n value: sizeInput,\n allowed: AVATAR_SIZES,\n fallback: 'md',\n })\n\n const shape = resolveOption({\n name: 'avatar shape',\n value: shapeInput,\n allowed: AVATAR_SHAPES,\n fallback: 'circle',\n })\n\n return cx(\n 'sp-avatar',\n `sp-avatar--${size}`,\n `sp-avatar--${shape}`,\n disabled && 'sp-avatar--disabled',\n loading && 'sp-avatar--loading',\n interactive && 'sp-avatar--interactive',\n hovered && 'sp-avatar--hover is-hover',\n focused && 'sp-avatar--focus is-focus',\n active && 'sp-avatar--active is-active',\n fullWidth && 'sp-avatar--full',\n placeholder && 'sp-avatar--placeholder'\n )\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst TAG_VARIANTS = {\n default: true,\n primary: true,\n secondary: true,\n success: true,\n warning: true,\n danger: true,\n info: true,\n neutral: true,\n accent: true,\n cta: true,\n outline: true,\n ghost: true,\n} as const\n\nconst TAG_SIZES = {\n sm: true,\n md: true,\n lg: true,\n} as const\n\nexport type TagVariant = keyof typeof TAG_VARIANTS\nexport type TagSize = keyof typeof TAG_SIZES\n\nexport interface TagRecipeOptions {\n variant?: TagVariant\n size?: TagSize\n dismissible?: boolean\n selected?: boolean\n disabled?: boolean\n loading?: boolean\n interactive?: boolean\n hovered?: boolean\n focused?: boolean\n active?: boolean\n fullWidth?: boolean\n}\n\nexport function getTagClasses(opts: TagRecipeOptions = {}): string {\n const {\n variant: variantInput,\n size: sizeInput,\n dismissible = false,\n selected = false,\n disabled = false,\n loading = false,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n fullWidth = false,\n } = opts\n\n const variant = resolveOption({\n name: 'tag variant',\n value: variantInput,\n allowed: TAG_VARIANTS,\n fallback: 'default',\n })\n\n const size =\n sizeInput &&\n resolveOption({\n name: 'tag size',\n value: sizeInput,\n allowed: TAG_SIZES,\n fallback: 'md',\n })\n\n return cx(\n 'sp-tag',\n `sp-tag--${variant}`,\n size && `sp-tag--${size}`,\n dismissible && 'sp-tag--dismissible',\n selected && 'sp-tag--selected',\n disabled && 'sp-tag--disabled',\n loading && 'sp-tag--loading',\n interactive && 'sp-tag--interactive',\n hovered && 'sp-tag--hover is-hover',\n focused && 'sp-tag--focus is-focus',\n active && 'sp-tag--active is-active',\n fullWidth && 'sp-tag--full'\n )\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst SPINNER_VARIANTS = {\n primary: true,\n secondary: true,\n success: true,\n warning: true,\n danger: true,\n info: true,\n neutral: true,\n accent: true,\n cta: true,\n} as const\n\nconst SPINNER_SIZES = {\n sm: true,\n md: true,\n lg: true,\n} as const\n\nexport type SpinnerVariant = keyof typeof SPINNER_VARIANTS\nexport type SpinnerSize = keyof typeof SPINNER_SIZES\n\nexport interface SpinnerRecipeOptions {\n variant?: SpinnerVariant\n size?: SpinnerSize\n disabled?: boolean\n loading?: boolean\n}\n\nexport function getSpinnerClasses(opts: SpinnerRecipeOptions = {}): string {\n const {\n variant: variantInput,\n size: sizeInput,\n disabled = false,\n loading = false,\n } = opts\n\n const variant =\n variantInput &&\n resolveOption({\n name: 'spinner variant',\n value: variantInput,\n allowed: SPINNER_VARIANTS,\n fallback: 'primary',\n })\n\n const size = resolveOption({\n name: 'spinner size',\n value: sizeInput,\n allowed: SPINNER_SIZES,\n fallback: 'md',\n })\n\n return cx(\n 'sp-spinner',\n variant && `sp-spinner--${variant}`,\n `sp-spinner--${size}`,\n disabled && 'sp-spinner--disabled',\n loading && 'sp-spinner--loading'\n )\n}\n","import { cx } from '../internal/cx'\n\nexport interface NavRecipeOptions {\n bordered?: boolean\n sticky?: boolean\n fullWidth?: boolean\n}\n\nexport function getNavClasses(opts: NavRecipeOptions = {}): string {\n const { bordered = false, sticky = false, fullWidth = false } = opts\n\n return cx(\n 'sp-nav',\n bordered && 'sp-nav--bordered',\n sticky && 'sp-nav--sticky',\n fullWidth && 'sp-nav--full'\n )\n}\n\nexport function getNavLinksClasses(): string {\n return cx('sp-nav__links')\n}\n\nexport interface NavLinkRecipeOptions {\n active?: boolean\n disabled?: boolean\n hovered?: boolean\n focused?: boolean\n}\n\nexport function getNavLinkClasses(opts: NavLinkRecipeOptions = {}): string {\n const {\n active = false,\n disabled = false,\n hovered = false,\n focused = false,\n } = opts\n\n return cx(\n 'sp-nav__link',\n active && 'sp-nav__link--active',\n disabled && 'sp-nav__link--disabled',\n hovered && 'sp-nav__link--hover is-hover',\n focused && 'sp-nav__link--focus is-focus'\n )\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst TOAST_VARIANTS = {\n info: true,\n success: true,\n warning: true,\n danger: true,\n} as const\n\nexport type ToastVariant = keyof typeof TOAST_VARIANTS\n\nexport interface ToastRecipeOptions {\n variant?: ToastVariant\n dismissed?: boolean\n fullWidth?: boolean\n}\n\nexport function getToastClasses(opts: ToastRecipeOptions = {}): string {\n const { variant: variantInput, dismissed = false, fullWidth = false } = opts\n\n const variant = resolveOption({\n name: 'toast variant',\n value: variantInput,\n allowed: TOAST_VARIANTS,\n fallback: 'info',\n })\n\n return cx(\n 'sp-toast',\n `sp-toast--${variant}`,\n dismissed && 'sp-toast--dismissed',\n fullWidth && 'sp-toast--full'\n )\n}\n\nexport interface ToastIconRecipeOptions {\n variant?: ToastVariant\n}\n\nexport function getToastIconClasses(\n opts: ToastIconRecipeOptions = {}\n): string {\n const { variant: variantInput } = opts\n\n const variant = resolveOption({\n name: 'toast variant',\n value: variantInput,\n allowed: TOAST_VARIANTS,\n fallback: 'info',\n })\n\n return cx('sp-toast__icon', `sp-toast__icon--${variant}`)\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst TOOLTIP_PLACEMENTS = {\n top: true,\n bottom: true,\n left: true,\n right: true,\n} as const\n\nexport type TooltipPlacement = keyof typeof TOOLTIP_PLACEMENTS\n\nexport interface TooltipRecipeOptions {\n placement?: TooltipPlacement\n visible?: boolean\n}\n\nexport function getTooltipClasses(opts: TooltipRecipeOptions = {}): string {\n const { placement: placementInput, visible = false } = opts\n\n const placement = resolveOption({\n name: 'tooltip placement',\n value: placementInput,\n allowed: TOOLTIP_PLACEMENTS,\n fallback: 'top',\n })\n\n return cx(\n 'sp-tooltip',\n `sp-tooltip--${placement}`,\n visible && 'sp-tooltip--visible'\n )\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst DROPDOWN_PLACEMENTS = {\n 'bottom-start': true,\n 'bottom-end': true,\n 'top-start': true,\n 'top-end': true,\n} as const\n\nexport type DropdownPlacement = keyof typeof DROPDOWN_PLACEMENTS\n\nexport interface DropdownRecipeOptions {\n fullWidth?: boolean\n}\n\nexport function getDropdownClasses(opts: DropdownRecipeOptions = {}): string {\n const { fullWidth = false } = opts\n\n return cx('sp-dropdown', fullWidth && 'sp-dropdown--full')\n}\n\nexport interface DropdownMenuRecipeOptions {\n placement?: DropdownPlacement\n open?: boolean\n}\n\nexport function getDropdownMenuClasses(\n opts: DropdownMenuRecipeOptions = {}\n): string {\n const { placement: placementInput, open = false } = opts\n\n const placement = resolveOption({\n name: 'dropdown menu placement',\n value: placementInput,\n allowed: DROPDOWN_PLACEMENTS,\n fallback: 'bottom-start',\n })\n\n return cx(\n 'sp-dropdown__menu',\n `sp-dropdown__menu--${placement}`,\n open && 'sp-dropdown__menu--open'\n )\n}\n\nexport interface DropdownItemRecipeOptions {\n active?: boolean\n disabled?: boolean\n hovered?: boolean\n focused?: boolean\n}\n\nexport function getDropdownItemClasses(\n opts: DropdownItemRecipeOptions = {}\n): string {\n const {\n active = false,\n disabled = false,\n hovered = false,\n focused = false,\n } = opts\n\n return cx(\n 'sp-dropdown__item',\n active && 'sp-dropdown__item--active',\n disabled && 'sp-dropdown__item--disabled',\n hovered && 'sp-dropdown__item--hover is-hover',\n focused && 'sp-dropdown__item--focus is-focus'\n )\n}\n","import { cx } from '../internal/cx'\n\nexport interface ModalOverlayRecipeOptions {\n open?: boolean\n}\n\nexport function getModalOverlayClasses(\n opts: ModalOverlayRecipeOptions = {}\n): string {\n const { open = false } = opts\n\n return cx('sp-modal-overlay', open && 'sp-modal-overlay--open')\n}\n\nexport interface ModalRecipeOptions {\n open?: boolean\n fullWidth?: boolean\n}\n\nexport function getModalClasses(opts: ModalRecipeOptions = {}): string {\n const { open = false, fullWidth = false } = opts\n\n return cx(\n 'sp-modal',\n open && 'sp-modal--open',\n fullWidth && 'sp-modal--full'\n )\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/css-constants.ts","../src/internal/cx.ts","../src/internal/resolve-option.ts","../src/recipes/button.ts","../src/recipes/card.ts","../src/recipes/input.ts","../src/recipes/badge.ts","../src/recipes/iconbox.ts","../src/recipes/testimonial.ts","../src/recipes/pricing-card.ts","../src/recipes/rating.ts","../src/recipes/alert.ts","../src/recipes/avatar.ts","../src/recipes/tag.ts","../src/recipes/spinner.ts","../src/recipes/nav.ts","../src/recipes/toast.ts","../src/recipes/tooltip.ts","../src/recipes/dropdown.ts","../src/recipes/modal.ts","../src/recipes/container.ts","../src/recipes/stack.ts","../src/recipes/section.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["export const spectreBaseStylesPath = \"@phcdevworks/spectre-ui/base.css\";\nexport const spectreComponentsStylesPath = \"@phcdevworks/spectre-ui/components.css\";\nexport const spectreUtilitiesStylesPath = \"@phcdevworks/spectre-ui/utilities.css\";\nexport const spectreIndexStylesPath = \"@phcdevworks/spectre-ui/index.css\";\n\nexport const spectreStyles = {\n index: spectreIndexStylesPath,\n base: spectreBaseStylesPath,\n components: spectreComponentsStylesPath,\n utilities: spectreUtilitiesStylesPath,\n};\n","export function cx(...parts: Array<string | false | null | undefined>): string {\n const seen = new Set<string>();\n const classes: string[] = [];\n\n for (const part of parts) {\n if (!part) continue;\n const trimmed = part.trim();\n if (!trimmed) continue;\n\n if (!/\\s/.test(trimmed)) {\n if (!seen.has(trimmed)) {\n seen.add(trimmed);\n classes.push(trimmed);\n }\n continue;\n }\n\n for (const token of trimmed.split(/\\s+/)) {\n if (!token || seen.has(token)) continue;\n seen.add(token);\n classes.push(token);\n }\n }\n\n return classes.join(\" \");\n}\n","type AllowedValues<T extends string> = readonly T[] | Record<T, unknown>;\n\nconst hasOwn = (value: object, key: string): boolean =>\n Object.prototype.hasOwnProperty.call(value, key);\n\nconst isAllowedValue = <T extends string>(value: T, allowed: AllowedValues<T>): boolean =>\n Array.isArray(allowed) ? allowed.includes(value) : hasOwn(allowed, value);\n\nexport function resolveOption<T extends string>(config: {\n name: string;\n value: T | undefined;\n allowed: AllowedValues<T>;\n fallback: T;\n}): T {\n const { name, value, allowed, fallback } = config;\n\n if (value === undefined) return fallback;\n if (isAllowedValue(value, allowed)) return value;\n\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error(`[spectre-ui] Unknown ${name}: ${value}`);\n }\n\n return fallback;\n}\n","import { cx } from \"../internal/cx\";\nimport { resolveOption } from \"../internal/resolve-option\";\n\nconst BUTTON_VARIANTS = {\n primary: true,\n secondary: true,\n ghost: true,\n danger: true,\n success: true,\n cta: true,\n accent: true,\n} as const;\n\nconst BUTTON_SIZES = {\n sm: true,\n md: true,\n lg: true,\n} as const;\n\nexport type ButtonVariant = keyof typeof BUTTON_VARIANTS;\nexport type ButtonSize = keyof typeof BUTTON_SIZES;\n\nexport interface ButtonRecipeOptions {\n variant?: ButtonVariant;\n size?: ButtonSize;\n fullWidth?: boolean;\n loading?: boolean;\n disabled?: boolean;\n hovered?: boolean;\n focused?: boolean;\n active?: boolean;\n iconOnly?: boolean;\n pill?: boolean;\n}\n\nexport function getButtonClasses(opts: ButtonRecipeOptions = {}): string {\n const {\n variant: variantInput,\n size: sizeInput,\n fullWidth = false,\n loading = false,\n disabled = false,\n hovered = false,\n focused = false,\n active = false,\n iconOnly = false,\n pill = false,\n } = opts;\n\n const variant = resolveOption({\n name: \"button variant\",\n value: variantInput,\n allowed: BUTTON_VARIANTS,\n fallback: \"primary\",\n });\n const size = resolveOption({\n name: \"button size\",\n value: sizeInput,\n allowed: BUTTON_SIZES,\n fallback: \"md\",\n });\n\n const variantMap: Record<ButtonVariant, string> = {\n primary: \"sp-btn--primary\",\n secondary: \"sp-btn--secondary\",\n ghost: \"sp-btn--ghost\",\n danger: \"sp-btn--danger\",\n success: \"sp-btn--success\",\n cta: \"sp-btn--cta\",\n accent: \"sp-btn--accent\",\n };\n const variantClass = variantMap[variant];\n\n const sizeMap: Record<ButtonSize, string> = {\n sm: \"sp-btn--sm\",\n md: \"sp-btn--md\",\n lg: \"sp-btn--lg\",\n };\n const sizeClass = sizeMap[size];\n\n return cx(\n \"sp-btn\",\n variantClass,\n sizeClass,\n fullWidth && \"sp-btn--full\",\n loading && \"sp-btn--loading\",\n disabled && \"sp-btn--disabled\",\n hovered && \"sp-btn--hover is-hover\",\n focused && \"sp-btn--focus is-focus\",\n active && \"sp-btn--active is-active\",\n iconOnly && \"sp-btn--icon\",\n pill && \"sp-btn--pill\",\n );\n}\n","import { cx } from \"../internal/cx\";\nimport { resolveOption } from \"../internal/resolve-option\";\n\nconst CARD_VARIANTS = {\n elevated: true,\n flat: true,\n outline: true,\n ghost: true,\n} as const;\n\nexport type CardVariant = keyof typeof CARD_VARIANTS;\n\nexport interface CardRecipeOptions {\n variant?: CardVariant;\n interactive?: boolean;\n padded?: boolean;\n fullHeight?: boolean;\n disabled?: boolean;\n loading?: boolean;\n hovered?: boolean;\n focused?: boolean;\n active?: boolean;\n}\n\nexport function getCardClasses(opts: CardRecipeOptions = {}): string {\n const {\n variant: variantInput,\n interactive = false,\n padded = false,\n fullHeight = false,\n disabled = false,\n loading = false,\n hovered = false,\n focused = false,\n active = false,\n } = opts;\n\n const variant = resolveOption({\n name: \"card variant\",\n value: variantInput,\n allowed: CARD_VARIANTS,\n fallback: \"elevated\",\n });\n\n const variantMap: Record<CardVariant, string> = {\n elevated: \"sp-card--elevated\",\n flat: \"sp-card--flat\",\n outline: \"sp-card--outline\",\n ghost: \"sp-card--ghost\",\n };\n const variantClass = variantMap[variant];\n\n return cx(\n \"sp-card\",\n variantClass,\n interactive && \"sp-card--interactive\",\n padded && \"sp-card--padded\",\n fullHeight && \"sp-card--full\",\n disabled && \"sp-card--disabled\",\n loading && \"sp-card--loading\",\n hovered && \"sp-card--hover is-hover\",\n focused && \"sp-card--focus is-focus\",\n active && \"sp-card--active is-active\",\n );\n}\n","import { cx } from \"../internal/cx\";\nimport { resolveOption } from \"../internal/resolve-option\";\n\nconst INPUT_STATES = {\n default: true,\n error: true,\n success: true,\n disabled: true,\n loading: true,\n} as const;\n\nconst INPUT_SIZES = {\n sm: true,\n md: true,\n lg: true,\n} as const;\n\nexport type InputState = keyof typeof INPUT_STATES;\nexport type InputSize = keyof typeof INPUT_SIZES;\n\nexport interface InputRecipeOptions {\n state?: InputState;\n size?: InputSize;\n fullWidth?: boolean;\n pill?: boolean;\n focused?: boolean;\n hovered?: boolean;\n active?: boolean;\n disabled?: boolean;\n loading?: boolean;\n}\n\nexport function getInputClasses(opts: InputRecipeOptions = {}): string {\n const {\n state: stateInput,\n size: sizeInput,\n fullWidth = false,\n pill = false,\n focused = false,\n hovered = false,\n active = false,\n disabled = false,\n loading = false,\n } = opts;\n\n const state = resolveOption({\n name: \"input state\",\n value: stateInput,\n allowed: INPUT_STATES,\n fallback: \"default\",\n });\n const size = resolveOption({\n name: \"input size\",\n value: sizeInput,\n allowed: INPUT_SIZES,\n fallback: \"md\",\n });\n\n const sizeMap: Record<InputSize, string> = {\n sm: \"sp-input--sm\",\n md: \"sp-input--md\",\n lg: \"sp-input--lg\",\n };\n const sizeClass = sizeMap[size];\n\n return cx(\n \"sp-input\",\n sizeClass,\n state === \"error\" && \"sp-input--error\",\n state === \"success\" && \"sp-input--success\",\n // Visual state only; actual disabled attribute is handled by adapters.\n (state === \"disabled\" || disabled) && \"sp-input--disabled\",\n (state === \"loading\" || loading) && \"sp-input--loading\",\n focused && \"sp-input--focus is-focus\",\n hovered && \"sp-input--hover is-hover\",\n active && \"sp-input--active is-active\",\n fullWidth && \"sp-input--full\",\n pill && \"sp-input--pill\",\n );\n}\n\nexport function getInputWrapperClasses(): string {\n return cx(\"sp-input-wrapper\");\n}\n\nexport function getInputLabelClasses(opts: { disabled?: boolean } = {}): string {\n const { disabled = false } = opts;\n return cx(\n \"sp-label\",\n disabled && \"sp-label--disabled\"\n );\n}\n\nexport function getInputHelperTextClasses(opts: { disabled?: boolean } = {}): string {\n const { disabled = false } = opts;\n return cx(\n \"sp-helper-text\",\n disabled && \"sp-helper-text--disabled\"\n );\n}\n\nexport function getInputErrorMessageClasses(): string {\n return cx(\"sp-error-message\");\n}\n","import { cx } from \"../internal/cx\";\nimport { resolveOption } from \"../internal/resolve-option\";\n\nconst BADGE_VARIANTS = {\n primary: true,\n secondary: true,\n success: true,\n warning: true,\n danger: true,\n neutral: true,\n info: true,\n ghost: true,\n outline: true,\n accent: true,\n cta: true,\n} as const;\n\nconst BADGE_SIZES = {\n sm: true,\n md: true,\n lg: true,\n} as const;\n\nexport type BadgeVariant = keyof typeof BADGE_VARIANTS;\nexport type BadgeSize = keyof typeof BADGE_SIZES;\n\nexport interface BadgeRecipeOptions {\n variant?: BadgeVariant;\n size?: BadgeSize;\n interactive?: boolean;\n hovered?: boolean;\n focused?: boolean;\n active?: boolean;\n disabled?: boolean;\n loading?: boolean;\n fullWidth?: boolean;\n}\n\nexport function getBadgeClasses(opts: BadgeRecipeOptions = {}): string {\n const {\n variant: variantInput,\n size: sizeInput,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n disabled = false,\n loading = false,\n fullWidth = false,\n } = opts;\n\n const variant = resolveOption({\n name: \"badge variant\",\n value: variantInput,\n allowed: BADGE_VARIANTS,\n fallback: \"primary\",\n });\n const size = resolveOption({\n name: \"badge size\",\n value: sizeInput,\n allowed: BADGE_SIZES,\n fallback: \"md\",\n });\n\n const variantMap: Record<BadgeVariant, string> = {\n primary: \"sp-badge--primary\",\n secondary: \"sp-badge--secondary\",\n success: \"sp-badge--success\",\n warning: \"sp-badge--warning\",\n danger: \"sp-badge--danger\",\n neutral: \"sp-badge--neutral\",\n info: \"sp-badge--info\",\n ghost: \"sp-badge--ghost\",\n outline: \"sp-badge--outline\",\n accent: \"sp-badge--accent\",\n cta: \"sp-badge--cta\",\n };\n const variantClass = variantMap[variant];\n\n const sizeMap: Record<BadgeSize, string> = {\n sm: \"sp-badge--sm\",\n md: \"sp-badge--md\",\n lg: \"sp-badge--lg\",\n };\n const sizeClass = sizeMap[size];\n\n return cx(\n \"sp-badge\",\n variantClass,\n sizeClass,\n interactive && \"sp-badge--interactive\",\n hovered && \"sp-badge--hover is-hover\",\n focused && \"sp-badge--focus is-focus\",\n active && \"sp-badge--active is-active\",\n disabled && \"sp-badge--disabled\",\n loading && \"sp-badge--loading\",\n fullWidth && \"sp-badge--full\"\n );\n}\n","import { cx } from \"../internal/cx\";\nimport { resolveOption } from \"../internal/resolve-option\";\n\nconst ICONBOX_VARIANTS = {\n primary: true,\n secondary: true,\n success: true,\n warning: true,\n danger: true,\n info: true,\n neutral: true,\n ghost: true,\n accent: true,\n cta: true,\n outline: true,\n} as const;\n\nconst ICONBOX_SIZES = {\n xs: true,\n sm: true,\n md: true,\n lg: true,\n} as const;\n\nexport type IconBoxVariant = keyof typeof ICONBOX_VARIANTS;\nexport type IconBoxSize = keyof typeof ICONBOX_SIZES;\n\nexport interface IconBoxRecipeOptions {\n variant?: IconBoxVariant;\n size?: IconBoxSize;\n disabled?: boolean;\n loading?: boolean;\n interactive?: boolean;\n hovered?: boolean;\n focused?: boolean;\n active?: boolean;\n pill?: boolean;\n fullWidth?: boolean;\n}\n\nexport function getIconBoxClasses(opts: IconBoxRecipeOptions = {}): string {\n const {\n variant: variantInput,\n size: sizeInput,\n disabled = false,\n loading = false,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n pill = false,\n fullWidth = false,\n } = opts;\n\n const variant = resolveOption({\n name: \"icon box variant\",\n value: variantInput,\n allowed: ICONBOX_VARIANTS,\n fallback: \"primary\",\n });\n const size = resolveOption({\n name: \"icon box size\",\n value: sizeInput,\n allowed: ICONBOX_SIZES,\n fallback: \"md\",\n });\n\n const variantMap: Record<IconBoxVariant, string> = {\n primary: \"sp-iconbox--primary\",\n secondary: \"sp-iconbox--secondary\",\n success: \"sp-iconbox--success\",\n warning: \"sp-iconbox--warning\",\n danger: \"sp-iconbox--danger\",\n info: \"sp-iconbox--info\",\n neutral: \"sp-iconbox--neutral\",\n ghost: \"sp-iconbox--ghost\",\n accent: \"sp-iconbox--accent\",\n cta: \"sp-iconbox--cta\",\n outline: \"sp-iconbox--outline\",\n };\n const variantClass = variantMap[variant];\n\n const sizeMap: Record<IconBoxSize, string> = {\n xs: \"sp-iconbox--xs\",\n sm: \"sp-iconbox--sm\",\n md: \"sp-iconbox--md\",\n lg: \"sp-iconbox--lg\",\n };\n const sizeClass = sizeMap[size];\n\n return cx(\n \"sp-iconbox\",\n variantClass,\n sizeClass,\n disabled && \"sp-iconbox--disabled\",\n loading && \"sp-iconbox--loading\",\n interactive && \"sp-iconbox--interactive\",\n hovered && \"sp-iconbox--hover is-hover\",\n focused && \"sp-iconbox--focus is-focus\",\n active && \"sp-iconbox--active is-active\",\n pill && \"sp-iconbox--pill\",\n fullWidth && \"sp-iconbox--full\"\n );\n}\n","import { cx } from \"../internal/cx\";\nimport { resolveOption } from \"../internal/resolve-option\";\n\nconst TESTIMONIAL_VARIANTS = {\n elevated: true,\n flat: true,\n outline: true,\n ghost: true,\n} as const;\n\nexport type TestimonialVariant = keyof typeof TESTIMONIAL_VARIANTS;\n\nexport interface TestimonialRecipeOptions {\n variant?: TestimonialVariant;\n disabled?: boolean;\n loading?: boolean;\n interactive?: boolean;\n hovered?: boolean;\n focused?: boolean;\n active?: boolean;\n fullHeight?: boolean;\n}\n\nexport function getTestimonialClasses(opts: TestimonialRecipeOptions = {}): string {\n const {\n variant: variantInput,\n disabled = false,\n loading = false,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n fullHeight = false,\n } = opts;\n\n const variant = resolveOption({\n name: \"testimonial variant\",\n value: variantInput,\n allowed: TESTIMONIAL_VARIANTS,\n fallback: \"outline\",\n });\n\n const variantMap: Record<TestimonialVariant, string> = {\n elevated: \"sp-testimonial--elevated\",\n flat: \"sp-testimonial--flat\",\n outline: \"sp-testimonial--outline\",\n ghost: \"sp-testimonial--ghost\",\n };\n const variantClass = variantMap[variant];\n\n return cx(\n \"sp-testimonial\",\n variantClass,\n disabled && \"sp-testimonial--disabled\",\n loading && \"sp-testimonial--loading\",\n interactive && \"sp-testimonial--interactive\",\n hovered && \"sp-testimonial--hover is-hover\",\n focused && \"sp-testimonial--focus is-focus\",\n active && \"sp-testimonial--active is-active\",\n fullHeight && \"sp-testimonial--full\"\n );\n}\n\nexport function getTestimonialQuoteClasses(): string {\n return cx(\"sp-testimonial-quote\");\n}\n\nexport function getTestimonialAuthorClasses(): string {\n return cx(\"sp-testimonial-author\");\n}\n\nexport function getTestimonialAuthorInfoClasses(): string {\n return cx(\"sp-testimonial-author-info\");\n}\n\nexport function getTestimonialAuthorNameClasses(): string {\n return cx(\"sp-testimonial-author-name\");\n}\n\nexport function getTestimonialAuthorTitleClasses(): string {\n return cx(\"sp-testimonial-author-title\");\n}\n","import { cx } from '../internal/cx'\n\nexport interface PricingCardRecipeOptions {\n featured?: boolean\n disabled?: boolean\n loading?: boolean\n interactive?: boolean\n hovered?: boolean\n focused?: boolean\n active?: boolean\n fullHeight?: boolean\n}\n\nexport function getPricingCardClasses(opts: PricingCardRecipeOptions = {}): string {\n const {\n featured = false,\n disabled = false,\n loading = false,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n fullHeight = false,\n } = opts\n\n return cx(\n 'sp-pricing-card',\n featured && 'sp-pricing-card--featured',\n disabled && 'sp-pricing-card--disabled',\n loading && 'sp-pricing-card--loading',\n interactive && 'sp-pricing-card--interactive',\n hovered && 'sp-pricing-card--hover is-hover',\n focused && 'sp-pricing-card--focus is-focus',\n active && 'sp-pricing-card--active is-active',\n fullHeight && 'sp-pricing-card--full'\n )\n}\n\nexport function getPricingCardBadgeClasses(): string {\n return cx('sp-pricing-card-badge')\n}\n\nexport function getPricingCardPriceContainerClasses(): string {\n return cx('sp-pricing-card-price-container')\n}\n\nexport function getPricingCardPriceClasses(): string {\n return cx('sp-pricing-card-price')\n}\n\nexport function getPricingCardDescriptionClasses(): string {\n return cx('sp-pricing-card-description')\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst RATING_SIZES = {\n sm: true,\n md: true,\n lg: true,\n} as const\n\nexport type RatingSize = keyof typeof RATING_SIZES\n\nexport interface RatingRecipeOptions {\n size?: RatingSize\n disabled?: boolean\n loading?: boolean\n interactive?: boolean\n hovered?: boolean\n focused?: boolean\n active?: boolean\n pill?: boolean\n fullWidth?: boolean\n}\n\nexport function getRatingClasses(opts: RatingRecipeOptions = {}): string {\n const {\n size: sizeInput,\n disabled = false,\n loading = false,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n pill = false,\n fullWidth = false,\n } = opts\n\n const size = resolveOption({\n name: 'rating size',\n value: sizeInput,\n allowed: RATING_SIZES,\n fallback: 'md',\n })\n\n return cx(\n 'sp-rating',\n `sp-rating--${size}`,\n disabled && 'sp-rating--disabled',\n loading && 'sp-rating--loading',\n interactive && 'sp-rating--interactive',\n hovered && 'sp-rating--hover is-hover',\n focused && 'sp-rating--focus is-focus',\n active && 'sp-rating--active is-active',\n pill && 'sp-rating--pill',\n fullWidth && 'sp-rating--full'\n )\n}\n\nexport function getRatingStarsClasses(): string {\n return cx('sp-rating-stars')\n}\n\nexport function getRatingStarClasses(isFilled: boolean = false): string {\n return cx('sp-rating-star', isFilled && 'sp-rating-star--filled')\n}\n\nexport function getRatingTextClasses(opts: { disabled?: boolean } = {}): string {\n const { disabled = false } = opts\n return cx('sp-rating-text', disabled && 'sp-rating-text--disabled')\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst ALERT_VARIANTS = {\n info: true,\n success: true,\n warning: true,\n danger: true,\n neutral: true,\n} as const\n\nconst ALERT_SIZES = {\n sm: true,\n md: true,\n lg: true,\n} as const\n\nexport type AlertVariant = keyof typeof ALERT_VARIANTS\nexport type AlertSize = keyof typeof ALERT_SIZES\n\nexport interface AlertRecipeOptions {\n variant?: AlertVariant\n size?: AlertSize\n dismissed?: boolean\n fullWidth?: boolean\n interactive?: boolean\n hovered?: boolean\n focused?: boolean\n active?: boolean\n disabled?: boolean\n loading?: boolean\n}\n\nexport function getAlertClasses(opts: AlertRecipeOptions = {}): string {\n const {\n variant: variantInput,\n size: sizeInput,\n dismissed = false,\n fullWidth = false,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n disabled = false,\n loading = false,\n } = opts\n\n const variant = resolveOption({\n name: 'alert variant',\n value: variantInput,\n allowed: ALERT_VARIANTS,\n fallback: 'info',\n })\n\n const size = resolveOption({\n name: 'alert size',\n value: sizeInput,\n allowed: ALERT_SIZES,\n fallback: 'md',\n })\n\n return cx(\n 'sp-alert',\n `sp-alert--${variant}`,\n `sp-alert--${size}`,\n dismissed && 'sp-alert--dismissed',\n fullWidth && 'sp-alert--full',\n interactive && 'sp-alert--interactive',\n hovered && 'sp-alert--hover is-hover',\n focused && 'sp-alert--focus is-focus',\n active && 'sp-alert--active is-active',\n disabled && 'sp-alert--disabled',\n loading && 'sp-alert--loading'\n )\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst AVATAR_SIZES = {\n xs: true,\n sm: true,\n md: true,\n lg: true,\n xl: true,\n} as const\n\nconst AVATAR_SHAPES = {\n circle: true,\n square: true,\n} as const\n\nexport type AvatarSize = keyof typeof AVATAR_SIZES\nexport type AvatarShape = keyof typeof AVATAR_SHAPES\n\nexport interface AvatarRecipeOptions {\n size?: AvatarSize\n shape?: AvatarShape\n disabled?: boolean\n loading?: boolean\n interactive?: boolean\n hovered?: boolean\n focused?: boolean\n active?: boolean\n fullWidth?: boolean\n placeholder?: boolean\n}\n\nexport function getAvatarClasses(opts: AvatarRecipeOptions = {}): string {\n const {\n size: sizeInput,\n shape: shapeInput,\n disabled = false,\n loading = false,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n fullWidth = false,\n placeholder = false,\n } = opts\n\n const size = resolveOption({\n name: 'avatar size',\n value: sizeInput,\n allowed: AVATAR_SIZES,\n fallback: 'md',\n })\n\n const shape = resolveOption({\n name: 'avatar shape',\n value: shapeInput,\n allowed: AVATAR_SHAPES,\n fallback: 'circle',\n })\n\n return cx(\n 'sp-avatar',\n `sp-avatar--${size}`,\n `sp-avatar--${shape}`,\n disabled && 'sp-avatar--disabled',\n loading && 'sp-avatar--loading',\n interactive && 'sp-avatar--interactive',\n hovered && 'sp-avatar--hover is-hover',\n focused && 'sp-avatar--focus is-focus',\n active && 'sp-avatar--active is-active',\n fullWidth && 'sp-avatar--full',\n placeholder && 'sp-avatar--placeholder'\n )\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst TAG_VARIANTS = {\n default: true,\n primary: true,\n secondary: true,\n success: true,\n warning: true,\n danger: true,\n info: true,\n neutral: true,\n accent: true,\n cta: true,\n outline: true,\n ghost: true,\n} as const\n\nconst TAG_SIZES = {\n sm: true,\n md: true,\n lg: true,\n} as const\n\nexport type TagVariant = keyof typeof TAG_VARIANTS\nexport type TagSize = keyof typeof TAG_SIZES\n\nexport interface TagRecipeOptions {\n variant?: TagVariant\n size?: TagSize\n dismissible?: boolean\n selected?: boolean\n disabled?: boolean\n loading?: boolean\n interactive?: boolean\n hovered?: boolean\n focused?: boolean\n active?: boolean\n fullWidth?: boolean\n}\n\nexport function getTagClasses(opts: TagRecipeOptions = {}): string {\n const {\n variant: variantInput,\n size: sizeInput,\n dismissible = false,\n selected = false,\n disabled = false,\n loading = false,\n interactive = false,\n hovered = false,\n focused = false,\n active = false,\n fullWidth = false,\n } = opts\n\n const variant = resolveOption({\n name: 'tag variant',\n value: variantInput,\n allowed: TAG_VARIANTS,\n fallback: 'default',\n })\n\n const size =\n sizeInput &&\n resolveOption({\n name: 'tag size',\n value: sizeInput,\n allowed: TAG_SIZES,\n fallback: 'md',\n })\n\n return cx(\n 'sp-tag',\n `sp-tag--${variant}`,\n size && `sp-tag--${size}`,\n dismissible && 'sp-tag--dismissible',\n selected && 'sp-tag--selected',\n disabled && 'sp-tag--disabled',\n loading && 'sp-tag--loading',\n interactive && 'sp-tag--interactive',\n hovered && 'sp-tag--hover is-hover',\n focused && 'sp-tag--focus is-focus',\n active && 'sp-tag--active is-active',\n fullWidth && 'sp-tag--full'\n )\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst SPINNER_VARIANTS = {\n primary: true,\n secondary: true,\n success: true,\n warning: true,\n danger: true,\n info: true,\n neutral: true,\n accent: true,\n cta: true,\n} as const\n\nconst SPINNER_SIZES = {\n sm: true,\n md: true,\n lg: true,\n} as const\n\nexport type SpinnerVariant = keyof typeof SPINNER_VARIANTS\nexport type SpinnerSize = keyof typeof SPINNER_SIZES\n\nexport interface SpinnerRecipeOptions {\n variant?: SpinnerVariant\n size?: SpinnerSize\n disabled?: boolean\n loading?: boolean\n}\n\nexport function getSpinnerClasses(opts: SpinnerRecipeOptions = {}): string {\n const {\n variant: variantInput,\n size: sizeInput,\n disabled = false,\n loading = false,\n } = opts\n\n const variant =\n variantInput &&\n resolveOption({\n name: 'spinner variant',\n value: variantInput,\n allowed: SPINNER_VARIANTS,\n fallback: 'primary',\n })\n\n const size = resolveOption({\n name: 'spinner size',\n value: sizeInput,\n allowed: SPINNER_SIZES,\n fallback: 'md',\n })\n\n return cx(\n 'sp-spinner',\n variant && `sp-spinner--${variant}`,\n `sp-spinner--${size}`,\n disabled && 'sp-spinner--disabled',\n loading && 'sp-spinner--loading'\n )\n}\n","import { cx } from '../internal/cx'\n\nexport interface NavRecipeOptions {\n bordered?: boolean\n sticky?: boolean\n fullWidth?: boolean\n}\n\nexport function getNavClasses(opts: NavRecipeOptions = {}): string {\n const { bordered = false, sticky = false, fullWidth = false } = opts\n\n return cx(\n 'sp-nav',\n bordered && 'sp-nav--bordered',\n sticky && 'sp-nav--sticky',\n fullWidth && 'sp-nav--full'\n )\n}\n\nexport function getNavLinksClasses(): string {\n return cx('sp-nav__links')\n}\n\nexport interface NavLinkRecipeOptions {\n active?: boolean\n disabled?: boolean\n hovered?: boolean\n focused?: boolean\n}\n\nexport function getNavLinkClasses(opts: NavLinkRecipeOptions = {}): string {\n const {\n active = false,\n disabled = false,\n hovered = false,\n focused = false,\n } = opts\n\n return cx(\n 'sp-nav__link',\n active && 'sp-nav__link--active',\n disabled && 'sp-nav__link--disabled',\n hovered && 'sp-nav__link--hover is-hover',\n focused && 'sp-nav__link--focus is-focus'\n )\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst TOAST_VARIANTS = {\n info: true,\n success: true,\n warning: true,\n danger: true,\n} as const\n\nexport type ToastVariant = keyof typeof TOAST_VARIANTS\n\nexport interface ToastRecipeOptions {\n variant?: ToastVariant\n dismissed?: boolean\n fullWidth?: boolean\n}\n\nexport function getToastClasses(opts: ToastRecipeOptions = {}): string {\n const { variant: variantInput, dismissed = false, fullWidth = false } = opts\n\n const variant = resolveOption({\n name: 'toast variant',\n value: variantInput,\n allowed: TOAST_VARIANTS,\n fallback: 'info',\n })\n\n return cx(\n 'sp-toast',\n `sp-toast--${variant}`,\n dismissed && 'sp-toast--dismissed',\n fullWidth && 'sp-toast--full'\n )\n}\n\nexport interface ToastIconRecipeOptions {\n variant?: ToastVariant\n}\n\nexport function getToastIconClasses(\n opts: ToastIconRecipeOptions = {}\n): string {\n const { variant: variantInput } = opts\n\n const variant = resolveOption({\n name: 'toast variant',\n value: variantInput,\n allowed: TOAST_VARIANTS,\n fallback: 'info',\n })\n\n return cx('sp-toast__icon', `sp-toast__icon--${variant}`)\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst TOOLTIP_PLACEMENTS = {\n top: true,\n bottom: true,\n left: true,\n right: true,\n} as const\n\nexport type TooltipPlacement = keyof typeof TOOLTIP_PLACEMENTS\n\nexport interface TooltipRecipeOptions {\n placement?: TooltipPlacement\n visible?: boolean\n}\n\nexport function getTooltipClasses(opts: TooltipRecipeOptions = {}): string {\n const { placement: placementInput, visible = false } = opts\n\n const placement = resolveOption({\n name: 'tooltip placement',\n value: placementInput,\n allowed: TOOLTIP_PLACEMENTS,\n fallback: 'top',\n })\n\n return cx(\n 'sp-tooltip',\n `sp-tooltip--${placement}`,\n visible && 'sp-tooltip--visible'\n )\n}\n","import { cx } from '../internal/cx'\nimport { resolveOption } from '../internal/resolve-option'\n\nconst DROPDOWN_PLACEMENTS = {\n 'bottom-start': true,\n 'bottom-end': true,\n 'top-start': true,\n 'top-end': true,\n} as const\n\nexport type DropdownPlacement = keyof typeof DROPDOWN_PLACEMENTS\n\nexport interface DropdownRecipeOptions {\n fullWidth?: boolean\n}\n\nexport function getDropdownClasses(opts: DropdownRecipeOptions = {}): string {\n const { fullWidth = false } = opts\n\n return cx('sp-dropdown', fullWidth && 'sp-dropdown--full')\n}\n\nexport interface DropdownMenuRecipeOptions {\n placement?: DropdownPlacement\n open?: boolean\n}\n\nexport function getDropdownMenuClasses(\n opts: DropdownMenuRecipeOptions = {}\n): string {\n const { placement: placementInput, open = false } = opts\n\n const placement = resolveOption({\n name: 'dropdown menu placement',\n value: placementInput,\n allowed: DROPDOWN_PLACEMENTS,\n fallback: 'bottom-start',\n })\n\n return cx(\n 'sp-dropdown__menu',\n `sp-dropdown__menu--${placement}`,\n open && 'sp-dropdown__menu--open'\n )\n}\n\nexport interface DropdownItemRecipeOptions {\n active?: boolean\n disabled?: boolean\n hovered?: boolean\n focused?: boolean\n}\n\nexport function getDropdownItemClasses(\n opts: DropdownItemRecipeOptions = {}\n): string {\n const {\n active = false,\n disabled = false,\n hovered = false,\n focused = false,\n } = opts\n\n return cx(\n 'sp-dropdown__item',\n active && 'sp-dropdown__item--active',\n disabled && 'sp-dropdown__item--disabled',\n hovered && 'sp-dropdown__item--hover is-hover',\n focused && 'sp-dropdown__item--focus is-focus'\n )\n}\n","import { cx } from '../internal/cx'\n\nexport interface ModalOverlayRecipeOptions {\n open?: boolean\n}\n\nexport function getModalOverlayClasses(\n opts: ModalOverlayRecipeOptions = {}\n): string {\n const { open = false } = opts\n\n return cx('sp-modal-overlay', open && 'sp-modal-overlay--open')\n}\n\nexport interface ModalRecipeOptions {\n open?: boolean\n fullWidth?: boolean\n}\n\nexport function getModalClasses(opts: ModalRecipeOptions = {}): string {\n const { open = false, fullWidth = false } = opts\n\n return cx(\n 'sp-modal',\n open && 'sp-modal--open',\n fullWidth && 'sp-modal--full'\n )\n}\n","export interface ContainerRecipeOptions {}\n\nexport function getContainerClasses(_opts: ContainerRecipeOptions = {}): string {\n return 'sp-container'\n}\n","import { resolveOption } from '../internal/resolve-option'\n\nconst STACK_DIRECTIONS = {\n vertical: true,\n horizontal: true,\n} as const\n\nexport type StackDirection = keyof typeof STACK_DIRECTIONS\n\nexport interface StackRecipeOptions {\n direction?: StackDirection\n}\n\nexport function getStackClasses(opts: StackRecipeOptions = {}): string {\n const { direction: directionInput } = opts\n\n const direction = resolveOption({\n name: 'stack direction',\n value: directionInput,\n allowed: STACK_DIRECTIONS,\n fallback: 'vertical',\n })\n\n return direction === 'horizontal' ? 'sp-hstack' : 'sp-stack'\n}\n","export interface SectionRecipeOptions {}\n\nexport function getSectionClasses(_opts: SectionRecipeOptions = {}): string {\n return 'sp-section'\n}\n"]}
|
package/package.json
CHANGED