@phcdevworks/spectre-components 1.14.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 +165 -80
- package/dist/alert.cjs.map +1 -1
- package/dist/alert.js.map +1 -1
- package/dist/avatar.cjs.map +1 -1
- package/dist/avatar.js.map +1 -1
- package/dist/badge.cjs.map +1 -1
- package/dist/badge.js.map +1 -1
- package/dist/button.cjs.map +1 -1
- package/dist/button.js.map +1 -1
- package/dist/card.cjs.map +1 -1
- 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 +7 -0
- package/dist/container.d.ts +7 -0
- 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 +6 -0
- package/dist/dropdown.d.ts +6 -0
- 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/grid.cjs +17 -1
- package/dist/grid.cjs.map +1 -1
- package/dist/grid.d.cts +7 -0
- package/dist/grid.d.ts +7 -0
- package/dist/grid.js +17 -1
- package/dist/grid.js.map +1 -1
- package/dist/icon-box.cjs.map +1 -1
- package/dist/icon-box.js.map +1 -1
- package/dist/index.cjs +222 -20
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +222 -22
- package/dist/index.js.map +1 -1
- package/dist/input.cjs.map +1 -1
- 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 +6 -0
- package/dist/nav-item.d.ts +6 -0
- 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.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.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.js.map +1 -1
- package/dist/stack.cjs +18 -2
- package/dist/stack.cjs.map +1 -1
- package/dist/stack.d.cts +7 -0
- package/dist/stack.d.ts +7 -0
- package/dist/stack.js +18 -2
- package/dist/stack.js.map +1 -1
- package/dist/tag.cjs.map +1 -1
- package/dist/tag.js.map +1 -1
- package/dist/testimonial.cjs.map +1 -1
- package/dist/testimonial.js.map +1 -1
- package/dist/text.cjs.map +1 -1
- package/dist/text.js.map +1 -1
- package/dist/textarea.cjs.map +1 -1
- package/dist/textarea.js.map +1 -1
- package/dist/toast.cjs.map +1 -1
- package/dist/toast.js.map +1 -1
- package/dist/tooltip.cjs.map +1 -1
- package/dist/tooltip.js.map +1 -1
- package/package.json +14 -9
package/dist/index.cjs
CHANGED
|
@@ -290,6 +290,13 @@ function normalizeInt(value, fallback, min = 0) {
|
|
|
290
290
|
}
|
|
291
291
|
return value;
|
|
292
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
|
+
}
|
|
293
300
|
var SpectreBaseElement = class extends lit.LitElement {
|
|
294
301
|
constructor() {
|
|
295
302
|
super(...arguments);
|
|
@@ -2772,6 +2779,7 @@ function defineSpectrePricingCard(tagName = "sp-pricing-card") {
|
|
|
2772
2779
|
var SpectreContainerElement = class extends SpectreProjectableElement {
|
|
2773
2780
|
constructor() {
|
|
2774
2781
|
super(...arguments);
|
|
2782
|
+
this.innerClass = void 0;
|
|
2775
2783
|
this.maxWidth = void 0;
|
|
2776
2784
|
}
|
|
2777
2785
|
get id() {
|
|
@@ -2786,6 +2794,11 @@ var SpectreContainerElement = class extends SpectreProjectableElement {
|
|
|
2786
2794
|
set title(value) {
|
|
2787
2795
|
super.title = value;
|
|
2788
2796
|
}
|
|
2797
|
+
connectedCallback() {
|
|
2798
|
+
var _a;
|
|
2799
|
+
super.connectedCallback();
|
|
2800
|
+
(_a = this.style).display || (_a.display = "block");
|
|
2801
|
+
}
|
|
2789
2802
|
getContentContainer() {
|
|
2790
2803
|
return this.querySelector("[data-sp-container-native]");
|
|
2791
2804
|
}
|
|
@@ -2802,9 +2815,11 @@ var SpectreContainerElement = class extends SpectreProjectableElement {
|
|
|
2802
2815
|
}
|
|
2803
2816
|
}
|
|
2804
2817
|
get containerClasses() {
|
|
2805
|
-
|
|
2818
|
+
const recipeClasses = spectreUi.getContainerClasses(
|
|
2806
2819
|
this.maxWidth != null ? { maxWidth: this.maxWidth } : {}
|
|
2807
2820
|
);
|
|
2821
|
+
const utilityClasses = sanitizeUtilityClasses(this.innerClass);
|
|
2822
|
+
return utilityClasses ? `${recipeClasses} ${utilityClasses}` : recipeClasses;
|
|
2808
2823
|
}
|
|
2809
2824
|
render() {
|
|
2810
2825
|
return lit.html`<div
|
|
@@ -2821,6 +2836,7 @@ var SpectreContainerElement = class extends SpectreProjectableElement {
|
|
|
2821
2836
|
}
|
|
2822
2837
|
};
|
|
2823
2838
|
SpectreContainerElement.properties = {
|
|
2839
|
+
innerClass: { attribute: "inner-class", type: String },
|
|
2824
2840
|
maxWidth: { attribute: "max-width", type: String, reflect: true }
|
|
2825
2841
|
};
|
|
2826
2842
|
function defineSpectreContainer(tagName = "sp-container") {
|
|
@@ -2836,6 +2852,7 @@ var SpectreGridElement = class extends SpectreProjectableElement {
|
|
|
2836
2852
|
super(...arguments);
|
|
2837
2853
|
this.columns = 1;
|
|
2838
2854
|
this.gap = "md";
|
|
2855
|
+
this.innerClass = void 0;
|
|
2839
2856
|
}
|
|
2840
2857
|
get id() {
|
|
2841
2858
|
return super.id;
|
|
@@ -2849,6 +2866,11 @@ var SpectreGridElement = class extends SpectreProjectableElement {
|
|
|
2849
2866
|
set title(value) {
|
|
2850
2867
|
super.title = value;
|
|
2851
2868
|
}
|
|
2869
|
+
connectedCallback() {
|
|
2870
|
+
var _a;
|
|
2871
|
+
super.connectedCallback();
|
|
2872
|
+
(_a = this.style).display || (_a.display = "block");
|
|
2873
|
+
}
|
|
2852
2874
|
getContentContainer() {
|
|
2853
2875
|
return this.querySelector("[data-sp-grid-native]");
|
|
2854
2876
|
}
|
|
@@ -2872,13 +2894,15 @@ var SpectreGridElement = class extends SpectreProjectableElement {
|
|
|
2872
2894
|
}
|
|
2873
2895
|
}
|
|
2874
2896
|
get gridClasses() {
|
|
2875
|
-
|
|
2897
|
+
const recipeClasses = spectreUi.getGridClasses({
|
|
2876
2898
|
columns: this.columns,
|
|
2877
2899
|
gap: this.gap,
|
|
2878
2900
|
...this.span !== void 0 && {
|
|
2879
2901
|
span: this.span
|
|
2880
2902
|
}
|
|
2881
2903
|
});
|
|
2904
|
+
const utilityClasses = sanitizeUtilityClasses(this.innerClass);
|
|
2905
|
+
return utilityClasses ? `${recipeClasses} ${utilityClasses}` : recipeClasses;
|
|
2882
2906
|
}
|
|
2883
2907
|
render() {
|
|
2884
2908
|
return lit.html`<div
|
|
@@ -2897,6 +2921,7 @@ var SpectreGridElement = class extends SpectreProjectableElement {
|
|
|
2897
2921
|
SpectreGridElement.properties = {
|
|
2898
2922
|
columns: { type: Number, reflect: true },
|
|
2899
2923
|
gap: { type: String, reflect: true },
|
|
2924
|
+
innerClass: { attribute: "inner-class", type: String },
|
|
2900
2925
|
span: { type: Object }
|
|
2901
2926
|
};
|
|
2902
2927
|
function defineSpectreGrid(tagName = "sp-grid") {
|
|
@@ -2908,6 +2933,10 @@ function defineSpectreGrid(tagName = "sp-grid") {
|
|
|
2908
2933
|
return SpectreGridElement;
|
|
2909
2934
|
}
|
|
2910
2935
|
var SpectreSectionElement = class extends SpectreProjectableElement {
|
|
2936
|
+
constructor() {
|
|
2937
|
+
super(...arguments);
|
|
2938
|
+
this.innerClass = void 0;
|
|
2939
|
+
}
|
|
2911
2940
|
get id() {
|
|
2912
2941
|
return super.id;
|
|
2913
2942
|
}
|
|
@@ -2920,6 +2949,11 @@ var SpectreSectionElement = class extends SpectreProjectableElement {
|
|
|
2920
2949
|
set title(value) {
|
|
2921
2950
|
super.title = value;
|
|
2922
2951
|
}
|
|
2952
|
+
connectedCallback() {
|
|
2953
|
+
var _a;
|
|
2954
|
+
super.connectedCallback();
|
|
2955
|
+
(_a = this.style).display || (_a.display = "block");
|
|
2956
|
+
}
|
|
2923
2957
|
getContentContainer() {
|
|
2924
2958
|
return this.querySelector("[data-sp-section-native]");
|
|
2925
2959
|
}
|
|
@@ -2931,7 +2965,9 @@ var SpectreSectionElement = class extends SpectreProjectableElement {
|
|
|
2931
2965
|
return el.hasAttribute("data-sp-section-native");
|
|
2932
2966
|
}
|
|
2933
2967
|
get sectionClasses() {
|
|
2934
|
-
|
|
2968
|
+
const recipeClasses = spectreUi.getSectionClasses({});
|
|
2969
|
+
const utilityClasses = sanitizeUtilityClasses(this.innerClass);
|
|
2970
|
+
return utilityClasses ? `${recipeClasses} ${utilityClasses}` : recipeClasses;
|
|
2935
2971
|
}
|
|
2936
2972
|
render() {
|
|
2937
2973
|
return lit.html`<section
|
|
@@ -2947,6 +2983,9 @@ var SpectreSectionElement = class extends SpectreProjectableElement {
|
|
|
2947
2983
|
</section>`;
|
|
2948
2984
|
}
|
|
2949
2985
|
};
|
|
2986
|
+
SpectreSectionElement.properties = {
|
|
2987
|
+
innerClass: { attribute: "inner-class", type: String }
|
|
2988
|
+
};
|
|
2950
2989
|
function defineSpectreSection(tagName = "sp-section") {
|
|
2951
2990
|
const existingElement = customElements.get(tagName);
|
|
2952
2991
|
if (existingElement) {
|
|
@@ -2961,6 +3000,7 @@ var SpectreStackElement = class extends SpectreProjectableElement {
|
|
|
2961
3000
|
this.align = "center";
|
|
2962
3001
|
this.basis = void 0;
|
|
2963
3002
|
this.direction = "vertical";
|
|
3003
|
+
this.innerClass = void 0;
|
|
2964
3004
|
}
|
|
2965
3005
|
get id() {
|
|
2966
3006
|
return super.id;
|
|
@@ -2974,6 +3014,11 @@ var SpectreStackElement = class extends SpectreProjectableElement {
|
|
|
2974
3014
|
set title(value) {
|
|
2975
3015
|
super.title = value;
|
|
2976
3016
|
}
|
|
3017
|
+
connectedCallback() {
|
|
3018
|
+
var _a;
|
|
3019
|
+
super.connectedCallback();
|
|
3020
|
+
(_a = this.style).display || (_a.display = "block");
|
|
3021
|
+
}
|
|
2977
3022
|
getContentContainer() {
|
|
2978
3023
|
return this.querySelector("[data-sp-stack-native]");
|
|
2979
3024
|
}
|
|
@@ -2996,11 +3041,13 @@ var SpectreStackElement = class extends SpectreProjectableElement {
|
|
|
2996
3041
|
}
|
|
2997
3042
|
}
|
|
2998
3043
|
get stackClasses() {
|
|
2999
|
-
|
|
3044
|
+
const recipeClasses = spectreUi.getStackClasses({
|
|
3000
3045
|
align: this.align,
|
|
3001
3046
|
direction: this.direction,
|
|
3002
3047
|
...this.basis != null ? { basis: this.basis } : {}
|
|
3003
3048
|
});
|
|
3049
|
+
const utilityClasses = sanitizeUtilityClasses(this.innerClass);
|
|
3050
|
+
return utilityClasses ? `${recipeClasses} ${utilityClasses}` : recipeClasses;
|
|
3004
3051
|
}
|
|
3005
3052
|
render() {
|
|
3006
3053
|
return lit.html`<div
|
|
@@ -3019,7 +3066,8 @@ var SpectreStackElement = class extends SpectreProjectableElement {
|
|
|
3019
3066
|
SpectreStackElement.properties = {
|
|
3020
3067
|
align: { type: String, reflect: true },
|
|
3021
3068
|
basis: { type: String, reflect: true },
|
|
3022
|
-
direction: { type: String, reflect: true }
|
|
3069
|
+
direction: { type: String, reflect: true },
|
|
3070
|
+
innerClass: { attribute: "inner-class", type: String }
|
|
3023
3071
|
};
|
|
3024
3072
|
function defineSpectreStack(tagName = "sp-stack") {
|
|
3025
3073
|
const existingElement = customElements.get(tagName);
|
|
@@ -3033,6 +3081,7 @@ var SpectreDropdownElement = class extends SpectreBaseElement {
|
|
|
3033
3081
|
constructor() {
|
|
3034
3082
|
super(...arguments);
|
|
3035
3083
|
this.fullWidth = false;
|
|
3084
|
+
this.mega = false;
|
|
3036
3085
|
this.open = false;
|
|
3037
3086
|
this.placement = "bottom-start";
|
|
3038
3087
|
this.triggerLabel = "Toggle menu";
|
|
@@ -3136,6 +3185,9 @@ var SpectreDropdownElement = class extends SpectreBaseElement {
|
|
|
3136
3185
|
if (changedProperties.has("fullWidth") && this.fullWidth == null) {
|
|
3137
3186
|
this.fullWidth = false;
|
|
3138
3187
|
}
|
|
3188
|
+
if (changedProperties.has("mega") && this.mega == null) {
|
|
3189
|
+
this.mega = false;
|
|
3190
|
+
}
|
|
3139
3191
|
if (changedProperties.has("open") && this.open == null) {
|
|
3140
3192
|
this.open = false;
|
|
3141
3193
|
}
|
|
@@ -3171,10 +3223,14 @@ var SpectreDropdownElement = class extends SpectreBaseElement {
|
|
|
3171
3223
|
this.dispatchEvent(new CustomEvent("sp-close", { bubbles: true }));
|
|
3172
3224
|
}
|
|
3173
3225
|
get dropdownClasses() {
|
|
3174
|
-
return spectreUi.getDropdownClasses({
|
|
3226
|
+
return spectreUi.getDropdownClasses({
|
|
3227
|
+
fullWidth: this.fullWidth ?? false,
|
|
3228
|
+
mega: this.mega ?? false
|
|
3229
|
+
});
|
|
3175
3230
|
}
|
|
3176
3231
|
get menuClasses() {
|
|
3177
3232
|
return spectreUi.getDropdownMenuClasses({
|
|
3233
|
+
mega: this.mega ?? false,
|
|
3178
3234
|
open: this.open ?? false,
|
|
3179
3235
|
placement: this.placement
|
|
3180
3236
|
});
|
|
@@ -3204,6 +3260,7 @@ var SpectreDropdownElement = class extends SpectreBaseElement {
|
|
|
3204
3260
|
};
|
|
3205
3261
|
SpectreDropdownElement.properties = {
|
|
3206
3262
|
fullWidth: { attribute: "full-width", type: Boolean, reflect: true },
|
|
3263
|
+
mega: { type: Boolean, reflect: true },
|
|
3207
3264
|
open: { type: Boolean, reflect: true },
|
|
3208
3265
|
placement: { type: String, reflect: true },
|
|
3209
3266
|
triggerLabel: { attribute: "trigger-label", type: String }
|
|
@@ -3221,6 +3278,7 @@ var SpectreFooterElement = class extends SpectreProjectableElement {
|
|
|
3221
3278
|
super(...arguments);
|
|
3222
3279
|
this.bordered = false;
|
|
3223
3280
|
this.fullWidth = false;
|
|
3281
|
+
this.innerClass = void 0;
|
|
3224
3282
|
}
|
|
3225
3283
|
get id() {
|
|
3226
3284
|
return super.id;
|
|
@@ -3234,6 +3292,11 @@ var SpectreFooterElement = class extends SpectreProjectableElement {
|
|
|
3234
3292
|
set title(value) {
|
|
3235
3293
|
super.title = value;
|
|
3236
3294
|
}
|
|
3295
|
+
connectedCallback() {
|
|
3296
|
+
var _a;
|
|
3297
|
+
super.connectedCallback();
|
|
3298
|
+
(_a = this.style).display || (_a.display = "block");
|
|
3299
|
+
}
|
|
3237
3300
|
getContentContainer() {
|
|
3238
3301
|
return this.querySelector("[data-sp-footer-native]");
|
|
3239
3302
|
}
|
|
@@ -3253,10 +3316,12 @@ var SpectreFooterElement = class extends SpectreProjectableElement {
|
|
|
3253
3316
|
}
|
|
3254
3317
|
}
|
|
3255
3318
|
get footerClasses() {
|
|
3256
|
-
|
|
3319
|
+
const recipeClasses = spectreUi.getFooterClasses({
|
|
3257
3320
|
bordered: this.bordered ?? false,
|
|
3258
3321
|
fullWidth: this.fullWidth ?? false
|
|
3259
3322
|
});
|
|
3323
|
+
const utilityClasses = sanitizeUtilityClasses(this.innerClass);
|
|
3324
|
+
return utilityClasses ? `${recipeClasses} ${utilityClasses}` : recipeClasses;
|
|
3260
3325
|
}
|
|
3261
3326
|
render() {
|
|
3262
3327
|
return lit.html`<footer
|
|
@@ -3272,7 +3337,8 @@ var SpectreFooterElement = class extends SpectreProjectableElement {
|
|
|
3272
3337
|
};
|
|
3273
3338
|
SpectreFooterElement.properties = {
|
|
3274
3339
|
bordered: { type: Boolean, reflect: true },
|
|
3275
|
-
fullWidth: { attribute: "full-width", type: Boolean, reflect: true }
|
|
3340
|
+
fullWidth: { attribute: "full-width", type: Boolean, reflect: true },
|
|
3341
|
+
innerClass: { attribute: "inner-class", type: String }
|
|
3276
3342
|
};
|
|
3277
3343
|
function defineSpectreFooter(tagName = "sp-footer") {
|
|
3278
3344
|
const existingElement = customElements.get(tagName);
|
|
@@ -3454,6 +3520,7 @@ var SpectreNavElement = class extends SpectreProjectableElement {
|
|
|
3454
3520
|
super(...arguments);
|
|
3455
3521
|
this.bordered = false;
|
|
3456
3522
|
this.fullWidth = false;
|
|
3523
|
+
this.innerClass = void 0;
|
|
3457
3524
|
this.sticky = false;
|
|
3458
3525
|
}
|
|
3459
3526
|
get id() {
|
|
@@ -3468,6 +3535,11 @@ var SpectreNavElement = class extends SpectreProjectableElement {
|
|
|
3468
3535
|
set title(value) {
|
|
3469
3536
|
super.title = value;
|
|
3470
3537
|
}
|
|
3538
|
+
connectedCallback() {
|
|
3539
|
+
var _a;
|
|
3540
|
+
super.connectedCallback();
|
|
3541
|
+
(_a = this.style).display || (_a.display = "block");
|
|
3542
|
+
}
|
|
3471
3543
|
getContentContainer() {
|
|
3472
3544
|
return this.querySelector("[data-sp-nav-native]");
|
|
3473
3545
|
}
|
|
@@ -3490,11 +3562,13 @@ var SpectreNavElement = class extends SpectreProjectableElement {
|
|
|
3490
3562
|
}
|
|
3491
3563
|
}
|
|
3492
3564
|
get navClasses() {
|
|
3493
|
-
|
|
3565
|
+
const recipeClasses = spectreUi.getNavClasses({
|
|
3494
3566
|
bordered: this.bordered ?? false,
|
|
3495
3567
|
fullWidth: this.fullWidth ?? false,
|
|
3496
3568
|
sticky: this.sticky ?? false
|
|
3497
3569
|
});
|
|
3570
|
+
const utilityClasses = sanitizeUtilityClasses(this.innerClass);
|
|
3571
|
+
return utilityClasses ? `${recipeClasses} ${utilityClasses}` : recipeClasses;
|
|
3498
3572
|
}
|
|
3499
3573
|
render() {
|
|
3500
3574
|
return lit.html`<nav
|
|
@@ -3511,6 +3585,7 @@ var SpectreNavElement = class extends SpectreProjectableElement {
|
|
|
3511
3585
|
SpectreNavElement.properties = {
|
|
3512
3586
|
bordered: { type: Boolean, reflect: true },
|
|
3513
3587
|
fullWidth: { attribute: "full-width", type: Boolean, reflect: true },
|
|
3588
|
+
innerClass: { attribute: "inner-class", type: String },
|
|
3514
3589
|
sticky: { type: Boolean, reflect: true }
|
|
3515
3590
|
};
|
|
3516
3591
|
function defineSpectreNav(tagName = "sp-nav") {
|
|
@@ -3527,6 +3602,7 @@ var SpectreNavItemElement = class extends SpectreBaseElement {
|
|
|
3527
3602
|
this.dropdown = false;
|
|
3528
3603
|
this.href = void 0;
|
|
3529
3604
|
this.label = void 0;
|
|
3605
|
+
this.mega = false;
|
|
3530
3606
|
this.open = false;
|
|
3531
3607
|
this.placement = "bottom-start";
|
|
3532
3608
|
this.triggerContent = [];
|
|
@@ -3629,6 +3705,9 @@ var SpectreNavItemElement = class extends SpectreBaseElement {
|
|
|
3629
3705
|
if (changedProperties.has("dropdown") && this.dropdown == null) {
|
|
3630
3706
|
this.dropdown = false;
|
|
3631
3707
|
}
|
|
3708
|
+
if (changedProperties.has("mega") && this.mega == null) {
|
|
3709
|
+
this.mega = false;
|
|
3710
|
+
}
|
|
3632
3711
|
if (changedProperties.has("open") && this.open == null) {
|
|
3633
3712
|
this.open = false;
|
|
3634
3713
|
}
|
|
@@ -3661,10 +3740,11 @@ var SpectreNavItemElement = class extends SpectreBaseElement {
|
|
|
3661
3740
|
this.dispatchEvent(new CustomEvent("sp-close", { bubbles: true }));
|
|
3662
3741
|
}
|
|
3663
3742
|
get wrapperClasses() {
|
|
3664
|
-
return spectreUi.getDropdownClasses();
|
|
3743
|
+
return spectreUi.getDropdownClasses({ mega: this.mega ?? false });
|
|
3665
3744
|
}
|
|
3666
3745
|
get menuClasses() {
|
|
3667
3746
|
return spectreUi.getDropdownMenuClasses({
|
|
3747
|
+
mega: this.mega ?? false,
|
|
3668
3748
|
open: this.open ?? false,
|
|
3669
3749
|
placement: this.placement
|
|
3670
3750
|
});
|
|
@@ -3712,6 +3792,7 @@ SpectreNavItemElement.properties = {
|
|
|
3712
3792
|
dropdown: { type: Boolean, reflect: true },
|
|
3713
3793
|
href: { type: String },
|
|
3714
3794
|
label: { type: String },
|
|
3795
|
+
mega: { type: Boolean, reflect: true },
|
|
3715
3796
|
open: { type: Boolean, reflect: true },
|
|
3716
3797
|
placement: { type: String, reflect: true }
|
|
3717
3798
|
};
|
|
@@ -3727,6 +3808,7 @@ var SpectreSidebarElement = class extends SpectreProjectableElement {
|
|
|
3727
3808
|
constructor() {
|
|
3728
3809
|
super(...arguments);
|
|
3729
3810
|
this.bordered = false;
|
|
3811
|
+
this.hideToggle = false;
|
|
3730
3812
|
this.open = false;
|
|
3731
3813
|
this.toggleLabel = "Toggle sidebar";
|
|
3732
3814
|
this.handleDocumentKeydown = (event) => {
|
|
@@ -3761,6 +3843,9 @@ var SpectreSidebarElement = class extends SpectreProjectableElement {
|
|
|
3761
3843
|
if (changedProperties.has("bordered") && this.bordered == null) {
|
|
3762
3844
|
this.bordered = false;
|
|
3763
3845
|
}
|
|
3846
|
+
if (changedProperties.has("hideToggle") && this.hideToggle == null) {
|
|
3847
|
+
this.hideToggle = false;
|
|
3848
|
+
}
|
|
3764
3849
|
if (changedProperties.has("open") && this.open == null) {
|
|
3765
3850
|
this.open = false;
|
|
3766
3851
|
}
|
|
@@ -3813,16 +3898,16 @@ var SpectreSidebarElement = class extends SpectreProjectableElement {
|
|
|
3813
3898
|
return spectreUi.getSidebarClasses({ bordered: this.bordered ?? false });
|
|
3814
3899
|
}
|
|
3815
3900
|
render() {
|
|
3816
|
-
return lit.html`<button
|
|
3817
|
-
|
|
3818
|
-
|
|
3819
|
-
|
|
3820
|
-
|
|
3821
|
-
|
|
3822
|
-
|
|
3823
|
-
|
|
3824
|
-
|
|
3825
|
-
|
|
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>`}
|
|
3826
3911
|
<div
|
|
3827
3912
|
class="${spectreUi.getSidebarBackdropClasses()}"
|
|
3828
3913
|
data-sp-sidebar-backdrop
|
|
@@ -3841,6 +3926,7 @@ var SpectreSidebarElement = class extends SpectreProjectableElement {
|
|
|
3841
3926
|
};
|
|
3842
3927
|
SpectreSidebarElement.properties = {
|
|
3843
3928
|
bordered: { type: Boolean, reflect: true },
|
|
3929
|
+
hideToggle: { attribute: "hide-toggle", type: Boolean, reflect: true },
|
|
3844
3930
|
open: { type: Boolean, reflect: false },
|
|
3845
3931
|
toggleLabel: { attribute: "toggle-label", type: String }
|
|
3846
3932
|
};
|
|
@@ -3852,6 +3938,119 @@ function defineSpectreSidebar(tagName = "sp-sidebar") {
|
|
|
3852
3938
|
customElements.define(tagName, SpectreSidebarElement);
|
|
3853
3939
|
return SpectreSidebarElement;
|
|
3854
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
|
+
}
|
|
3855
4054
|
var SpectreToastElement = class extends SpectreBaseElement {
|
|
3856
4055
|
constructor() {
|
|
3857
4056
|
super(...arguments);
|
|
@@ -4290,6 +4489,7 @@ function defineSpectreComponents() {
|
|
|
4290
4489
|
defineSpectreNav();
|
|
4291
4490
|
defineSpectreNavItem();
|
|
4292
4491
|
defineSpectreSidebar();
|
|
4492
|
+
defineSpectreSidebarToggle();
|
|
4293
4493
|
defineSpectreToast();
|
|
4294
4494
|
defineSpectreTooltip();
|
|
4295
4495
|
defineSpectreText();
|
|
@@ -4318,6 +4518,7 @@ exports.SpectreRatingElement = SpectreRatingElement;
|
|
|
4318
4518
|
exports.SpectreSectionElement = SpectreSectionElement;
|
|
4319
4519
|
exports.SpectreSelectElement = SpectreSelectElement;
|
|
4320
4520
|
exports.SpectreSidebarElement = SpectreSidebarElement;
|
|
4521
|
+
exports.SpectreSidebarToggleElement = SpectreSidebarToggleElement;
|
|
4321
4522
|
exports.SpectreSpinnerElement = SpectreSpinnerElement;
|
|
4322
4523
|
exports.SpectreStackElement = SpectreStackElement;
|
|
4323
4524
|
exports.SpectreTagElement = SpectreTagElement;
|
|
@@ -4350,6 +4551,7 @@ exports.defineSpectreRating = defineSpectreRating;
|
|
|
4350
4551
|
exports.defineSpectreSection = defineSpectreSection;
|
|
4351
4552
|
exports.defineSpectreSelect = defineSpectreSelect;
|
|
4352
4553
|
exports.defineSpectreSidebar = defineSpectreSidebar;
|
|
4554
|
+
exports.defineSpectreSidebarToggle = defineSpectreSidebarToggle;
|
|
4353
4555
|
exports.defineSpectreSpinner = defineSpectreSpinner;
|
|
4354
4556
|
exports.defineSpectreStack = defineSpectreStack;
|
|
4355
4557
|
exports.defineSpectreTag = defineSpectreTag;
|