@wireweave/core 2.6.2 → 2.7.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/dist/index.cjs +87 -9
- package/dist/index.js +87 -9
- package/dist/renderer.cjs +87 -9
- package/dist/renderer.js +87 -9
- package/package.json +6 -1
package/dist/index.cjs
CHANGED
|
@@ -7070,8 +7070,21 @@ function generateContainerStyles(prefix) {
|
|
|
7070
7070
|
border-bottom: 1px solid var(--${prefix}-border);
|
|
7071
7071
|
font-size: 16px;
|
|
7072
7072
|
font-weight: 500;
|
|
7073
|
+
line-height: 1.5;
|
|
7073
7074
|
cursor: pointer;
|
|
7074
7075
|
text-align: left;
|
|
7076
|
+
outline: none;
|
|
7077
|
+
}
|
|
7078
|
+
|
|
7079
|
+
.${prefix}-accordion-header::after {
|
|
7080
|
+
content: '';
|
|
7081
|
+
width: 8px;
|
|
7082
|
+
height: 8px;
|
|
7083
|
+
border-right: 2px solid var(--${prefix}-muted);
|
|
7084
|
+
border-bottom: 2px solid var(--${prefix}-muted);
|
|
7085
|
+
transform: rotate(45deg);
|
|
7086
|
+
flex-shrink: 0;
|
|
7087
|
+
transition: transform 0.2s ease;
|
|
7075
7088
|
}
|
|
7076
7089
|
|
|
7077
7090
|
.${prefix}-accordion-header:hover {
|
|
@@ -7087,8 +7100,10 @@ function generateContainerStyles(prefix) {
|
|
|
7087
7100
|
function generateTextStyles(prefix) {
|
|
7088
7101
|
return `/* Text Components */
|
|
7089
7102
|
.${prefix}-text {
|
|
7103
|
+
display: block;
|
|
7090
7104
|
margin: 0;
|
|
7091
7105
|
line-height: 1.5;
|
|
7106
|
+
white-space: normal;
|
|
7092
7107
|
}
|
|
7093
7108
|
|
|
7094
7109
|
.${prefix}-text-xs { font-size: 12px; }
|
|
@@ -7113,6 +7128,7 @@ function generateTextStyles(prefix) {
|
|
|
7113
7128
|
.${prefix}-text-muted { color: var(--${prefix}-muted); }
|
|
7114
7129
|
|
|
7115
7130
|
.${prefix}-title {
|
|
7131
|
+
display: block;
|
|
7116
7132
|
margin: 0 0 8px 0;
|
|
7117
7133
|
font-weight: 600;
|
|
7118
7134
|
line-height: 1.25;
|
|
@@ -7131,6 +7147,7 @@ h5.${prefix}-title { font-size: 18px; }
|
|
|
7131
7147
|
h6.${prefix}-title { font-size: 16px; }
|
|
7132
7148
|
|
|
7133
7149
|
.${prefix}-link {
|
|
7150
|
+
display: inline;
|
|
7134
7151
|
color: var(--${prefix}-fg);
|
|
7135
7152
|
text-decoration: underline;
|
|
7136
7153
|
cursor: pointer;
|
|
@@ -7165,6 +7182,7 @@ function generateInputStyles(_theme, prefix) {
|
|
|
7165
7182
|
border-radius: var(--${prefix}-radius);
|
|
7166
7183
|
font-family: inherit;
|
|
7167
7184
|
font-size: 14px;
|
|
7185
|
+
line-height: 1.5;
|
|
7168
7186
|
background: var(--${prefix}-bg);
|
|
7169
7187
|
color: var(--${prefix}-fg);
|
|
7170
7188
|
transition: border-color 0.15s ease;
|
|
@@ -7238,11 +7256,14 @@ function generateInputStyles(_theme, prefix) {
|
|
|
7238
7256
|
}
|
|
7239
7257
|
|
|
7240
7258
|
.${prefix}-textarea {
|
|
7259
|
+
display: block;
|
|
7241
7260
|
min-height: 80px;
|
|
7242
7261
|
resize: vertical;
|
|
7262
|
+
white-space: pre-wrap;
|
|
7243
7263
|
}
|
|
7244
7264
|
|
|
7245
7265
|
.${prefix}-select {
|
|
7266
|
+
cursor: pointer;
|
|
7246
7267
|
appearance: none;
|
|
7247
7268
|
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23333' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
|
|
7248
7269
|
background-repeat: no-repeat;
|
|
@@ -7260,6 +7281,7 @@ function generateInputStyles(_theme, prefix) {
|
|
|
7260
7281
|
|
|
7261
7282
|
.${prefix}-checkbox input,
|
|
7262
7283
|
.${prefix}-radio input {
|
|
7284
|
+
appearance: auto;
|
|
7263
7285
|
width: 18px;
|
|
7264
7286
|
height: 18px;
|
|
7265
7287
|
margin: 0;
|
|
@@ -7315,12 +7337,14 @@ function generateInputStyles(_theme, prefix) {
|
|
|
7315
7337
|
}
|
|
7316
7338
|
|
|
7317
7339
|
.${prefix}-slider {
|
|
7340
|
+
display: block;
|
|
7318
7341
|
appearance: none;
|
|
7319
7342
|
width: 100%;
|
|
7320
7343
|
height: 6px;
|
|
7321
7344
|
background: var(--${prefix}-border);
|
|
7322
7345
|
border-radius: 3px;
|
|
7323
7346
|
outline: none;
|
|
7347
|
+
margin: 8px 0;
|
|
7324
7348
|
}
|
|
7325
7349
|
|
|
7326
7350
|
.${prefix}-slider::-webkit-slider-thumb {
|
|
@@ -7358,6 +7382,7 @@ function generateButtonStyles(_theme, prefix) {
|
|
|
7358
7382
|
font-family: inherit;
|
|
7359
7383
|
font-size: 14px;
|
|
7360
7384
|
font-weight: 500;
|
|
7385
|
+
line-height: 1.5;
|
|
7361
7386
|
cursor: pointer;
|
|
7362
7387
|
transition: all 0.15s ease;
|
|
7363
7388
|
white-space: nowrap;
|
|
@@ -7684,16 +7709,32 @@ svg.${prefix}-icon-xl { width: 32px; height: 32px; }
|
|
|
7684
7709
|
function generateDataStyles(_theme, prefix) {
|
|
7685
7710
|
return `/* Data Components */
|
|
7686
7711
|
.${prefix}-table {
|
|
7712
|
+
display: table;
|
|
7687
7713
|
width: 100%;
|
|
7688
7714
|
border-collapse: collapse;
|
|
7689
7715
|
border: 1px solid var(--${prefix}-border);
|
|
7690
7716
|
font-size: 14px;
|
|
7691
7717
|
}
|
|
7692
7718
|
|
|
7719
|
+
.${prefix}-table thead {
|
|
7720
|
+
display: table-header-group;
|
|
7721
|
+
}
|
|
7722
|
+
|
|
7723
|
+
.${prefix}-table tbody {
|
|
7724
|
+
display: table-row-group;
|
|
7725
|
+
}
|
|
7726
|
+
|
|
7727
|
+
.${prefix}-table tr {
|
|
7728
|
+
display: table-row;
|
|
7729
|
+
}
|
|
7730
|
+
|
|
7693
7731
|
.${prefix}-table th,
|
|
7694
7732
|
.${prefix}-table td {
|
|
7733
|
+
display: table-cell;
|
|
7695
7734
|
padding: 10px 12px;
|
|
7696
7735
|
text-align: left;
|
|
7736
|
+
line-height: 1.5;
|
|
7737
|
+
vertical-align: top;
|
|
7697
7738
|
border-bottom: 1px solid var(--${prefix}-border);
|
|
7698
7739
|
}
|
|
7699
7740
|
|
|
@@ -7716,6 +7757,7 @@ function generateDataStyles(_theme, prefix) {
|
|
|
7716
7757
|
}
|
|
7717
7758
|
|
|
7718
7759
|
.${prefix}-list {
|
|
7760
|
+
display: block;
|
|
7719
7761
|
list-style: none;
|
|
7720
7762
|
padding: 0;
|
|
7721
7763
|
margin: 0;
|
|
@@ -7726,11 +7768,17 @@ function generateDataStyles(_theme, prefix) {
|
|
|
7726
7768
|
padding-left: 24px;
|
|
7727
7769
|
}
|
|
7728
7770
|
|
|
7771
|
+
.${prefix}-list-ordered .${prefix}-list-item {
|
|
7772
|
+
display: list-item;
|
|
7773
|
+
list-style: decimal;
|
|
7774
|
+
}
|
|
7775
|
+
|
|
7729
7776
|
.${prefix}-list-none {
|
|
7730
7777
|
list-style: none;
|
|
7731
7778
|
}
|
|
7732
7779
|
|
|
7733
7780
|
.${prefix}-list-item {
|
|
7781
|
+
display: list-item;
|
|
7734
7782
|
padding: 8px 0;
|
|
7735
7783
|
border-bottom: 1px solid var(--${prefix}-border);
|
|
7736
7784
|
}
|
|
@@ -7764,6 +7812,7 @@ function generateFeedbackStyles(_theme, prefix) {
|
|
|
7764
7812
|
background: transparent;
|
|
7765
7813
|
border: none;
|
|
7766
7814
|
font-size: 18px;
|
|
7815
|
+
line-height: 1;
|
|
7767
7816
|
cursor: pointer;
|
|
7768
7817
|
opacity: 0.5;
|
|
7769
7818
|
}
|
|
@@ -7781,17 +7830,28 @@ function generateFeedbackStyles(_theme, prefix) {
|
|
|
7781
7830
|
font-size: 14px;
|
|
7782
7831
|
}
|
|
7783
7832
|
|
|
7833
|
+
.${prefix}-progress-wrapper {
|
|
7834
|
+
display: flex;
|
|
7835
|
+
align-items: center;
|
|
7836
|
+
gap: 12px;
|
|
7837
|
+
}
|
|
7838
|
+
|
|
7839
|
+
.${prefix}-progress-wrapper .${prefix}-progress {
|
|
7840
|
+
flex: 1;
|
|
7841
|
+
}
|
|
7842
|
+
|
|
7784
7843
|
.${prefix}-progress {
|
|
7785
|
-
height:
|
|
7786
|
-
background:
|
|
7787
|
-
border-radius:
|
|
7844
|
+
height: 10px;
|
|
7845
|
+
background: #e0e0e0;
|
|
7846
|
+
border-radius: 5px;
|
|
7788
7847
|
overflow: hidden;
|
|
7848
|
+
border: 1px solid var(--${prefix}-border);
|
|
7789
7849
|
}
|
|
7790
7850
|
|
|
7791
7851
|
.${prefix}-progress-bar {
|
|
7792
7852
|
height: 100%;
|
|
7793
7853
|
background: var(--${prefix}-fg);
|
|
7794
|
-
border-radius:
|
|
7854
|
+
border-radius: 5px;
|
|
7795
7855
|
transition: width 0.3s ease;
|
|
7796
7856
|
}
|
|
7797
7857
|
|
|
@@ -7812,6 +7872,15 @@ function generateFeedbackStyles(_theme, prefix) {
|
|
|
7812
7872
|
color: var(--${prefix}-muted);
|
|
7813
7873
|
}
|
|
7814
7874
|
|
|
7875
|
+
.${prefix}-progress-value {
|
|
7876
|
+
font-size: 12px;
|
|
7877
|
+
font-weight: 500;
|
|
7878
|
+
color: var(--${prefix}-fg);
|
|
7879
|
+
white-space: nowrap;
|
|
7880
|
+
min-width: 32px;
|
|
7881
|
+
text-align: right;
|
|
7882
|
+
}
|
|
7883
|
+
|
|
7815
7884
|
.${prefix}-spinner {
|
|
7816
7885
|
display: inline-block;
|
|
7817
7886
|
width: 20px;
|
|
@@ -7916,6 +7985,7 @@ function generateOverlayStyles(_theme, prefix) {
|
|
|
7916
7985
|
border: none;
|
|
7917
7986
|
text-align: left;
|
|
7918
7987
|
font-size: 14px;
|
|
7988
|
+
line-height: 1.5;
|
|
7919
7989
|
cursor: pointer;
|
|
7920
7990
|
}
|
|
7921
7991
|
|
|
@@ -7954,6 +8024,7 @@ function generateNavigationStyles(_theme, prefix) {
|
|
|
7954
8024
|
text-decoration: none;
|
|
7955
8025
|
border-radius: var(--${prefix}-radius);
|
|
7956
8026
|
font-size: 14px;
|
|
8027
|
+
line-height: 1.5;
|
|
7957
8028
|
transition: background-color 0.15s ease;
|
|
7958
8029
|
}
|
|
7959
8030
|
|
|
@@ -7987,6 +8058,7 @@ function generateNavigationStyles(_theme, prefix) {
|
|
|
7987
8058
|
}
|
|
7988
8059
|
|
|
7989
8060
|
.${prefix}-nav-divider {
|
|
8061
|
+
display: block;
|
|
7990
8062
|
margin: 8px 0;
|
|
7991
8063
|
border: none;
|
|
7992
8064
|
border-top: 1px solid var(--${prefix}-border);
|
|
@@ -8008,6 +8080,7 @@ function generateNavigationStyles(_theme, prefix) {
|
|
|
8008
8080
|
border: none;
|
|
8009
8081
|
border-bottom: 2px solid transparent;
|
|
8010
8082
|
font-size: 14px;
|
|
8083
|
+
line-height: 1.5;
|
|
8011
8084
|
color: var(--${prefix}-fg);
|
|
8012
8085
|
cursor: pointer;
|
|
8013
8086
|
transition: all 0.15s ease;
|
|
@@ -8029,6 +8102,7 @@ function generateNavigationStyles(_theme, prefix) {
|
|
|
8029
8102
|
}
|
|
8030
8103
|
|
|
8031
8104
|
.${prefix}-breadcrumb-item {
|
|
8105
|
+
display: inline-flex;
|
|
8032
8106
|
color: var(--${prefix}-fg);
|
|
8033
8107
|
text-decoration: none;
|
|
8034
8108
|
}
|
|
@@ -8178,6 +8252,7 @@ function generateDividerStyles(prefix = "wf") {
|
|
|
8178
8252
|
return `
|
|
8179
8253
|
/* Divider */
|
|
8180
8254
|
.${prefix}-divider {
|
|
8255
|
+
display: block;
|
|
8181
8256
|
margin: 8px 0;
|
|
8182
8257
|
border: none;
|
|
8183
8258
|
border-top: 1px solid var(--${prefix}-border);
|
|
@@ -8403,6 +8478,12 @@ function generateBaseStyles(prefix) {
|
|
|
8403
8478
|
box-sizing: inherit;
|
|
8404
8479
|
}
|
|
8405
8480
|
|
|
8481
|
+
/* Host CSS isolation reset - :where() keeps specificity at (0,0,0) so component styles always win */
|
|
8482
|
+
.${prefix}-page :where(input, button, select, textarea, a, table, thead, tbody, th, td, tr, ul, ol, li, label, hr, h1, h2, h3, h4, h5, h6, p, nav, fieldset, legend) {
|
|
8483
|
+
all: unset;
|
|
8484
|
+
box-sizing: border-box;
|
|
8485
|
+
}
|
|
8486
|
+
|
|
8406
8487
|
/* Page with flex layout - enables justify/align for centering content */
|
|
8407
8488
|
.${prefix}-page.${prefix}-flex,
|
|
8408
8489
|
.${prefix}-page[class*="${prefix}-justify-"],
|
|
@@ -55782,12 +55863,9 @@ function renderProgress(node, ctx) {
|
|
|
55782
55863
|
const percentage = Math.round(value / max * 100);
|
|
55783
55864
|
const label = node.label ? `<span class="${ctx.prefix}-progress-label">${ctx.escapeHtml(node.label)}</span>` : "";
|
|
55784
55865
|
if (node.indeterminate) {
|
|
55785
|
-
return
|
|
55866
|
+
return `${label}<div class="${ctx.prefix}-progress-wrapper"${styleAttr}><div class="${classes} ${ctx.prefix}-progress-indeterminate" role="progressbar"><div class="${ctx.prefix}-progress-bar"></div></div></div>`;
|
|
55786
55867
|
}
|
|
55787
|
-
return
|
|
55788
|
-
${label}
|
|
55789
|
-
<div class="${ctx.prefix}-progress-bar" style="width: ${percentage}%"></div>
|
|
55790
|
-
</div>`;
|
|
55868
|
+
return `${label}<div class="${ctx.prefix}-progress-wrapper"${styleAttr}><div class="${classes}" role="progressbar" aria-valuenow="${value}" aria-valuemin="0" aria-valuemax="${max}"><div class="${ctx.prefix}-progress-bar" style="width: ${percentage}%"></div></div><span class="${ctx.prefix}-progress-value">${percentage}%</span></div>`;
|
|
55791
55869
|
}
|
|
55792
55870
|
function renderSpinner(node, ctx) {
|
|
55793
55871
|
const sizeResolved = resolveSizeValue(node.size, "spinner", ctx.prefix);
|
package/dist/index.js
CHANGED
|
@@ -6930,8 +6930,21 @@ function generateContainerStyles(prefix) {
|
|
|
6930
6930
|
border-bottom: 1px solid var(--${prefix}-border);
|
|
6931
6931
|
font-size: 16px;
|
|
6932
6932
|
font-weight: 500;
|
|
6933
|
+
line-height: 1.5;
|
|
6933
6934
|
cursor: pointer;
|
|
6934
6935
|
text-align: left;
|
|
6936
|
+
outline: none;
|
|
6937
|
+
}
|
|
6938
|
+
|
|
6939
|
+
.${prefix}-accordion-header::after {
|
|
6940
|
+
content: '';
|
|
6941
|
+
width: 8px;
|
|
6942
|
+
height: 8px;
|
|
6943
|
+
border-right: 2px solid var(--${prefix}-muted);
|
|
6944
|
+
border-bottom: 2px solid var(--${prefix}-muted);
|
|
6945
|
+
transform: rotate(45deg);
|
|
6946
|
+
flex-shrink: 0;
|
|
6947
|
+
transition: transform 0.2s ease;
|
|
6935
6948
|
}
|
|
6936
6949
|
|
|
6937
6950
|
.${prefix}-accordion-header:hover {
|
|
@@ -6947,8 +6960,10 @@ function generateContainerStyles(prefix) {
|
|
|
6947
6960
|
function generateTextStyles(prefix) {
|
|
6948
6961
|
return `/* Text Components */
|
|
6949
6962
|
.${prefix}-text {
|
|
6963
|
+
display: block;
|
|
6950
6964
|
margin: 0;
|
|
6951
6965
|
line-height: 1.5;
|
|
6966
|
+
white-space: normal;
|
|
6952
6967
|
}
|
|
6953
6968
|
|
|
6954
6969
|
.${prefix}-text-xs { font-size: 12px; }
|
|
@@ -6973,6 +6988,7 @@ function generateTextStyles(prefix) {
|
|
|
6973
6988
|
.${prefix}-text-muted { color: var(--${prefix}-muted); }
|
|
6974
6989
|
|
|
6975
6990
|
.${prefix}-title {
|
|
6991
|
+
display: block;
|
|
6976
6992
|
margin: 0 0 8px 0;
|
|
6977
6993
|
font-weight: 600;
|
|
6978
6994
|
line-height: 1.25;
|
|
@@ -6991,6 +7007,7 @@ h5.${prefix}-title { font-size: 18px; }
|
|
|
6991
7007
|
h6.${prefix}-title { font-size: 16px; }
|
|
6992
7008
|
|
|
6993
7009
|
.${prefix}-link {
|
|
7010
|
+
display: inline;
|
|
6994
7011
|
color: var(--${prefix}-fg);
|
|
6995
7012
|
text-decoration: underline;
|
|
6996
7013
|
cursor: pointer;
|
|
@@ -7025,6 +7042,7 @@ function generateInputStyles(_theme, prefix) {
|
|
|
7025
7042
|
border-radius: var(--${prefix}-radius);
|
|
7026
7043
|
font-family: inherit;
|
|
7027
7044
|
font-size: 14px;
|
|
7045
|
+
line-height: 1.5;
|
|
7028
7046
|
background: var(--${prefix}-bg);
|
|
7029
7047
|
color: var(--${prefix}-fg);
|
|
7030
7048
|
transition: border-color 0.15s ease;
|
|
@@ -7098,11 +7116,14 @@ function generateInputStyles(_theme, prefix) {
|
|
|
7098
7116
|
}
|
|
7099
7117
|
|
|
7100
7118
|
.${prefix}-textarea {
|
|
7119
|
+
display: block;
|
|
7101
7120
|
min-height: 80px;
|
|
7102
7121
|
resize: vertical;
|
|
7122
|
+
white-space: pre-wrap;
|
|
7103
7123
|
}
|
|
7104
7124
|
|
|
7105
7125
|
.${prefix}-select {
|
|
7126
|
+
cursor: pointer;
|
|
7106
7127
|
appearance: none;
|
|
7107
7128
|
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23333' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
|
|
7108
7129
|
background-repeat: no-repeat;
|
|
@@ -7120,6 +7141,7 @@ function generateInputStyles(_theme, prefix) {
|
|
|
7120
7141
|
|
|
7121
7142
|
.${prefix}-checkbox input,
|
|
7122
7143
|
.${prefix}-radio input {
|
|
7144
|
+
appearance: auto;
|
|
7123
7145
|
width: 18px;
|
|
7124
7146
|
height: 18px;
|
|
7125
7147
|
margin: 0;
|
|
@@ -7175,12 +7197,14 @@ function generateInputStyles(_theme, prefix) {
|
|
|
7175
7197
|
}
|
|
7176
7198
|
|
|
7177
7199
|
.${prefix}-slider {
|
|
7200
|
+
display: block;
|
|
7178
7201
|
appearance: none;
|
|
7179
7202
|
width: 100%;
|
|
7180
7203
|
height: 6px;
|
|
7181
7204
|
background: var(--${prefix}-border);
|
|
7182
7205
|
border-radius: 3px;
|
|
7183
7206
|
outline: none;
|
|
7207
|
+
margin: 8px 0;
|
|
7184
7208
|
}
|
|
7185
7209
|
|
|
7186
7210
|
.${prefix}-slider::-webkit-slider-thumb {
|
|
@@ -7218,6 +7242,7 @@ function generateButtonStyles(_theme, prefix) {
|
|
|
7218
7242
|
font-family: inherit;
|
|
7219
7243
|
font-size: 14px;
|
|
7220
7244
|
font-weight: 500;
|
|
7245
|
+
line-height: 1.5;
|
|
7221
7246
|
cursor: pointer;
|
|
7222
7247
|
transition: all 0.15s ease;
|
|
7223
7248
|
white-space: nowrap;
|
|
@@ -7544,16 +7569,32 @@ svg.${prefix}-icon-xl { width: 32px; height: 32px; }
|
|
|
7544
7569
|
function generateDataStyles(_theme, prefix) {
|
|
7545
7570
|
return `/* Data Components */
|
|
7546
7571
|
.${prefix}-table {
|
|
7572
|
+
display: table;
|
|
7547
7573
|
width: 100%;
|
|
7548
7574
|
border-collapse: collapse;
|
|
7549
7575
|
border: 1px solid var(--${prefix}-border);
|
|
7550
7576
|
font-size: 14px;
|
|
7551
7577
|
}
|
|
7552
7578
|
|
|
7579
|
+
.${prefix}-table thead {
|
|
7580
|
+
display: table-header-group;
|
|
7581
|
+
}
|
|
7582
|
+
|
|
7583
|
+
.${prefix}-table tbody {
|
|
7584
|
+
display: table-row-group;
|
|
7585
|
+
}
|
|
7586
|
+
|
|
7587
|
+
.${prefix}-table tr {
|
|
7588
|
+
display: table-row;
|
|
7589
|
+
}
|
|
7590
|
+
|
|
7553
7591
|
.${prefix}-table th,
|
|
7554
7592
|
.${prefix}-table td {
|
|
7593
|
+
display: table-cell;
|
|
7555
7594
|
padding: 10px 12px;
|
|
7556
7595
|
text-align: left;
|
|
7596
|
+
line-height: 1.5;
|
|
7597
|
+
vertical-align: top;
|
|
7557
7598
|
border-bottom: 1px solid var(--${prefix}-border);
|
|
7558
7599
|
}
|
|
7559
7600
|
|
|
@@ -7576,6 +7617,7 @@ function generateDataStyles(_theme, prefix) {
|
|
|
7576
7617
|
}
|
|
7577
7618
|
|
|
7578
7619
|
.${prefix}-list {
|
|
7620
|
+
display: block;
|
|
7579
7621
|
list-style: none;
|
|
7580
7622
|
padding: 0;
|
|
7581
7623
|
margin: 0;
|
|
@@ -7586,11 +7628,17 @@ function generateDataStyles(_theme, prefix) {
|
|
|
7586
7628
|
padding-left: 24px;
|
|
7587
7629
|
}
|
|
7588
7630
|
|
|
7631
|
+
.${prefix}-list-ordered .${prefix}-list-item {
|
|
7632
|
+
display: list-item;
|
|
7633
|
+
list-style: decimal;
|
|
7634
|
+
}
|
|
7635
|
+
|
|
7589
7636
|
.${prefix}-list-none {
|
|
7590
7637
|
list-style: none;
|
|
7591
7638
|
}
|
|
7592
7639
|
|
|
7593
7640
|
.${prefix}-list-item {
|
|
7641
|
+
display: list-item;
|
|
7594
7642
|
padding: 8px 0;
|
|
7595
7643
|
border-bottom: 1px solid var(--${prefix}-border);
|
|
7596
7644
|
}
|
|
@@ -7624,6 +7672,7 @@ function generateFeedbackStyles(_theme, prefix) {
|
|
|
7624
7672
|
background: transparent;
|
|
7625
7673
|
border: none;
|
|
7626
7674
|
font-size: 18px;
|
|
7675
|
+
line-height: 1;
|
|
7627
7676
|
cursor: pointer;
|
|
7628
7677
|
opacity: 0.5;
|
|
7629
7678
|
}
|
|
@@ -7641,17 +7690,28 @@ function generateFeedbackStyles(_theme, prefix) {
|
|
|
7641
7690
|
font-size: 14px;
|
|
7642
7691
|
}
|
|
7643
7692
|
|
|
7693
|
+
.${prefix}-progress-wrapper {
|
|
7694
|
+
display: flex;
|
|
7695
|
+
align-items: center;
|
|
7696
|
+
gap: 12px;
|
|
7697
|
+
}
|
|
7698
|
+
|
|
7699
|
+
.${prefix}-progress-wrapper .${prefix}-progress {
|
|
7700
|
+
flex: 1;
|
|
7701
|
+
}
|
|
7702
|
+
|
|
7644
7703
|
.${prefix}-progress {
|
|
7645
|
-
height:
|
|
7646
|
-
background:
|
|
7647
|
-
border-radius:
|
|
7704
|
+
height: 10px;
|
|
7705
|
+
background: #e0e0e0;
|
|
7706
|
+
border-radius: 5px;
|
|
7648
7707
|
overflow: hidden;
|
|
7708
|
+
border: 1px solid var(--${prefix}-border);
|
|
7649
7709
|
}
|
|
7650
7710
|
|
|
7651
7711
|
.${prefix}-progress-bar {
|
|
7652
7712
|
height: 100%;
|
|
7653
7713
|
background: var(--${prefix}-fg);
|
|
7654
|
-
border-radius:
|
|
7714
|
+
border-radius: 5px;
|
|
7655
7715
|
transition: width 0.3s ease;
|
|
7656
7716
|
}
|
|
7657
7717
|
|
|
@@ -7672,6 +7732,15 @@ function generateFeedbackStyles(_theme, prefix) {
|
|
|
7672
7732
|
color: var(--${prefix}-muted);
|
|
7673
7733
|
}
|
|
7674
7734
|
|
|
7735
|
+
.${prefix}-progress-value {
|
|
7736
|
+
font-size: 12px;
|
|
7737
|
+
font-weight: 500;
|
|
7738
|
+
color: var(--${prefix}-fg);
|
|
7739
|
+
white-space: nowrap;
|
|
7740
|
+
min-width: 32px;
|
|
7741
|
+
text-align: right;
|
|
7742
|
+
}
|
|
7743
|
+
|
|
7675
7744
|
.${prefix}-spinner {
|
|
7676
7745
|
display: inline-block;
|
|
7677
7746
|
width: 20px;
|
|
@@ -7776,6 +7845,7 @@ function generateOverlayStyles(_theme, prefix) {
|
|
|
7776
7845
|
border: none;
|
|
7777
7846
|
text-align: left;
|
|
7778
7847
|
font-size: 14px;
|
|
7848
|
+
line-height: 1.5;
|
|
7779
7849
|
cursor: pointer;
|
|
7780
7850
|
}
|
|
7781
7851
|
|
|
@@ -7814,6 +7884,7 @@ function generateNavigationStyles(_theme, prefix) {
|
|
|
7814
7884
|
text-decoration: none;
|
|
7815
7885
|
border-radius: var(--${prefix}-radius);
|
|
7816
7886
|
font-size: 14px;
|
|
7887
|
+
line-height: 1.5;
|
|
7817
7888
|
transition: background-color 0.15s ease;
|
|
7818
7889
|
}
|
|
7819
7890
|
|
|
@@ -7847,6 +7918,7 @@ function generateNavigationStyles(_theme, prefix) {
|
|
|
7847
7918
|
}
|
|
7848
7919
|
|
|
7849
7920
|
.${prefix}-nav-divider {
|
|
7921
|
+
display: block;
|
|
7850
7922
|
margin: 8px 0;
|
|
7851
7923
|
border: none;
|
|
7852
7924
|
border-top: 1px solid var(--${prefix}-border);
|
|
@@ -7868,6 +7940,7 @@ function generateNavigationStyles(_theme, prefix) {
|
|
|
7868
7940
|
border: none;
|
|
7869
7941
|
border-bottom: 2px solid transparent;
|
|
7870
7942
|
font-size: 14px;
|
|
7943
|
+
line-height: 1.5;
|
|
7871
7944
|
color: var(--${prefix}-fg);
|
|
7872
7945
|
cursor: pointer;
|
|
7873
7946
|
transition: all 0.15s ease;
|
|
@@ -7889,6 +7962,7 @@ function generateNavigationStyles(_theme, prefix) {
|
|
|
7889
7962
|
}
|
|
7890
7963
|
|
|
7891
7964
|
.${prefix}-breadcrumb-item {
|
|
7965
|
+
display: inline-flex;
|
|
7892
7966
|
color: var(--${prefix}-fg);
|
|
7893
7967
|
text-decoration: none;
|
|
7894
7968
|
}
|
|
@@ -8038,6 +8112,7 @@ function generateDividerStyles(prefix = "wf") {
|
|
|
8038
8112
|
return `
|
|
8039
8113
|
/* Divider */
|
|
8040
8114
|
.${prefix}-divider {
|
|
8115
|
+
display: block;
|
|
8041
8116
|
margin: 8px 0;
|
|
8042
8117
|
border: none;
|
|
8043
8118
|
border-top: 1px solid var(--${prefix}-border);
|
|
@@ -8263,6 +8338,12 @@ function generateBaseStyles(prefix) {
|
|
|
8263
8338
|
box-sizing: inherit;
|
|
8264
8339
|
}
|
|
8265
8340
|
|
|
8341
|
+
/* Host CSS isolation reset - :where() keeps specificity at (0,0,0) so component styles always win */
|
|
8342
|
+
.${prefix}-page :where(input, button, select, textarea, a, table, thead, tbody, th, td, tr, ul, ol, li, label, hr, h1, h2, h3, h4, h5, h6, p, nav, fieldset, legend) {
|
|
8343
|
+
all: unset;
|
|
8344
|
+
box-sizing: border-box;
|
|
8345
|
+
}
|
|
8346
|
+
|
|
8266
8347
|
/* Page with flex layout - enables justify/align for centering content */
|
|
8267
8348
|
.${prefix}-page.${prefix}-flex,
|
|
8268
8349
|
.${prefix}-page[class*="${prefix}-justify-"],
|
|
@@ -55642,12 +55723,9 @@ function renderProgress(node, ctx) {
|
|
|
55642
55723
|
const percentage = Math.round(value / max * 100);
|
|
55643
55724
|
const label = node.label ? `<span class="${ctx.prefix}-progress-label">${ctx.escapeHtml(node.label)}</span>` : "";
|
|
55644
55725
|
if (node.indeterminate) {
|
|
55645
|
-
return
|
|
55726
|
+
return `${label}<div class="${ctx.prefix}-progress-wrapper"${styleAttr}><div class="${classes} ${ctx.prefix}-progress-indeterminate" role="progressbar"><div class="${ctx.prefix}-progress-bar"></div></div></div>`;
|
|
55646
55727
|
}
|
|
55647
|
-
return
|
|
55648
|
-
${label}
|
|
55649
|
-
<div class="${ctx.prefix}-progress-bar" style="width: ${percentage}%"></div>
|
|
55650
|
-
</div>`;
|
|
55728
|
+
return `${label}<div class="${ctx.prefix}-progress-wrapper"${styleAttr}><div class="${classes}" role="progressbar" aria-valuenow="${value}" aria-valuemin="0" aria-valuemax="${max}"><div class="${ctx.prefix}-progress-bar" style="width: ${percentage}%"></div></div><span class="${ctx.prefix}-progress-value">${percentage}%</span></div>`;
|
|
55651
55729
|
}
|
|
55652
55730
|
function renderSpinner(node, ctx) {
|
|
55653
55731
|
const sizeResolved = resolveSizeValue(node.size, "spinner", ctx.prefix);
|
package/dist/renderer.cjs
CHANGED
|
@@ -219,8 +219,21 @@ function generateContainerStyles(prefix) {
|
|
|
219
219
|
border-bottom: 1px solid var(--${prefix}-border);
|
|
220
220
|
font-size: 16px;
|
|
221
221
|
font-weight: 500;
|
|
222
|
+
line-height: 1.5;
|
|
222
223
|
cursor: pointer;
|
|
223
224
|
text-align: left;
|
|
225
|
+
outline: none;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
.${prefix}-accordion-header::after {
|
|
229
|
+
content: '';
|
|
230
|
+
width: 8px;
|
|
231
|
+
height: 8px;
|
|
232
|
+
border-right: 2px solid var(--${prefix}-muted);
|
|
233
|
+
border-bottom: 2px solid var(--${prefix}-muted);
|
|
234
|
+
transform: rotate(45deg);
|
|
235
|
+
flex-shrink: 0;
|
|
236
|
+
transition: transform 0.2s ease;
|
|
224
237
|
}
|
|
225
238
|
|
|
226
239
|
.${prefix}-accordion-header:hover {
|
|
@@ -236,8 +249,10 @@ function generateContainerStyles(prefix) {
|
|
|
236
249
|
function generateTextStyles(prefix) {
|
|
237
250
|
return `/* Text Components */
|
|
238
251
|
.${prefix}-text {
|
|
252
|
+
display: block;
|
|
239
253
|
margin: 0;
|
|
240
254
|
line-height: 1.5;
|
|
255
|
+
white-space: normal;
|
|
241
256
|
}
|
|
242
257
|
|
|
243
258
|
.${prefix}-text-xs { font-size: 12px; }
|
|
@@ -262,6 +277,7 @@ function generateTextStyles(prefix) {
|
|
|
262
277
|
.${prefix}-text-muted { color: var(--${prefix}-muted); }
|
|
263
278
|
|
|
264
279
|
.${prefix}-title {
|
|
280
|
+
display: block;
|
|
265
281
|
margin: 0 0 8px 0;
|
|
266
282
|
font-weight: 600;
|
|
267
283
|
line-height: 1.25;
|
|
@@ -280,6 +296,7 @@ h5.${prefix}-title { font-size: 18px; }
|
|
|
280
296
|
h6.${prefix}-title { font-size: 16px; }
|
|
281
297
|
|
|
282
298
|
.${prefix}-link {
|
|
299
|
+
display: inline;
|
|
283
300
|
color: var(--${prefix}-fg);
|
|
284
301
|
text-decoration: underline;
|
|
285
302
|
cursor: pointer;
|
|
@@ -314,6 +331,7 @@ function generateInputStyles(_theme, prefix) {
|
|
|
314
331
|
border-radius: var(--${prefix}-radius);
|
|
315
332
|
font-family: inherit;
|
|
316
333
|
font-size: 14px;
|
|
334
|
+
line-height: 1.5;
|
|
317
335
|
background: var(--${prefix}-bg);
|
|
318
336
|
color: var(--${prefix}-fg);
|
|
319
337
|
transition: border-color 0.15s ease;
|
|
@@ -387,11 +405,14 @@ function generateInputStyles(_theme, prefix) {
|
|
|
387
405
|
}
|
|
388
406
|
|
|
389
407
|
.${prefix}-textarea {
|
|
408
|
+
display: block;
|
|
390
409
|
min-height: 80px;
|
|
391
410
|
resize: vertical;
|
|
411
|
+
white-space: pre-wrap;
|
|
392
412
|
}
|
|
393
413
|
|
|
394
414
|
.${prefix}-select {
|
|
415
|
+
cursor: pointer;
|
|
395
416
|
appearance: none;
|
|
396
417
|
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23333' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
|
|
397
418
|
background-repeat: no-repeat;
|
|
@@ -409,6 +430,7 @@ function generateInputStyles(_theme, prefix) {
|
|
|
409
430
|
|
|
410
431
|
.${prefix}-checkbox input,
|
|
411
432
|
.${prefix}-radio input {
|
|
433
|
+
appearance: auto;
|
|
412
434
|
width: 18px;
|
|
413
435
|
height: 18px;
|
|
414
436
|
margin: 0;
|
|
@@ -464,12 +486,14 @@ function generateInputStyles(_theme, prefix) {
|
|
|
464
486
|
}
|
|
465
487
|
|
|
466
488
|
.${prefix}-slider {
|
|
489
|
+
display: block;
|
|
467
490
|
appearance: none;
|
|
468
491
|
width: 100%;
|
|
469
492
|
height: 6px;
|
|
470
493
|
background: var(--${prefix}-border);
|
|
471
494
|
border-radius: 3px;
|
|
472
495
|
outline: none;
|
|
496
|
+
margin: 8px 0;
|
|
473
497
|
}
|
|
474
498
|
|
|
475
499
|
.${prefix}-slider::-webkit-slider-thumb {
|
|
@@ -507,6 +531,7 @@ function generateButtonStyles(_theme, prefix) {
|
|
|
507
531
|
font-family: inherit;
|
|
508
532
|
font-size: 14px;
|
|
509
533
|
font-weight: 500;
|
|
534
|
+
line-height: 1.5;
|
|
510
535
|
cursor: pointer;
|
|
511
536
|
transition: all 0.15s ease;
|
|
512
537
|
white-space: nowrap;
|
|
@@ -833,16 +858,32 @@ svg.${prefix}-icon-xl { width: 32px; height: 32px; }
|
|
|
833
858
|
function generateDataStyles(_theme, prefix) {
|
|
834
859
|
return `/* Data Components */
|
|
835
860
|
.${prefix}-table {
|
|
861
|
+
display: table;
|
|
836
862
|
width: 100%;
|
|
837
863
|
border-collapse: collapse;
|
|
838
864
|
border: 1px solid var(--${prefix}-border);
|
|
839
865
|
font-size: 14px;
|
|
840
866
|
}
|
|
841
867
|
|
|
868
|
+
.${prefix}-table thead {
|
|
869
|
+
display: table-header-group;
|
|
870
|
+
}
|
|
871
|
+
|
|
872
|
+
.${prefix}-table tbody {
|
|
873
|
+
display: table-row-group;
|
|
874
|
+
}
|
|
875
|
+
|
|
876
|
+
.${prefix}-table tr {
|
|
877
|
+
display: table-row;
|
|
878
|
+
}
|
|
879
|
+
|
|
842
880
|
.${prefix}-table th,
|
|
843
881
|
.${prefix}-table td {
|
|
882
|
+
display: table-cell;
|
|
844
883
|
padding: 10px 12px;
|
|
845
884
|
text-align: left;
|
|
885
|
+
line-height: 1.5;
|
|
886
|
+
vertical-align: top;
|
|
846
887
|
border-bottom: 1px solid var(--${prefix}-border);
|
|
847
888
|
}
|
|
848
889
|
|
|
@@ -865,6 +906,7 @@ function generateDataStyles(_theme, prefix) {
|
|
|
865
906
|
}
|
|
866
907
|
|
|
867
908
|
.${prefix}-list {
|
|
909
|
+
display: block;
|
|
868
910
|
list-style: none;
|
|
869
911
|
padding: 0;
|
|
870
912
|
margin: 0;
|
|
@@ -875,11 +917,17 @@ function generateDataStyles(_theme, prefix) {
|
|
|
875
917
|
padding-left: 24px;
|
|
876
918
|
}
|
|
877
919
|
|
|
920
|
+
.${prefix}-list-ordered .${prefix}-list-item {
|
|
921
|
+
display: list-item;
|
|
922
|
+
list-style: decimal;
|
|
923
|
+
}
|
|
924
|
+
|
|
878
925
|
.${prefix}-list-none {
|
|
879
926
|
list-style: none;
|
|
880
927
|
}
|
|
881
928
|
|
|
882
929
|
.${prefix}-list-item {
|
|
930
|
+
display: list-item;
|
|
883
931
|
padding: 8px 0;
|
|
884
932
|
border-bottom: 1px solid var(--${prefix}-border);
|
|
885
933
|
}
|
|
@@ -913,6 +961,7 @@ function generateFeedbackStyles(_theme, prefix) {
|
|
|
913
961
|
background: transparent;
|
|
914
962
|
border: none;
|
|
915
963
|
font-size: 18px;
|
|
964
|
+
line-height: 1;
|
|
916
965
|
cursor: pointer;
|
|
917
966
|
opacity: 0.5;
|
|
918
967
|
}
|
|
@@ -930,17 +979,28 @@ function generateFeedbackStyles(_theme, prefix) {
|
|
|
930
979
|
font-size: 14px;
|
|
931
980
|
}
|
|
932
981
|
|
|
982
|
+
.${prefix}-progress-wrapper {
|
|
983
|
+
display: flex;
|
|
984
|
+
align-items: center;
|
|
985
|
+
gap: 12px;
|
|
986
|
+
}
|
|
987
|
+
|
|
988
|
+
.${prefix}-progress-wrapper .${prefix}-progress {
|
|
989
|
+
flex: 1;
|
|
990
|
+
}
|
|
991
|
+
|
|
933
992
|
.${prefix}-progress {
|
|
934
|
-
height:
|
|
935
|
-
background:
|
|
936
|
-
border-radius:
|
|
993
|
+
height: 10px;
|
|
994
|
+
background: #e0e0e0;
|
|
995
|
+
border-radius: 5px;
|
|
937
996
|
overflow: hidden;
|
|
997
|
+
border: 1px solid var(--${prefix}-border);
|
|
938
998
|
}
|
|
939
999
|
|
|
940
1000
|
.${prefix}-progress-bar {
|
|
941
1001
|
height: 100%;
|
|
942
1002
|
background: var(--${prefix}-fg);
|
|
943
|
-
border-radius:
|
|
1003
|
+
border-radius: 5px;
|
|
944
1004
|
transition: width 0.3s ease;
|
|
945
1005
|
}
|
|
946
1006
|
|
|
@@ -961,6 +1021,15 @@ function generateFeedbackStyles(_theme, prefix) {
|
|
|
961
1021
|
color: var(--${prefix}-muted);
|
|
962
1022
|
}
|
|
963
1023
|
|
|
1024
|
+
.${prefix}-progress-value {
|
|
1025
|
+
font-size: 12px;
|
|
1026
|
+
font-weight: 500;
|
|
1027
|
+
color: var(--${prefix}-fg);
|
|
1028
|
+
white-space: nowrap;
|
|
1029
|
+
min-width: 32px;
|
|
1030
|
+
text-align: right;
|
|
1031
|
+
}
|
|
1032
|
+
|
|
964
1033
|
.${prefix}-spinner {
|
|
965
1034
|
display: inline-block;
|
|
966
1035
|
width: 20px;
|
|
@@ -1065,6 +1134,7 @@ function generateOverlayStyles(_theme, prefix) {
|
|
|
1065
1134
|
border: none;
|
|
1066
1135
|
text-align: left;
|
|
1067
1136
|
font-size: 14px;
|
|
1137
|
+
line-height: 1.5;
|
|
1068
1138
|
cursor: pointer;
|
|
1069
1139
|
}
|
|
1070
1140
|
|
|
@@ -1103,6 +1173,7 @@ function generateNavigationStyles(_theme, prefix) {
|
|
|
1103
1173
|
text-decoration: none;
|
|
1104
1174
|
border-radius: var(--${prefix}-radius);
|
|
1105
1175
|
font-size: 14px;
|
|
1176
|
+
line-height: 1.5;
|
|
1106
1177
|
transition: background-color 0.15s ease;
|
|
1107
1178
|
}
|
|
1108
1179
|
|
|
@@ -1136,6 +1207,7 @@ function generateNavigationStyles(_theme, prefix) {
|
|
|
1136
1207
|
}
|
|
1137
1208
|
|
|
1138
1209
|
.${prefix}-nav-divider {
|
|
1210
|
+
display: block;
|
|
1139
1211
|
margin: 8px 0;
|
|
1140
1212
|
border: none;
|
|
1141
1213
|
border-top: 1px solid var(--${prefix}-border);
|
|
@@ -1157,6 +1229,7 @@ function generateNavigationStyles(_theme, prefix) {
|
|
|
1157
1229
|
border: none;
|
|
1158
1230
|
border-bottom: 2px solid transparent;
|
|
1159
1231
|
font-size: 14px;
|
|
1232
|
+
line-height: 1.5;
|
|
1160
1233
|
color: var(--${prefix}-fg);
|
|
1161
1234
|
cursor: pointer;
|
|
1162
1235
|
transition: all 0.15s ease;
|
|
@@ -1178,6 +1251,7 @@ function generateNavigationStyles(_theme, prefix) {
|
|
|
1178
1251
|
}
|
|
1179
1252
|
|
|
1180
1253
|
.${prefix}-breadcrumb-item {
|
|
1254
|
+
display: inline-flex;
|
|
1181
1255
|
color: var(--${prefix}-fg);
|
|
1182
1256
|
text-decoration: none;
|
|
1183
1257
|
}
|
|
@@ -1327,6 +1401,7 @@ function generateDividerStyles(prefix = "wf") {
|
|
|
1327
1401
|
return `
|
|
1328
1402
|
/* Divider */
|
|
1329
1403
|
.${prefix}-divider {
|
|
1404
|
+
display: block;
|
|
1330
1405
|
margin: 8px 0;
|
|
1331
1406
|
border: none;
|
|
1332
1407
|
border-top: 1px solid var(--${prefix}-border);
|
|
@@ -1552,6 +1627,12 @@ function generateBaseStyles(prefix) {
|
|
|
1552
1627
|
box-sizing: inherit;
|
|
1553
1628
|
}
|
|
1554
1629
|
|
|
1630
|
+
/* Host CSS isolation reset - :where() keeps specificity at (0,0,0) so component styles always win */
|
|
1631
|
+
.${prefix}-page :where(input, button, select, textarea, a, table, thead, tbody, th, td, tr, ul, ol, li, label, hr, h1, h2, h3, h4, h5, h6, p, nav, fieldset, legend) {
|
|
1632
|
+
all: unset;
|
|
1633
|
+
box-sizing: border-box;
|
|
1634
|
+
}
|
|
1635
|
+
|
|
1555
1636
|
/* Page with flex layout - enables justify/align for centering content */
|
|
1556
1637
|
.${prefix}-page.${prefix}-flex,
|
|
1557
1638
|
.${prefix}-page[class*="${prefix}-justify-"],
|
|
@@ -48902,12 +48983,9 @@ function renderProgress(node, ctx) {
|
|
|
48902
48983
|
const percentage = Math.round(value / max * 100);
|
|
48903
48984
|
const label = node.label ? `<span class="${ctx.prefix}-progress-label">${ctx.escapeHtml(node.label)}</span>` : "";
|
|
48904
48985
|
if (node.indeterminate) {
|
|
48905
|
-
return
|
|
48986
|
+
return `${label}<div class="${ctx.prefix}-progress-wrapper"${styleAttr}><div class="${classes} ${ctx.prefix}-progress-indeterminate" role="progressbar"><div class="${ctx.prefix}-progress-bar"></div></div></div>`;
|
|
48906
48987
|
}
|
|
48907
|
-
return
|
|
48908
|
-
${label}
|
|
48909
|
-
<div class="${ctx.prefix}-progress-bar" style="width: ${percentage}%"></div>
|
|
48910
|
-
</div>`;
|
|
48988
|
+
return `${label}<div class="${ctx.prefix}-progress-wrapper"${styleAttr}><div class="${classes}" role="progressbar" aria-valuenow="${value}" aria-valuemin="0" aria-valuemax="${max}"><div class="${ctx.prefix}-progress-bar" style="width: ${percentage}%"></div></div><span class="${ctx.prefix}-progress-value">${percentage}%</span></div>`;
|
|
48911
48989
|
}
|
|
48912
48990
|
function renderSpinner(node, ctx) {
|
|
48913
48991
|
const sizeResolved = resolveSizeValue(node.size, "spinner", ctx.prefix);
|
package/dist/renderer.js
CHANGED
|
@@ -181,8 +181,21 @@ function generateContainerStyles(prefix) {
|
|
|
181
181
|
border-bottom: 1px solid var(--${prefix}-border);
|
|
182
182
|
font-size: 16px;
|
|
183
183
|
font-weight: 500;
|
|
184
|
+
line-height: 1.5;
|
|
184
185
|
cursor: pointer;
|
|
185
186
|
text-align: left;
|
|
187
|
+
outline: none;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
.${prefix}-accordion-header::after {
|
|
191
|
+
content: '';
|
|
192
|
+
width: 8px;
|
|
193
|
+
height: 8px;
|
|
194
|
+
border-right: 2px solid var(--${prefix}-muted);
|
|
195
|
+
border-bottom: 2px solid var(--${prefix}-muted);
|
|
196
|
+
transform: rotate(45deg);
|
|
197
|
+
flex-shrink: 0;
|
|
198
|
+
transition: transform 0.2s ease;
|
|
186
199
|
}
|
|
187
200
|
|
|
188
201
|
.${prefix}-accordion-header:hover {
|
|
@@ -198,8 +211,10 @@ function generateContainerStyles(prefix) {
|
|
|
198
211
|
function generateTextStyles(prefix) {
|
|
199
212
|
return `/* Text Components */
|
|
200
213
|
.${prefix}-text {
|
|
214
|
+
display: block;
|
|
201
215
|
margin: 0;
|
|
202
216
|
line-height: 1.5;
|
|
217
|
+
white-space: normal;
|
|
203
218
|
}
|
|
204
219
|
|
|
205
220
|
.${prefix}-text-xs { font-size: 12px; }
|
|
@@ -224,6 +239,7 @@ function generateTextStyles(prefix) {
|
|
|
224
239
|
.${prefix}-text-muted { color: var(--${prefix}-muted); }
|
|
225
240
|
|
|
226
241
|
.${prefix}-title {
|
|
242
|
+
display: block;
|
|
227
243
|
margin: 0 0 8px 0;
|
|
228
244
|
font-weight: 600;
|
|
229
245
|
line-height: 1.25;
|
|
@@ -242,6 +258,7 @@ h5.${prefix}-title { font-size: 18px; }
|
|
|
242
258
|
h6.${prefix}-title { font-size: 16px; }
|
|
243
259
|
|
|
244
260
|
.${prefix}-link {
|
|
261
|
+
display: inline;
|
|
245
262
|
color: var(--${prefix}-fg);
|
|
246
263
|
text-decoration: underline;
|
|
247
264
|
cursor: pointer;
|
|
@@ -276,6 +293,7 @@ function generateInputStyles(_theme, prefix) {
|
|
|
276
293
|
border-radius: var(--${prefix}-radius);
|
|
277
294
|
font-family: inherit;
|
|
278
295
|
font-size: 14px;
|
|
296
|
+
line-height: 1.5;
|
|
279
297
|
background: var(--${prefix}-bg);
|
|
280
298
|
color: var(--${prefix}-fg);
|
|
281
299
|
transition: border-color 0.15s ease;
|
|
@@ -349,11 +367,14 @@ function generateInputStyles(_theme, prefix) {
|
|
|
349
367
|
}
|
|
350
368
|
|
|
351
369
|
.${prefix}-textarea {
|
|
370
|
+
display: block;
|
|
352
371
|
min-height: 80px;
|
|
353
372
|
resize: vertical;
|
|
373
|
+
white-space: pre-wrap;
|
|
354
374
|
}
|
|
355
375
|
|
|
356
376
|
.${prefix}-select {
|
|
377
|
+
cursor: pointer;
|
|
357
378
|
appearance: none;
|
|
358
379
|
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23333' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
|
|
359
380
|
background-repeat: no-repeat;
|
|
@@ -371,6 +392,7 @@ function generateInputStyles(_theme, prefix) {
|
|
|
371
392
|
|
|
372
393
|
.${prefix}-checkbox input,
|
|
373
394
|
.${prefix}-radio input {
|
|
395
|
+
appearance: auto;
|
|
374
396
|
width: 18px;
|
|
375
397
|
height: 18px;
|
|
376
398
|
margin: 0;
|
|
@@ -426,12 +448,14 @@ function generateInputStyles(_theme, prefix) {
|
|
|
426
448
|
}
|
|
427
449
|
|
|
428
450
|
.${prefix}-slider {
|
|
451
|
+
display: block;
|
|
429
452
|
appearance: none;
|
|
430
453
|
width: 100%;
|
|
431
454
|
height: 6px;
|
|
432
455
|
background: var(--${prefix}-border);
|
|
433
456
|
border-radius: 3px;
|
|
434
457
|
outline: none;
|
|
458
|
+
margin: 8px 0;
|
|
435
459
|
}
|
|
436
460
|
|
|
437
461
|
.${prefix}-slider::-webkit-slider-thumb {
|
|
@@ -469,6 +493,7 @@ function generateButtonStyles(_theme, prefix) {
|
|
|
469
493
|
font-family: inherit;
|
|
470
494
|
font-size: 14px;
|
|
471
495
|
font-weight: 500;
|
|
496
|
+
line-height: 1.5;
|
|
472
497
|
cursor: pointer;
|
|
473
498
|
transition: all 0.15s ease;
|
|
474
499
|
white-space: nowrap;
|
|
@@ -795,16 +820,32 @@ svg.${prefix}-icon-xl { width: 32px; height: 32px; }
|
|
|
795
820
|
function generateDataStyles(_theme, prefix) {
|
|
796
821
|
return `/* Data Components */
|
|
797
822
|
.${prefix}-table {
|
|
823
|
+
display: table;
|
|
798
824
|
width: 100%;
|
|
799
825
|
border-collapse: collapse;
|
|
800
826
|
border: 1px solid var(--${prefix}-border);
|
|
801
827
|
font-size: 14px;
|
|
802
828
|
}
|
|
803
829
|
|
|
830
|
+
.${prefix}-table thead {
|
|
831
|
+
display: table-header-group;
|
|
832
|
+
}
|
|
833
|
+
|
|
834
|
+
.${prefix}-table tbody {
|
|
835
|
+
display: table-row-group;
|
|
836
|
+
}
|
|
837
|
+
|
|
838
|
+
.${prefix}-table tr {
|
|
839
|
+
display: table-row;
|
|
840
|
+
}
|
|
841
|
+
|
|
804
842
|
.${prefix}-table th,
|
|
805
843
|
.${prefix}-table td {
|
|
844
|
+
display: table-cell;
|
|
806
845
|
padding: 10px 12px;
|
|
807
846
|
text-align: left;
|
|
847
|
+
line-height: 1.5;
|
|
848
|
+
vertical-align: top;
|
|
808
849
|
border-bottom: 1px solid var(--${prefix}-border);
|
|
809
850
|
}
|
|
810
851
|
|
|
@@ -827,6 +868,7 @@ function generateDataStyles(_theme, prefix) {
|
|
|
827
868
|
}
|
|
828
869
|
|
|
829
870
|
.${prefix}-list {
|
|
871
|
+
display: block;
|
|
830
872
|
list-style: none;
|
|
831
873
|
padding: 0;
|
|
832
874
|
margin: 0;
|
|
@@ -837,11 +879,17 @@ function generateDataStyles(_theme, prefix) {
|
|
|
837
879
|
padding-left: 24px;
|
|
838
880
|
}
|
|
839
881
|
|
|
882
|
+
.${prefix}-list-ordered .${prefix}-list-item {
|
|
883
|
+
display: list-item;
|
|
884
|
+
list-style: decimal;
|
|
885
|
+
}
|
|
886
|
+
|
|
840
887
|
.${prefix}-list-none {
|
|
841
888
|
list-style: none;
|
|
842
889
|
}
|
|
843
890
|
|
|
844
891
|
.${prefix}-list-item {
|
|
892
|
+
display: list-item;
|
|
845
893
|
padding: 8px 0;
|
|
846
894
|
border-bottom: 1px solid var(--${prefix}-border);
|
|
847
895
|
}
|
|
@@ -875,6 +923,7 @@ function generateFeedbackStyles(_theme, prefix) {
|
|
|
875
923
|
background: transparent;
|
|
876
924
|
border: none;
|
|
877
925
|
font-size: 18px;
|
|
926
|
+
line-height: 1;
|
|
878
927
|
cursor: pointer;
|
|
879
928
|
opacity: 0.5;
|
|
880
929
|
}
|
|
@@ -892,17 +941,28 @@ function generateFeedbackStyles(_theme, prefix) {
|
|
|
892
941
|
font-size: 14px;
|
|
893
942
|
}
|
|
894
943
|
|
|
944
|
+
.${prefix}-progress-wrapper {
|
|
945
|
+
display: flex;
|
|
946
|
+
align-items: center;
|
|
947
|
+
gap: 12px;
|
|
948
|
+
}
|
|
949
|
+
|
|
950
|
+
.${prefix}-progress-wrapper .${prefix}-progress {
|
|
951
|
+
flex: 1;
|
|
952
|
+
}
|
|
953
|
+
|
|
895
954
|
.${prefix}-progress {
|
|
896
|
-
height:
|
|
897
|
-
background:
|
|
898
|
-
border-radius:
|
|
955
|
+
height: 10px;
|
|
956
|
+
background: #e0e0e0;
|
|
957
|
+
border-radius: 5px;
|
|
899
958
|
overflow: hidden;
|
|
959
|
+
border: 1px solid var(--${prefix}-border);
|
|
900
960
|
}
|
|
901
961
|
|
|
902
962
|
.${prefix}-progress-bar {
|
|
903
963
|
height: 100%;
|
|
904
964
|
background: var(--${prefix}-fg);
|
|
905
|
-
border-radius:
|
|
965
|
+
border-radius: 5px;
|
|
906
966
|
transition: width 0.3s ease;
|
|
907
967
|
}
|
|
908
968
|
|
|
@@ -923,6 +983,15 @@ function generateFeedbackStyles(_theme, prefix) {
|
|
|
923
983
|
color: var(--${prefix}-muted);
|
|
924
984
|
}
|
|
925
985
|
|
|
986
|
+
.${prefix}-progress-value {
|
|
987
|
+
font-size: 12px;
|
|
988
|
+
font-weight: 500;
|
|
989
|
+
color: var(--${prefix}-fg);
|
|
990
|
+
white-space: nowrap;
|
|
991
|
+
min-width: 32px;
|
|
992
|
+
text-align: right;
|
|
993
|
+
}
|
|
994
|
+
|
|
926
995
|
.${prefix}-spinner {
|
|
927
996
|
display: inline-block;
|
|
928
997
|
width: 20px;
|
|
@@ -1027,6 +1096,7 @@ function generateOverlayStyles(_theme, prefix) {
|
|
|
1027
1096
|
border: none;
|
|
1028
1097
|
text-align: left;
|
|
1029
1098
|
font-size: 14px;
|
|
1099
|
+
line-height: 1.5;
|
|
1030
1100
|
cursor: pointer;
|
|
1031
1101
|
}
|
|
1032
1102
|
|
|
@@ -1065,6 +1135,7 @@ function generateNavigationStyles(_theme, prefix) {
|
|
|
1065
1135
|
text-decoration: none;
|
|
1066
1136
|
border-radius: var(--${prefix}-radius);
|
|
1067
1137
|
font-size: 14px;
|
|
1138
|
+
line-height: 1.5;
|
|
1068
1139
|
transition: background-color 0.15s ease;
|
|
1069
1140
|
}
|
|
1070
1141
|
|
|
@@ -1098,6 +1169,7 @@ function generateNavigationStyles(_theme, prefix) {
|
|
|
1098
1169
|
}
|
|
1099
1170
|
|
|
1100
1171
|
.${prefix}-nav-divider {
|
|
1172
|
+
display: block;
|
|
1101
1173
|
margin: 8px 0;
|
|
1102
1174
|
border: none;
|
|
1103
1175
|
border-top: 1px solid var(--${prefix}-border);
|
|
@@ -1119,6 +1191,7 @@ function generateNavigationStyles(_theme, prefix) {
|
|
|
1119
1191
|
border: none;
|
|
1120
1192
|
border-bottom: 2px solid transparent;
|
|
1121
1193
|
font-size: 14px;
|
|
1194
|
+
line-height: 1.5;
|
|
1122
1195
|
color: var(--${prefix}-fg);
|
|
1123
1196
|
cursor: pointer;
|
|
1124
1197
|
transition: all 0.15s ease;
|
|
@@ -1140,6 +1213,7 @@ function generateNavigationStyles(_theme, prefix) {
|
|
|
1140
1213
|
}
|
|
1141
1214
|
|
|
1142
1215
|
.${prefix}-breadcrumb-item {
|
|
1216
|
+
display: inline-flex;
|
|
1143
1217
|
color: var(--${prefix}-fg);
|
|
1144
1218
|
text-decoration: none;
|
|
1145
1219
|
}
|
|
@@ -1289,6 +1363,7 @@ function generateDividerStyles(prefix = "wf") {
|
|
|
1289
1363
|
return `
|
|
1290
1364
|
/* Divider */
|
|
1291
1365
|
.${prefix}-divider {
|
|
1366
|
+
display: block;
|
|
1292
1367
|
margin: 8px 0;
|
|
1293
1368
|
border: none;
|
|
1294
1369
|
border-top: 1px solid var(--${prefix}-border);
|
|
@@ -1514,6 +1589,12 @@ function generateBaseStyles(prefix) {
|
|
|
1514
1589
|
box-sizing: inherit;
|
|
1515
1590
|
}
|
|
1516
1591
|
|
|
1592
|
+
/* Host CSS isolation reset - :where() keeps specificity at (0,0,0) so component styles always win */
|
|
1593
|
+
.${prefix}-page :where(input, button, select, textarea, a, table, thead, tbody, th, td, tr, ul, ol, li, label, hr, h1, h2, h3, h4, h5, h6, p, nav, fieldset, legend) {
|
|
1594
|
+
all: unset;
|
|
1595
|
+
box-sizing: border-box;
|
|
1596
|
+
}
|
|
1597
|
+
|
|
1517
1598
|
/* Page with flex layout - enables justify/align for centering content */
|
|
1518
1599
|
.${prefix}-page.${prefix}-flex,
|
|
1519
1600
|
.${prefix}-page[class*="${prefix}-justify-"],
|
|
@@ -48864,12 +48945,9 @@ function renderProgress(node, ctx) {
|
|
|
48864
48945
|
const percentage = Math.round(value / max * 100);
|
|
48865
48946
|
const label = node.label ? `<span class="${ctx.prefix}-progress-label">${ctx.escapeHtml(node.label)}</span>` : "";
|
|
48866
48947
|
if (node.indeterminate) {
|
|
48867
|
-
return
|
|
48948
|
+
return `${label}<div class="${ctx.prefix}-progress-wrapper"${styleAttr}><div class="${classes} ${ctx.prefix}-progress-indeterminate" role="progressbar"><div class="${ctx.prefix}-progress-bar"></div></div></div>`;
|
|
48868
48949
|
}
|
|
48869
|
-
return
|
|
48870
|
-
${label}
|
|
48871
|
-
<div class="${ctx.prefix}-progress-bar" style="width: ${percentage}%"></div>
|
|
48872
|
-
</div>`;
|
|
48950
|
+
return `${label}<div class="${ctx.prefix}-progress-wrapper"${styleAttr}><div class="${classes}" role="progressbar" aria-valuenow="${value}" aria-valuemin="0" aria-valuemax="${max}"><div class="${ctx.prefix}-progress-bar" style="width: ${percentage}%"></div></div><span class="${ctx.prefix}-progress-value">${percentage}%</span></div>`;
|
|
48873
48951
|
}
|
|
48874
48952
|
function renderSpinner(node, ctx) {
|
|
48875
48953
|
const sizeResolved = resolveSizeValue(node.size, "spinner", ctx.prefix);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wireweave/core",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.7.0",
|
|
4
4
|
"description": "Core parser and renderer for wireweave",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -32,16 +32,21 @@
|
|
|
32
32
|
"build": "pnpm build:grammar && pnpm build:ts",
|
|
33
33
|
"test": "vitest run",
|
|
34
34
|
"test:watch": "vitest",
|
|
35
|
+
"storybook": "storybook dev -p 6006",
|
|
36
|
+
"build-storybook": "storybook build",
|
|
35
37
|
"clean": "rm -rf dist",
|
|
36
38
|
"release": "release-it"
|
|
37
39
|
},
|
|
38
40
|
"devDependencies": {
|
|
39
41
|
"@release-it/conventional-changelog": "^10.0.4",
|
|
42
|
+
"@storybook/html": "^10.2.18",
|
|
43
|
+
"@storybook/html-vite": "^10.2.18",
|
|
40
44
|
"@types/node": "^25.0.8",
|
|
41
45
|
"@vitest/coverage-v8": "^3.2.4",
|
|
42
46
|
"lucide": "^0.562.0",
|
|
43
47
|
"peggy": "^5.0.0",
|
|
44
48
|
"release-it": "^19.2.3",
|
|
49
|
+
"storybook": "^10.2.18",
|
|
45
50
|
"tsup": "^8.3.5",
|
|
46
51
|
"typescript": "^5.7.2",
|
|
47
52
|
"vitest": "^3.1.1"
|