@phcdevworks/spectre-components 1.12.0 → 1.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +240 -138
- package/dist/alert.cjs.map +1 -1
- package/dist/alert.d.cts +2 -2
- package/dist/alert.d.ts +2 -2
- package/dist/alert.js.map +1 -1
- package/dist/avatar.cjs.map +1 -1
- package/dist/avatar.d.cts +2 -2
- package/dist/avatar.d.ts +2 -2
- package/dist/avatar.js.map +1 -1
- package/dist/badge.cjs.map +1 -1
- package/dist/badge.d.cts +2 -2
- package/dist/badge.d.ts +2 -2
- package/dist/badge.js.map +1 -1
- package/dist/button.cjs +24 -0
- package/dist/button.cjs.map +1 -1
- package/dist/button.d.cts +21 -3
- package/dist/button.d.ts +21 -3
- package/dist/button.js +24 -0
- package/dist/button.js.map +1 -1
- package/dist/card.cjs.map +1 -1
- package/dist/card.d.cts +2 -2
- package/dist/card.d.ts +2 -2
- package/dist/card.js.map +1 -1
- package/dist/container.cjs +17 -1
- package/dist/container.cjs.map +1 -1
- package/dist/container.d.cts +9 -2
- package/dist/container.d.ts +9 -2
- package/dist/container.js +17 -1
- package/dist/container.js.map +1 -1
- package/dist/dropdown.cjs +10 -1
- package/dist/dropdown.cjs.map +1 -1
- package/dist/dropdown.d.cts +8 -2
- package/dist/dropdown.d.ts +8 -2
- package/dist/dropdown.js +10 -1
- package/dist/dropdown.js.map +1 -1
- package/dist/footer.cjs +18 -2
- package/dist/footer.cjs.map +1 -1
- package/dist/footer.d.cts +7 -0
- package/dist/footer.d.ts +7 -0
- package/dist/footer.js +18 -2
- package/dist/footer.js.map +1 -1
- package/dist/{form-JrKDonG4.d.cts → form-BGQjgJrL.d.cts} +10 -1
- package/dist/{form-JrKDonG4.d.ts → form-BGQjgJrL.d.ts} +10 -1
- package/dist/grid.cjs +53 -3
- package/dist/grid.cjs.map +1 -1
- package/dist/grid.d.cts +14 -2
- package/dist/grid.d.ts +14 -2
- package/dist/grid.js +53 -3
- package/dist/grid.js.map +1 -1
- package/dist/icon-box.cjs.map +1 -1
- package/dist/icon-box.d.cts +2 -2
- package/dist/icon-box.d.ts +2 -2
- package/dist/icon-box.js.map +1 -1
- package/dist/index.cjs +298 -22
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -2
- package/dist/index.d.ts +3 -2
- package/dist/index.js +298 -24
- package/dist/index.js.map +1 -1
- package/dist/input.cjs.map +1 -1
- package/dist/input.d.cts +2 -2
- package/dist/input.d.ts +2 -2
- package/dist/input.js.map +1 -1
- package/dist/nav-item.cjs +7 -1
- package/dist/nav-item.cjs.map +1 -1
- package/dist/nav-item.d.cts +7 -1
- package/dist/nav-item.d.ts +7 -1
- package/dist/nav-item.js +7 -1
- package/dist/nav-item.js.map +1 -1
- package/dist/nav.cjs +17 -1
- package/dist/nav.cjs.map +1 -1
- package/dist/nav.d.cts +7 -0
- package/dist/nav.d.ts +7 -0
- package/dist/nav.js +17 -1
- package/dist/nav.js.map +1 -1
- package/dist/rating.cjs.map +1 -1
- package/dist/rating.d.cts +2 -2
- package/dist/rating.d.ts +2 -2
- package/dist/rating.js.map +1 -1
- package/dist/section.cjs +22 -1
- package/dist/section.cjs.map +1 -1
- package/dist/section.d.cts +9 -0
- package/dist/section.d.ts +9 -0
- package/dist/section.js +22 -1
- package/dist/section.js.map +1 -1
- package/dist/select.cjs.map +1 -1
- package/dist/select.d.cts +1 -1
- package/dist/select.d.ts +1 -1
- package/dist/select.js.map +1 -1
- package/dist/sidebar-toggle.cjs +465 -0
- package/dist/sidebar-toggle.cjs.map +1 -0
- package/dist/sidebar-toggle.d.cts +44 -0
- package/dist/sidebar-toggle.d.ts +44 -0
- package/dist/sidebar-toggle.js +462 -0
- package/dist/sidebar-toggle.js.map +1 -0
- package/dist/sidebar.cjs +15 -10
- package/dist/sidebar.cjs.map +1 -1
- package/dist/sidebar.d.cts +7 -0
- package/dist/sidebar.d.ts +7 -0
- package/dist/sidebar.js +15 -10
- package/dist/sidebar.js.map +1 -1
- package/dist/spinner.cjs.map +1 -1
- package/dist/spinner.d.cts +2 -2
- package/dist/spinner.d.ts +2 -2
- package/dist/spinner.js.map +1 -1
- package/dist/stack.cjs +18 -2
- package/dist/stack.cjs.map +1 -1
- package/dist/stack.d.cts +9 -2
- package/dist/stack.d.ts +9 -2
- package/dist/stack.js +18 -2
- package/dist/stack.js.map +1 -1
- package/dist/tag.cjs.map +1 -1
- package/dist/tag.d.cts +2 -2
- package/dist/tag.d.ts +2 -2
- package/dist/tag.js.map +1 -1
- package/dist/testimonial.cjs.map +1 -1
- package/dist/testimonial.d.cts +2 -2
- package/dist/testimonial.d.ts +2 -2
- package/dist/testimonial.js.map +1 -1
- package/dist/text.cjs +16 -0
- package/dist/text.cjs.map +1 -1
- package/dist/text.d.cts +8 -2
- package/dist/text.d.ts +8 -2
- package/dist/text.js +16 -0
- package/dist/text.js.map +1 -1
- package/dist/textarea.cjs.map +1 -1
- package/dist/textarea.d.cts +1 -1
- package/dist/textarea.d.ts +1 -1
- package/dist/textarea.js.map +1 -1
- package/dist/toast.cjs.map +1 -1
- package/dist/toast.d.cts +2 -2
- package/dist/toast.d.ts +2 -2
- package/dist/toast.js.map +1 -1
- package/dist/tooltip.cjs.map +1 -1
- package/dist/tooltip.d.cts +2 -2
- package/dist/tooltip.d.ts +2 -2
- package/dist/tooltip.js.map +1 -1
- package/package.json +21 -16
package/dist/index.cjs
CHANGED
|
@@ -159,6 +159,33 @@ var spectreGridGaps = ["sm", "md", "lg"];
|
|
|
159
159
|
function isGridGap(value) {
|
|
160
160
|
return spectreGridGaps.includes(value);
|
|
161
161
|
}
|
|
162
|
+
var spectreGridSpans = [
|
|
163
|
+
1,
|
|
164
|
+
2,
|
|
165
|
+
3,
|
|
166
|
+
4,
|
|
167
|
+
5,
|
|
168
|
+
6,
|
|
169
|
+
7,
|
|
170
|
+
8,
|
|
171
|
+
9,
|
|
172
|
+
10,
|
|
173
|
+
11,
|
|
174
|
+
12,
|
|
175
|
+
"full"
|
|
176
|
+
];
|
|
177
|
+
function isGridSpan(value) {
|
|
178
|
+
return spectreGridSpans.includes(
|
|
179
|
+
value
|
|
180
|
+
);
|
|
181
|
+
}
|
|
182
|
+
function isGridSpanOptions(value) {
|
|
183
|
+
if (typeof value !== "object" || value === null) {
|
|
184
|
+
return false;
|
|
185
|
+
}
|
|
186
|
+
const candidate = value;
|
|
187
|
+
return (candidate.base === void 0 || isGridSpan(candidate.base)) && (candidate.md === void 0 || isGridSpan(candidate.md)) && (candidate.lg === void 0 || isGridSpan(candidate.lg));
|
|
188
|
+
}
|
|
162
189
|
var spectreStackDirections = ["vertical", "horizontal"];
|
|
163
190
|
function isStackDirection(value) {
|
|
164
191
|
return spectreStackDirections.includes(
|
|
@@ -246,12 +273,30 @@ var spectreTextLevels = [
|
|
|
246
273
|
function isTextLevel(value) {
|
|
247
274
|
return spectreTextLevels.includes(value);
|
|
248
275
|
}
|
|
276
|
+
var spectreTextTransforms = [
|
|
277
|
+
"none",
|
|
278
|
+
"uppercase",
|
|
279
|
+
"lowercase",
|
|
280
|
+
"capitalize"
|
|
281
|
+
];
|
|
282
|
+
function isTextTransform(value) {
|
|
283
|
+
return spectreTextTransforms.includes(
|
|
284
|
+
value
|
|
285
|
+
);
|
|
286
|
+
}
|
|
249
287
|
function normalizeInt(value, fallback, min = 0) {
|
|
250
288
|
if (value == null || typeof value !== "number" || !Number.isInteger(value) || value < min) {
|
|
251
289
|
return fallback;
|
|
252
290
|
}
|
|
253
291
|
return value;
|
|
254
292
|
}
|
|
293
|
+
var spectreUtilityClassPattern = /^sp-[a-z0-9]+(?:-[a-z0-9]+)*$/;
|
|
294
|
+
function sanitizeUtilityClasses(value) {
|
|
295
|
+
if (!value) {
|
|
296
|
+
return "";
|
|
297
|
+
}
|
|
298
|
+
return value.split(/\s+/).filter((token) => spectreUtilityClassPattern.test(token)).join(" ");
|
|
299
|
+
}
|
|
255
300
|
var SpectreBaseElement = class extends lit.LitElement {
|
|
256
301
|
constructor() {
|
|
257
302
|
super(...arguments);
|
|
@@ -624,6 +669,9 @@ var SpectreButtonElement = class extends SpectreProjectableElement {
|
|
|
624
669
|
set autofocus(value) {
|
|
625
670
|
super.autofocus = value;
|
|
626
671
|
}
|
|
672
|
+
get isLink() {
|
|
673
|
+
return Boolean(this.href) && !this.isDisabled;
|
|
674
|
+
}
|
|
627
675
|
getContentContainer() {
|
|
628
676
|
return this.querySelector("[data-sp-button-native]");
|
|
629
677
|
}
|
|
@@ -707,12 +755,30 @@ var SpectreButtonElement = class extends SpectreProjectableElement {
|
|
|
707
755
|
>` : lit.nothing;
|
|
708
756
|
}
|
|
709
757
|
render() {
|
|
758
|
+
if (this.isLink) {
|
|
759
|
+
return lit.html`<a
|
|
760
|
+
aria-busy="${this.loading ? "true" : "false"}"
|
|
761
|
+
aria-describedby="${ifDefined_js.ifDefined(this.forwardedAriaDescribedBy)}"
|
|
762
|
+
aria-label="${ifDefined_js.ifDefined(this.forwardedAriaLabel)}"
|
|
763
|
+
aria-labelledby="${ifDefined_js.ifDefined(this.forwardedAriaLabelledBy)}"
|
|
764
|
+
class="${this.buttonClasses}"
|
|
765
|
+
data-sp-button-native
|
|
766
|
+
href="${ifDefined_js.ifDefined(this.href)}"
|
|
767
|
+
id="${ifDefined_js.ifDefined(this.id || void 0)}"
|
|
768
|
+
rel="${ifDefined_js.ifDefined(this.rel || void 0)}"
|
|
769
|
+
target="${ifDefined_js.ifDefined(this.target || void 0)}"
|
|
770
|
+
title="${ifDefined_js.ifDefined(this.title || void 0)}"
|
|
771
|
+
>
|
|
772
|
+
${this.renderButtonContent()}
|
|
773
|
+
</a>`;
|
|
774
|
+
}
|
|
710
775
|
return lit.html`<button
|
|
711
776
|
aria-busy="${this.loading ? "true" : "false"}"
|
|
712
777
|
aria-describedby="${ifDefined_js.ifDefined(this.forwardedAriaDescribedBy)}"
|
|
713
778
|
aria-label="${ifDefined_js.ifDefined(this.forwardedAriaLabel)}"
|
|
714
779
|
aria-labelledby="${ifDefined_js.ifDefined(this.forwardedAriaLabelledBy)}"
|
|
715
780
|
?autofocus="${this.autofocus}"
|
|
781
|
+
aria-disabled="${ifDefined_js.ifDefined(this.href && this.isDisabled ? "true" : void 0)}"
|
|
716
782
|
class="${this.buttonClasses}"
|
|
717
783
|
data-sp-button-native
|
|
718
784
|
?disabled="${this.isDisabled}"
|
|
@@ -731,13 +797,16 @@ SpectreButtonElement.properties = {
|
|
|
731
797
|
disabled: { type: Boolean, reflect: true },
|
|
732
798
|
form: { type: String },
|
|
733
799
|
fullWidth: { attribute: "full-width", type: Boolean, reflect: true },
|
|
800
|
+
href: { type: String, reflect: true },
|
|
734
801
|
iconOnly: { attribute: "icon-only", type: Boolean, reflect: true },
|
|
735
802
|
label: { type: String, reflect: true },
|
|
736
803
|
loading: { type: Boolean, reflect: true },
|
|
737
804
|
loadingLabel: { attribute: "loading-label", type: String, reflect: true },
|
|
738
805
|
name: { type: String, reflect: true },
|
|
739
806
|
pill: { type: Boolean, reflect: true },
|
|
807
|
+
rel: { type: String },
|
|
740
808
|
size: { type: String, reflect: true },
|
|
809
|
+
target: { type: String },
|
|
741
810
|
type: { type: String, reflect: true },
|
|
742
811
|
variant: { type: String, reflect: true },
|
|
743
812
|
value: { type: String }
|
|
@@ -2710,6 +2779,7 @@ function defineSpectrePricingCard(tagName = "sp-pricing-card") {
|
|
|
2710
2779
|
var SpectreContainerElement = class extends SpectreProjectableElement {
|
|
2711
2780
|
constructor() {
|
|
2712
2781
|
super(...arguments);
|
|
2782
|
+
this.innerClass = void 0;
|
|
2713
2783
|
this.maxWidth = void 0;
|
|
2714
2784
|
}
|
|
2715
2785
|
get id() {
|
|
@@ -2724,6 +2794,11 @@ var SpectreContainerElement = class extends SpectreProjectableElement {
|
|
|
2724
2794
|
set title(value) {
|
|
2725
2795
|
super.title = value;
|
|
2726
2796
|
}
|
|
2797
|
+
connectedCallback() {
|
|
2798
|
+
var _a;
|
|
2799
|
+
super.connectedCallback();
|
|
2800
|
+
(_a = this.style).display || (_a.display = "block");
|
|
2801
|
+
}
|
|
2727
2802
|
getContentContainer() {
|
|
2728
2803
|
return this.querySelector("[data-sp-container-native]");
|
|
2729
2804
|
}
|
|
@@ -2740,9 +2815,11 @@ var SpectreContainerElement = class extends SpectreProjectableElement {
|
|
|
2740
2815
|
}
|
|
2741
2816
|
}
|
|
2742
2817
|
get containerClasses() {
|
|
2743
|
-
|
|
2818
|
+
const recipeClasses = spectreUi.getContainerClasses(
|
|
2744
2819
|
this.maxWidth != null ? { maxWidth: this.maxWidth } : {}
|
|
2745
2820
|
);
|
|
2821
|
+
const utilityClasses = sanitizeUtilityClasses(this.innerClass);
|
|
2822
|
+
return utilityClasses ? `${recipeClasses} ${utilityClasses}` : recipeClasses;
|
|
2746
2823
|
}
|
|
2747
2824
|
render() {
|
|
2748
2825
|
return lit.html`<div
|
|
@@ -2759,6 +2836,7 @@ var SpectreContainerElement = class extends SpectreProjectableElement {
|
|
|
2759
2836
|
}
|
|
2760
2837
|
};
|
|
2761
2838
|
SpectreContainerElement.properties = {
|
|
2839
|
+
innerClass: { attribute: "inner-class", type: String },
|
|
2762
2840
|
maxWidth: { attribute: "max-width", type: String, reflect: true }
|
|
2763
2841
|
};
|
|
2764
2842
|
function defineSpectreContainer(tagName = "sp-container") {
|
|
@@ -2774,6 +2852,7 @@ var SpectreGridElement = class extends SpectreProjectableElement {
|
|
|
2774
2852
|
super(...arguments);
|
|
2775
2853
|
this.columns = 1;
|
|
2776
2854
|
this.gap = "md";
|
|
2855
|
+
this.innerClass = void 0;
|
|
2777
2856
|
}
|
|
2778
2857
|
get id() {
|
|
2779
2858
|
return super.id;
|
|
@@ -2787,6 +2866,11 @@ var SpectreGridElement = class extends SpectreProjectableElement {
|
|
|
2787
2866
|
set title(value) {
|
|
2788
2867
|
super.title = value;
|
|
2789
2868
|
}
|
|
2869
|
+
connectedCallback() {
|
|
2870
|
+
var _a;
|
|
2871
|
+
super.connectedCallback();
|
|
2872
|
+
(_a = this.style).display || (_a.display = "block");
|
|
2873
|
+
}
|
|
2790
2874
|
getContentContainer() {
|
|
2791
2875
|
return this.querySelector("[data-sp-grid-native]");
|
|
2792
2876
|
}
|
|
@@ -2805,12 +2889,20 @@ var SpectreGridElement = class extends SpectreProjectableElement {
|
|
|
2805
2889
|
if (changedProperties.has("gap") && (this.gap == null || !isGridGap(this.gap))) {
|
|
2806
2890
|
this.gap = "md";
|
|
2807
2891
|
}
|
|
2892
|
+
if (changedProperties.has("span") && this.span !== void 0 && !isGridSpan(this.span) && !isGridSpanOptions(this.span)) {
|
|
2893
|
+
this.span = void 0;
|
|
2894
|
+
}
|
|
2808
2895
|
}
|
|
2809
2896
|
get gridClasses() {
|
|
2810
|
-
|
|
2897
|
+
const recipeClasses = spectreUi.getGridClasses({
|
|
2811
2898
|
columns: this.columns,
|
|
2812
|
-
gap: this.gap
|
|
2899
|
+
gap: this.gap,
|
|
2900
|
+
...this.span !== void 0 && {
|
|
2901
|
+
span: this.span
|
|
2902
|
+
}
|
|
2813
2903
|
});
|
|
2904
|
+
const utilityClasses = sanitizeUtilityClasses(this.innerClass);
|
|
2905
|
+
return utilityClasses ? `${recipeClasses} ${utilityClasses}` : recipeClasses;
|
|
2814
2906
|
}
|
|
2815
2907
|
render() {
|
|
2816
2908
|
return lit.html`<div
|
|
@@ -2828,7 +2920,9 @@ var SpectreGridElement = class extends SpectreProjectableElement {
|
|
|
2828
2920
|
};
|
|
2829
2921
|
SpectreGridElement.properties = {
|
|
2830
2922
|
columns: { type: Number, reflect: true },
|
|
2831
|
-
gap: { type: String, reflect: true }
|
|
2923
|
+
gap: { type: String, reflect: true },
|
|
2924
|
+
innerClass: { attribute: "inner-class", type: String },
|
|
2925
|
+
span: { type: Object }
|
|
2832
2926
|
};
|
|
2833
2927
|
function defineSpectreGrid(tagName = "sp-grid") {
|
|
2834
2928
|
const existingElement = customElements.get(tagName);
|
|
@@ -2839,6 +2933,10 @@ function defineSpectreGrid(tagName = "sp-grid") {
|
|
|
2839
2933
|
return SpectreGridElement;
|
|
2840
2934
|
}
|
|
2841
2935
|
var SpectreSectionElement = class extends SpectreProjectableElement {
|
|
2936
|
+
constructor() {
|
|
2937
|
+
super(...arguments);
|
|
2938
|
+
this.innerClass = void 0;
|
|
2939
|
+
}
|
|
2842
2940
|
get id() {
|
|
2843
2941
|
return super.id;
|
|
2844
2942
|
}
|
|
@@ -2851,6 +2949,11 @@ var SpectreSectionElement = class extends SpectreProjectableElement {
|
|
|
2851
2949
|
set title(value) {
|
|
2852
2950
|
super.title = value;
|
|
2853
2951
|
}
|
|
2952
|
+
connectedCallback() {
|
|
2953
|
+
var _a;
|
|
2954
|
+
super.connectedCallback();
|
|
2955
|
+
(_a = this.style).display || (_a.display = "block");
|
|
2956
|
+
}
|
|
2854
2957
|
getContentContainer() {
|
|
2855
2958
|
return this.querySelector("[data-sp-section-native]");
|
|
2856
2959
|
}
|
|
@@ -2862,7 +2965,9 @@ var SpectreSectionElement = class extends SpectreProjectableElement {
|
|
|
2862
2965
|
return el.hasAttribute("data-sp-section-native");
|
|
2863
2966
|
}
|
|
2864
2967
|
get sectionClasses() {
|
|
2865
|
-
|
|
2968
|
+
const recipeClasses = spectreUi.getSectionClasses({});
|
|
2969
|
+
const utilityClasses = sanitizeUtilityClasses(this.innerClass);
|
|
2970
|
+
return utilityClasses ? `${recipeClasses} ${utilityClasses}` : recipeClasses;
|
|
2866
2971
|
}
|
|
2867
2972
|
render() {
|
|
2868
2973
|
return lit.html`<section
|
|
@@ -2878,6 +2983,9 @@ var SpectreSectionElement = class extends SpectreProjectableElement {
|
|
|
2878
2983
|
</section>`;
|
|
2879
2984
|
}
|
|
2880
2985
|
};
|
|
2986
|
+
SpectreSectionElement.properties = {
|
|
2987
|
+
innerClass: { attribute: "inner-class", type: String }
|
|
2988
|
+
};
|
|
2881
2989
|
function defineSpectreSection(tagName = "sp-section") {
|
|
2882
2990
|
const existingElement = customElements.get(tagName);
|
|
2883
2991
|
if (existingElement) {
|
|
@@ -2892,6 +3000,7 @@ var SpectreStackElement = class extends SpectreProjectableElement {
|
|
|
2892
3000
|
this.align = "center";
|
|
2893
3001
|
this.basis = void 0;
|
|
2894
3002
|
this.direction = "vertical";
|
|
3003
|
+
this.innerClass = void 0;
|
|
2895
3004
|
}
|
|
2896
3005
|
get id() {
|
|
2897
3006
|
return super.id;
|
|
@@ -2905,6 +3014,11 @@ var SpectreStackElement = class extends SpectreProjectableElement {
|
|
|
2905
3014
|
set title(value) {
|
|
2906
3015
|
super.title = value;
|
|
2907
3016
|
}
|
|
3017
|
+
connectedCallback() {
|
|
3018
|
+
var _a;
|
|
3019
|
+
super.connectedCallback();
|
|
3020
|
+
(_a = this.style).display || (_a.display = "block");
|
|
3021
|
+
}
|
|
2908
3022
|
getContentContainer() {
|
|
2909
3023
|
return this.querySelector("[data-sp-stack-native]");
|
|
2910
3024
|
}
|
|
@@ -2927,11 +3041,13 @@ var SpectreStackElement = class extends SpectreProjectableElement {
|
|
|
2927
3041
|
}
|
|
2928
3042
|
}
|
|
2929
3043
|
get stackClasses() {
|
|
2930
|
-
|
|
3044
|
+
const recipeClasses = spectreUi.getStackClasses({
|
|
2931
3045
|
align: this.align,
|
|
2932
3046
|
direction: this.direction,
|
|
2933
3047
|
...this.basis != null ? { basis: this.basis } : {}
|
|
2934
3048
|
});
|
|
3049
|
+
const utilityClasses = sanitizeUtilityClasses(this.innerClass);
|
|
3050
|
+
return utilityClasses ? `${recipeClasses} ${utilityClasses}` : recipeClasses;
|
|
2935
3051
|
}
|
|
2936
3052
|
render() {
|
|
2937
3053
|
return lit.html`<div
|
|
@@ -2950,7 +3066,8 @@ var SpectreStackElement = class extends SpectreProjectableElement {
|
|
|
2950
3066
|
SpectreStackElement.properties = {
|
|
2951
3067
|
align: { type: String, reflect: true },
|
|
2952
3068
|
basis: { type: String, reflect: true },
|
|
2953
|
-
direction: { type: String, reflect: true }
|
|
3069
|
+
direction: { type: String, reflect: true },
|
|
3070
|
+
innerClass: { attribute: "inner-class", type: String }
|
|
2954
3071
|
};
|
|
2955
3072
|
function defineSpectreStack(tagName = "sp-stack") {
|
|
2956
3073
|
const existingElement = customElements.get(tagName);
|
|
@@ -2964,6 +3081,7 @@ var SpectreDropdownElement = class extends SpectreBaseElement {
|
|
|
2964
3081
|
constructor() {
|
|
2965
3082
|
super(...arguments);
|
|
2966
3083
|
this.fullWidth = false;
|
|
3084
|
+
this.mega = false;
|
|
2967
3085
|
this.open = false;
|
|
2968
3086
|
this.placement = "bottom-start";
|
|
2969
3087
|
this.triggerLabel = "Toggle menu";
|
|
@@ -3067,6 +3185,9 @@ var SpectreDropdownElement = class extends SpectreBaseElement {
|
|
|
3067
3185
|
if (changedProperties.has("fullWidth") && this.fullWidth == null) {
|
|
3068
3186
|
this.fullWidth = false;
|
|
3069
3187
|
}
|
|
3188
|
+
if (changedProperties.has("mega") && this.mega == null) {
|
|
3189
|
+
this.mega = false;
|
|
3190
|
+
}
|
|
3070
3191
|
if (changedProperties.has("open") && this.open == null) {
|
|
3071
3192
|
this.open = false;
|
|
3072
3193
|
}
|
|
@@ -3102,10 +3223,14 @@ var SpectreDropdownElement = class extends SpectreBaseElement {
|
|
|
3102
3223
|
this.dispatchEvent(new CustomEvent("sp-close", { bubbles: true }));
|
|
3103
3224
|
}
|
|
3104
3225
|
get dropdownClasses() {
|
|
3105
|
-
return spectreUi.getDropdownClasses({
|
|
3226
|
+
return spectreUi.getDropdownClasses({
|
|
3227
|
+
fullWidth: this.fullWidth ?? false,
|
|
3228
|
+
mega: this.mega ?? false
|
|
3229
|
+
});
|
|
3106
3230
|
}
|
|
3107
3231
|
get menuClasses() {
|
|
3108
3232
|
return spectreUi.getDropdownMenuClasses({
|
|
3233
|
+
mega: this.mega ?? false,
|
|
3109
3234
|
open: this.open ?? false,
|
|
3110
3235
|
placement: this.placement
|
|
3111
3236
|
});
|
|
@@ -3135,6 +3260,7 @@ var SpectreDropdownElement = class extends SpectreBaseElement {
|
|
|
3135
3260
|
};
|
|
3136
3261
|
SpectreDropdownElement.properties = {
|
|
3137
3262
|
fullWidth: { attribute: "full-width", type: Boolean, reflect: true },
|
|
3263
|
+
mega: { type: Boolean, reflect: true },
|
|
3138
3264
|
open: { type: Boolean, reflect: true },
|
|
3139
3265
|
placement: { type: String, reflect: true },
|
|
3140
3266
|
triggerLabel: { attribute: "trigger-label", type: String }
|
|
@@ -3152,6 +3278,7 @@ var SpectreFooterElement = class extends SpectreProjectableElement {
|
|
|
3152
3278
|
super(...arguments);
|
|
3153
3279
|
this.bordered = false;
|
|
3154
3280
|
this.fullWidth = false;
|
|
3281
|
+
this.innerClass = void 0;
|
|
3155
3282
|
}
|
|
3156
3283
|
get id() {
|
|
3157
3284
|
return super.id;
|
|
@@ -3165,6 +3292,11 @@ var SpectreFooterElement = class extends SpectreProjectableElement {
|
|
|
3165
3292
|
set title(value) {
|
|
3166
3293
|
super.title = value;
|
|
3167
3294
|
}
|
|
3295
|
+
connectedCallback() {
|
|
3296
|
+
var _a;
|
|
3297
|
+
super.connectedCallback();
|
|
3298
|
+
(_a = this.style).display || (_a.display = "block");
|
|
3299
|
+
}
|
|
3168
3300
|
getContentContainer() {
|
|
3169
3301
|
return this.querySelector("[data-sp-footer-native]");
|
|
3170
3302
|
}
|
|
@@ -3184,10 +3316,12 @@ var SpectreFooterElement = class extends SpectreProjectableElement {
|
|
|
3184
3316
|
}
|
|
3185
3317
|
}
|
|
3186
3318
|
get footerClasses() {
|
|
3187
|
-
|
|
3319
|
+
const recipeClasses = spectreUi.getFooterClasses({
|
|
3188
3320
|
bordered: this.bordered ?? false,
|
|
3189
3321
|
fullWidth: this.fullWidth ?? false
|
|
3190
3322
|
});
|
|
3323
|
+
const utilityClasses = sanitizeUtilityClasses(this.innerClass);
|
|
3324
|
+
return utilityClasses ? `${recipeClasses} ${utilityClasses}` : recipeClasses;
|
|
3191
3325
|
}
|
|
3192
3326
|
render() {
|
|
3193
3327
|
return lit.html`<footer
|
|
@@ -3203,7 +3337,8 @@ var SpectreFooterElement = class extends SpectreProjectableElement {
|
|
|
3203
3337
|
};
|
|
3204
3338
|
SpectreFooterElement.properties = {
|
|
3205
3339
|
bordered: { type: Boolean, reflect: true },
|
|
3206
|
-
fullWidth: { attribute: "full-width", type: Boolean, reflect: true }
|
|
3340
|
+
fullWidth: { attribute: "full-width", type: Boolean, reflect: true },
|
|
3341
|
+
innerClass: { attribute: "inner-class", type: String }
|
|
3207
3342
|
};
|
|
3208
3343
|
function defineSpectreFooter(tagName = "sp-footer") {
|
|
3209
3344
|
const existingElement = customElements.get(tagName);
|
|
@@ -3385,6 +3520,7 @@ var SpectreNavElement = class extends SpectreProjectableElement {
|
|
|
3385
3520
|
super(...arguments);
|
|
3386
3521
|
this.bordered = false;
|
|
3387
3522
|
this.fullWidth = false;
|
|
3523
|
+
this.innerClass = void 0;
|
|
3388
3524
|
this.sticky = false;
|
|
3389
3525
|
}
|
|
3390
3526
|
get id() {
|
|
@@ -3399,6 +3535,11 @@ var SpectreNavElement = class extends SpectreProjectableElement {
|
|
|
3399
3535
|
set title(value) {
|
|
3400
3536
|
super.title = value;
|
|
3401
3537
|
}
|
|
3538
|
+
connectedCallback() {
|
|
3539
|
+
var _a;
|
|
3540
|
+
super.connectedCallback();
|
|
3541
|
+
(_a = this.style).display || (_a.display = "block");
|
|
3542
|
+
}
|
|
3402
3543
|
getContentContainer() {
|
|
3403
3544
|
return this.querySelector("[data-sp-nav-native]");
|
|
3404
3545
|
}
|
|
@@ -3421,11 +3562,13 @@ var SpectreNavElement = class extends SpectreProjectableElement {
|
|
|
3421
3562
|
}
|
|
3422
3563
|
}
|
|
3423
3564
|
get navClasses() {
|
|
3424
|
-
|
|
3565
|
+
const recipeClasses = spectreUi.getNavClasses({
|
|
3425
3566
|
bordered: this.bordered ?? false,
|
|
3426
3567
|
fullWidth: this.fullWidth ?? false,
|
|
3427
3568
|
sticky: this.sticky ?? false
|
|
3428
3569
|
});
|
|
3570
|
+
const utilityClasses = sanitizeUtilityClasses(this.innerClass);
|
|
3571
|
+
return utilityClasses ? `${recipeClasses} ${utilityClasses}` : recipeClasses;
|
|
3429
3572
|
}
|
|
3430
3573
|
render() {
|
|
3431
3574
|
return lit.html`<nav
|
|
@@ -3442,6 +3585,7 @@ var SpectreNavElement = class extends SpectreProjectableElement {
|
|
|
3442
3585
|
SpectreNavElement.properties = {
|
|
3443
3586
|
bordered: { type: Boolean, reflect: true },
|
|
3444
3587
|
fullWidth: { attribute: "full-width", type: Boolean, reflect: true },
|
|
3588
|
+
innerClass: { attribute: "inner-class", type: String },
|
|
3445
3589
|
sticky: { type: Boolean, reflect: true }
|
|
3446
3590
|
};
|
|
3447
3591
|
function defineSpectreNav(tagName = "sp-nav") {
|
|
@@ -3458,6 +3602,7 @@ var SpectreNavItemElement = class extends SpectreBaseElement {
|
|
|
3458
3602
|
this.dropdown = false;
|
|
3459
3603
|
this.href = void 0;
|
|
3460
3604
|
this.label = void 0;
|
|
3605
|
+
this.mega = false;
|
|
3461
3606
|
this.open = false;
|
|
3462
3607
|
this.placement = "bottom-start";
|
|
3463
3608
|
this.triggerContent = [];
|
|
@@ -3560,6 +3705,9 @@ var SpectreNavItemElement = class extends SpectreBaseElement {
|
|
|
3560
3705
|
if (changedProperties.has("dropdown") && this.dropdown == null) {
|
|
3561
3706
|
this.dropdown = false;
|
|
3562
3707
|
}
|
|
3708
|
+
if (changedProperties.has("mega") && this.mega == null) {
|
|
3709
|
+
this.mega = false;
|
|
3710
|
+
}
|
|
3563
3711
|
if (changedProperties.has("open") && this.open == null) {
|
|
3564
3712
|
this.open = false;
|
|
3565
3713
|
}
|
|
@@ -3592,10 +3740,11 @@ var SpectreNavItemElement = class extends SpectreBaseElement {
|
|
|
3592
3740
|
this.dispatchEvent(new CustomEvent("sp-close", { bubbles: true }));
|
|
3593
3741
|
}
|
|
3594
3742
|
get wrapperClasses() {
|
|
3595
|
-
return spectreUi.getDropdownClasses();
|
|
3743
|
+
return spectreUi.getDropdownClasses({ mega: this.mega ?? false });
|
|
3596
3744
|
}
|
|
3597
3745
|
get menuClasses() {
|
|
3598
3746
|
return spectreUi.getDropdownMenuClasses({
|
|
3747
|
+
mega: this.mega ?? false,
|
|
3599
3748
|
open: this.open ?? false,
|
|
3600
3749
|
placement: this.placement
|
|
3601
3750
|
});
|
|
@@ -3643,6 +3792,7 @@ SpectreNavItemElement.properties = {
|
|
|
3643
3792
|
dropdown: { type: Boolean, reflect: true },
|
|
3644
3793
|
href: { type: String },
|
|
3645
3794
|
label: { type: String },
|
|
3795
|
+
mega: { type: Boolean, reflect: true },
|
|
3646
3796
|
open: { type: Boolean, reflect: true },
|
|
3647
3797
|
placement: { type: String, reflect: true }
|
|
3648
3798
|
};
|
|
@@ -3658,6 +3808,7 @@ var SpectreSidebarElement = class extends SpectreProjectableElement {
|
|
|
3658
3808
|
constructor() {
|
|
3659
3809
|
super(...arguments);
|
|
3660
3810
|
this.bordered = false;
|
|
3811
|
+
this.hideToggle = false;
|
|
3661
3812
|
this.open = false;
|
|
3662
3813
|
this.toggleLabel = "Toggle sidebar";
|
|
3663
3814
|
this.handleDocumentKeydown = (event) => {
|
|
@@ -3692,6 +3843,9 @@ var SpectreSidebarElement = class extends SpectreProjectableElement {
|
|
|
3692
3843
|
if (changedProperties.has("bordered") && this.bordered == null) {
|
|
3693
3844
|
this.bordered = false;
|
|
3694
3845
|
}
|
|
3846
|
+
if (changedProperties.has("hideToggle") && this.hideToggle == null) {
|
|
3847
|
+
this.hideToggle = false;
|
|
3848
|
+
}
|
|
3695
3849
|
if (changedProperties.has("open") && this.open == null) {
|
|
3696
3850
|
this.open = false;
|
|
3697
3851
|
}
|
|
@@ -3744,16 +3898,16 @@ var SpectreSidebarElement = class extends SpectreProjectableElement {
|
|
|
3744
3898
|
return spectreUi.getSidebarClasses({ bordered: this.bordered ?? false });
|
|
3745
3899
|
}
|
|
3746
3900
|
render() {
|
|
3747
|
-
return lit.html`<button
|
|
3748
|
-
|
|
3749
|
-
|
|
3750
|
-
|
|
3751
|
-
|
|
3752
|
-
|
|
3753
|
-
|
|
3754
|
-
|
|
3755
|
-
|
|
3756
|
-
|
|
3901
|
+
return lit.html`${this.hideToggle ? lit.nothing : lit.html`<button
|
|
3902
|
+
aria-expanded="${this.open ? "true" : "false"}"
|
|
3903
|
+
aria-label="${ifDefined_js.ifDefined(this.toggleLabel)}"
|
|
3904
|
+
class="${spectreUi.getSidebarToggleClasses()}"
|
|
3905
|
+
data-sp-sidebar-toggle
|
|
3906
|
+
type="button"
|
|
3907
|
+
@click="${() => this.toggle()}"
|
|
3908
|
+
>
|
|
3909
|
+
☰
|
|
3910
|
+
</button>`}
|
|
3757
3911
|
<div
|
|
3758
3912
|
class="${spectreUi.getSidebarBackdropClasses()}"
|
|
3759
3913
|
data-sp-sidebar-backdrop
|
|
@@ -3772,6 +3926,7 @@ var SpectreSidebarElement = class extends SpectreProjectableElement {
|
|
|
3772
3926
|
};
|
|
3773
3927
|
SpectreSidebarElement.properties = {
|
|
3774
3928
|
bordered: { type: Boolean, reflect: true },
|
|
3929
|
+
hideToggle: { attribute: "hide-toggle", type: Boolean, reflect: true },
|
|
3775
3930
|
open: { type: Boolean, reflect: false },
|
|
3776
3931
|
toggleLabel: { attribute: "toggle-label", type: String }
|
|
3777
3932
|
};
|
|
@@ -3783,6 +3938,119 @@ function defineSpectreSidebar(tagName = "sp-sidebar") {
|
|
|
3783
3938
|
customElements.define(tagName, SpectreSidebarElement);
|
|
3784
3939
|
return SpectreSidebarElement;
|
|
3785
3940
|
}
|
|
3941
|
+
var SpectreSidebarToggleElement = class extends SpectreProjectableElement {
|
|
3942
|
+
constructor() {
|
|
3943
|
+
super(...arguments);
|
|
3944
|
+
this.for = void 0;
|
|
3945
|
+
this.label = "Toggle sidebar";
|
|
3946
|
+
this.expanded = false;
|
|
3947
|
+
this.handleTargetToggle = (event) => {
|
|
3948
|
+
if (event.target !== this.targetElement) {
|
|
3949
|
+
return;
|
|
3950
|
+
}
|
|
3951
|
+
this.syncExpanded();
|
|
3952
|
+
};
|
|
3953
|
+
}
|
|
3954
|
+
get id() {
|
|
3955
|
+
return super.id;
|
|
3956
|
+
}
|
|
3957
|
+
set id(value) {
|
|
3958
|
+
super.id = value;
|
|
3959
|
+
}
|
|
3960
|
+
get title() {
|
|
3961
|
+
return super.title;
|
|
3962
|
+
}
|
|
3963
|
+
set title(value) {
|
|
3964
|
+
super.title = value;
|
|
3965
|
+
}
|
|
3966
|
+
getContentContainer() {
|
|
3967
|
+
return this.querySelector("[data-sp-sidebar-toggle-native]");
|
|
3968
|
+
}
|
|
3969
|
+
isInternalNode(node) {
|
|
3970
|
+
if (node.nodeType !== Node.ELEMENT_NODE) {
|
|
3971
|
+
return false;
|
|
3972
|
+
}
|
|
3973
|
+
const el = node;
|
|
3974
|
+
return el.hasAttribute("data-sp-sidebar-toggle-native");
|
|
3975
|
+
}
|
|
3976
|
+
willUpdate(changedProperties) {
|
|
3977
|
+
if (changedProperties.has("label") && !this.label) {
|
|
3978
|
+
this.label = "Toggle sidebar";
|
|
3979
|
+
}
|
|
3980
|
+
}
|
|
3981
|
+
connectedCallback() {
|
|
3982
|
+
super.connectedCallback();
|
|
3983
|
+
document.addEventListener("sp-open", this.handleTargetToggle);
|
|
3984
|
+
document.addEventListener("sp-close", this.handleTargetToggle);
|
|
3985
|
+
this.syncExpanded();
|
|
3986
|
+
}
|
|
3987
|
+
disconnectedCallback() {
|
|
3988
|
+
document.removeEventListener("sp-open", this.handleTargetToggle);
|
|
3989
|
+
document.removeEventListener("sp-close", this.handleTargetToggle);
|
|
3990
|
+
super.disconnectedCallback();
|
|
3991
|
+
}
|
|
3992
|
+
updated(changedProperties) {
|
|
3993
|
+
super.updated(changedProperties);
|
|
3994
|
+
if (changedProperties.has("for")) {
|
|
3995
|
+
this.syncExpanded();
|
|
3996
|
+
}
|
|
3997
|
+
}
|
|
3998
|
+
get targetElement() {
|
|
3999
|
+
if (!this.for) {
|
|
4000
|
+
return null;
|
|
4001
|
+
}
|
|
4002
|
+
const native = document.getElementById(this.for);
|
|
4003
|
+
return native?.closest("sp-sidebar") ?? null;
|
|
4004
|
+
}
|
|
4005
|
+
syncExpanded() {
|
|
4006
|
+
const next = Boolean(this.targetElement?.open);
|
|
4007
|
+
if (next !== this.expanded) {
|
|
4008
|
+
this.expanded = next;
|
|
4009
|
+
this.requestUpdate();
|
|
4010
|
+
}
|
|
4011
|
+
}
|
|
4012
|
+
handleClick() {
|
|
4013
|
+
const target = this.targetElement;
|
|
4014
|
+
if (!target) {
|
|
4015
|
+
return;
|
|
4016
|
+
}
|
|
4017
|
+
const nextOpen = !target.open;
|
|
4018
|
+
target.open = nextOpen;
|
|
4019
|
+
target.dispatchEvent(
|
|
4020
|
+
new CustomEvent(nextOpen ? "sp-open" : "sp-close", { bubbles: true })
|
|
4021
|
+
);
|
|
4022
|
+
}
|
|
4023
|
+
get toggleClasses() {
|
|
4024
|
+
return spectreUi.getSidebarToggleClasses();
|
|
4025
|
+
}
|
|
4026
|
+
render() {
|
|
4027
|
+
return lit.html`<button
|
|
4028
|
+
aria-controls="${ifDefined_js.ifDefined(this.for)}"
|
|
4029
|
+
aria-expanded="${this.expanded ? "true" : "false"}"
|
|
4030
|
+
aria-label="${ifDefined_js.ifDefined(this.forwardedAriaLabel ?? this.label)}"
|
|
4031
|
+
class="${this.toggleClasses}"
|
|
4032
|
+
data-sp-sidebar-toggle-native
|
|
4033
|
+
id="${ifDefined_js.ifDefined(this.id || void 0)}"
|
|
4034
|
+
title="${ifDefined_js.ifDefined(this.title || void 0)}"
|
|
4035
|
+
type="button"
|
|
4036
|
+
@click="${() => this.handleClick()}"
|
|
4037
|
+
>
|
|
4038
|
+
${this.hasProjectedContent ? this.projectedContent : lit.html`☰`}
|
|
4039
|
+
</button>`;
|
|
4040
|
+
}
|
|
4041
|
+
};
|
|
4042
|
+
SpectreSidebarToggleElement.properties = {
|
|
4043
|
+
for: { type: String },
|
|
4044
|
+
label: { type: String }
|
|
4045
|
+
};
|
|
4046
|
+
function defineSpectreSidebarToggle(tagName = "sp-sidebar-toggle") {
|
|
4047
|
+
const existingElement = customElements.get(tagName);
|
|
4048
|
+
if (existingElement) {
|
|
4049
|
+
return existingElement;
|
|
4050
|
+
}
|
|
4051
|
+
customElements.define(tagName, SpectreSidebarToggleElement);
|
|
4052
|
+
return SpectreSidebarToggleElement;
|
|
4053
|
+
}
|
|
3786
4054
|
var SpectreToastElement = class extends SpectreBaseElement {
|
|
3787
4055
|
constructor() {
|
|
3788
4056
|
super(...arguments);
|
|
@@ -4130,6 +4398,9 @@ var SpectreTextElement = class extends SpectreProjectableElement {
|
|
|
4130
4398
|
if (changedProperties.has("variant") && !isTextVariant(this.variant)) {
|
|
4131
4399
|
this.variant = "default";
|
|
4132
4400
|
}
|
|
4401
|
+
if (changedProperties.has("transform") && this.transform !== void 0 && !isTextTransform(this.transform)) {
|
|
4402
|
+
this.transform = void 0;
|
|
4403
|
+
}
|
|
4133
4404
|
}
|
|
4134
4405
|
get id() {
|
|
4135
4406
|
return super.id;
|
|
@@ -4158,6 +4429,7 @@ var SpectreTextElement = class extends SpectreProjectableElement {
|
|
|
4158
4429
|
const textClasses = spectreUi.getTextClasses({
|
|
4159
4430
|
...this.family !== void 0 && { family: this.family },
|
|
4160
4431
|
size: this.size ?? "md",
|
|
4432
|
+
...this.transform !== void 0 && { transform: this.transform },
|
|
4161
4433
|
variant: this.variant ?? "default"
|
|
4162
4434
|
});
|
|
4163
4435
|
return staticHtml_js.html`<${tag}
|
|
@@ -4175,6 +4447,7 @@ SpectreTextElement.properties = {
|
|
|
4175
4447
|
family: { type: String, reflect: true },
|
|
4176
4448
|
level: { type: String, reflect: true },
|
|
4177
4449
|
size: { type: String, reflect: true },
|
|
4450
|
+
transform: { type: String, reflect: true },
|
|
4178
4451
|
variant: { type: String, reflect: true }
|
|
4179
4452
|
};
|
|
4180
4453
|
function defineSpectreText(tagName = "sp-text") {
|
|
@@ -4216,6 +4489,7 @@ function defineSpectreComponents() {
|
|
|
4216
4489
|
defineSpectreNav();
|
|
4217
4490
|
defineSpectreNavItem();
|
|
4218
4491
|
defineSpectreSidebar();
|
|
4492
|
+
defineSpectreSidebarToggle();
|
|
4219
4493
|
defineSpectreToast();
|
|
4220
4494
|
defineSpectreTooltip();
|
|
4221
4495
|
defineSpectreText();
|
|
@@ -4244,6 +4518,7 @@ exports.SpectreRatingElement = SpectreRatingElement;
|
|
|
4244
4518
|
exports.SpectreSectionElement = SpectreSectionElement;
|
|
4245
4519
|
exports.SpectreSelectElement = SpectreSelectElement;
|
|
4246
4520
|
exports.SpectreSidebarElement = SpectreSidebarElement;
|
|
4521
|
+
exports.SpectreSidebarToggleElement = SpectreSidebarToggleElement;
|
|
4247
4522
|
exports.SpectreSpinnerElement = SpectreSpinnerElement;
|
|
4248
4523
|
exports.SpectreStackElement = SpectreStackElement;
|
|
4249
4524
|
exports.SpectreTagElement = SpectreTagElement;
|
|
@@ -4276,6 +4551,7 @@ exports.defineSpectreRating = defineSpectreRating;
|
|
|
4276
4551
|
exports.defineSpectreSection = defineSpectreSection;
|
|
4277
4552
|
exports.defineSpectreSelect = defineSpectreSelect;
|
|
4278
4553
|
exports.defineSpectreSidebar = defineSpectreSidebar;
|
|
4554
|
+
exports.defineSpectreSidebarToggle = defineSpectreSidebarToggle;
|
|
4279
4555
|
exports.defineSpectreSpinner = defineSpectreSpinner;
|
|
4280
4556
|
exports.defineSpectreStack = defineSpectreStack;
|
|
4281
4557
|
exports.defineSpectreTag = defineSpectreTag;
|