@anyblades/blades 3.1.0-beta.7 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/README.md +173 -140
  2. package/css/blades.css +6 -6
  3. package/css/blades.min.css +6 -6
  4. package/css/blades.ninja.css +6 -6
  5. package/css/blades.ninja.min.css +6 -6
  6. package/css/float-label.css +1 -1
  7. package/css/float-label.min.css +1 -1
  8. package/css/layered/README.md +164 -0
  9. package/css/layered/_compact.css +30 -0
  10. package/css/layered/_utilities.css +23 -0
  11. package/css/layered/_variables-blades.css +8 -0
  12. package/css/layered/_variables.css +258 -0
  13. package/css/layered/blades.layered.css +6 -6
  14. package/css/layered/blades.layered.min.css +6 -6
  15. package/css/layered/components/_accordion.css +93 -0
  16. package/css/layered/components/_card.css +37 -0
  17. package/css/layered/components/_dropdown-popover.css +89 -0
  18. package/css/layered/components/_dropdown.css +188 -0
  19. package/css/layered/components/_group.css +89 -0
  20. package/css/layered/components/_index.css +950 -0
  21. package/css/layered/components/_loading.css +51 -0
  22. package/css/layered/components/_modal-modern.css +17 -0
  23. package/css/layered/components/_modal.css +144 -0
  24. package/css/layered/components/_nav.css +114 -0
  25. package/css/layered/components/_progress.css +68 -0
  26. package/css/layered/components/_timeline.css +7 -0
  27. package/css/layered/components/_tooltip.css +158 -0
  28. package/css/layered/content/_button.css +125 -0
  29. package/css/layered/content/_code-block.css +17 -0
  30. package/css/layered/content/_code.css +46 -0
  31. package/css/layered/content/_embedded-content.css +33 -0
  32. package/css/layered/content/_figure.css +10 -0
  33. package/css/layered/content/_icon.css +30 -0
  34. package/css/layered/content/_index.css +456 -0
  35. package/css/layered/content/_link.css +59 -0
  36. package/css/layered/content/_misc.css +15 -0
  37. package/css/layered/content/_table.css +24 -0
  38. package/css/layered/content/_typography.css +137 -0
  39. package/css/layered/forms/_basics.css +257 -0
  40. package/css/layered/forms/_checkbox-radio-switch.css +132 -0
  41. package/css/layered/forms/_index.css +617 -0
  42. package/css/layered/forms/_input-color.css +17 -0
  43. package/css/layered/forms/_input-datetime.css +37 -0
  44. package/css/layered/forms/_input-file.css +25 -0
  45. package/css/layered/forms/_input-range.css +111 -0
  46. package/css/layered/forms/_input-search.css +32 -0
  47. package/css/layered/forms/float-label/_core.css +28 -0
  48. package/css/layered/forms/float-label/_index.css +54 -0
  49. package/css/layered/forms/float-label/_theme.css +25 -0
  50. package/css/layered/forms/float-label/core.css +1 -1
  51. package/css/layered/forms/float-label.css +1 -1
  52. package/css/layered/layout/_columns.css +7 -0
  53. package/css/layered/layout/_container.css +39 -0
  54. package/css/layered/layout/_document.css +37 -0
  55. package/css/layered/layout/_grid.css +17 -0
  56. package/css/layered/layout/_index.css +103 -0
  57. package/css/layered/layout/_landmarks.css +3 -0
  58. package/css/layered/layout/_overflow-auto.css +3 -0
  59. package/css/layered/layout/_section.css +3 -0
  60. package/css/pico.canonical.css +2512 -0
  61. package/css/pico.canonical.min.css +1 -0
  62. package/css/pico.canonical.unmin.css +2512 -0
  63. package/css/pico.canonical.unmin.min.css +1 -0
  64. package/css/pico.conditional.css +2 -2
  65. package/css/pico.conditional.min.css +2 -2
  66. package/css/pico.css +2 -2
  67. package/css/pico.min.css +2 -2
  68. package/css/pico.unmin.css +2365 -0
  69. package/css/pico.unmin.min.css +7 -0
  70. package/package.json +12 -9
  71. package/src/blades/_index.css +1 -1
  72. package/src/blades/forms/float-label/_core.css +1 -1
  73. package/src/blades.css +2 -2
  74. package/src/pico/_index.css +2 -2
@@ -0,0 +1,89 @@
1
+ :is(ul, menu)[popover] {
2
+ border: var(--pico-border-width) solid var(--pico-dropdown-border-color);
3
+ border-radius: var(--pico-border-radius);
4
+ background-color: var(--pico-dropdown-background-color);
5
+ min-width: fit-content;
6
+ box-shadow: var(--pico-dropdown-box-shadow);
7
+ color: var(--pico-dropdown-color);
8
+ white-space: nowrap;
9
+ opacity: 0;
10
+ transition: opacity var(--pico-transition),
11
+ overlay var(--pico-transition) allow-discrete,
12
+ display var(--pico-transition) allow-discrete;
13
+ margin: auto;
14
+ padding: 0;
15
+
16
+ &:not(:popover-open) {
17
+ display: none;
18
+ }
19
+
20
+ &:popover-open {
21
+ opacity: 1;
22
+ display: block;
23
+ }
24
+
25
+ & li {
26
+ padding: calc(var(--pico-form-element-spacing-vertical) * .5)
27
+ var(--pico-form-element-spacing-horizontal);
28
+ margin-bottom: 0;
29
+ list-style: none;
30
+ display: block;
31
+
32
+ &:first-of-type {
33
+ margin-top: calc(var(--pico-form-element-spacing-vertical) * .5);
34
+ }
35
+
36
+ &:last-of-type {
37
+ margin-bottom: calc(var(--pico-form-element-spacing-vertical) * .5);
38
+ }
39
+
40
+ &:has(label):hover {
41
+ background-color: var(--pico-dropdown-hover-background-color);
42
+ }
43
+ }
44
+
45
+ & li a {
46
+ margin: calc(var(--pico-form-element-spacing-vertical) * -.5)
47
+ calc(var(--pico-form-element-spacing-horizontal) * -1);
48
+ padding: calc(var(--pico-form-element-spacing-vertical) * .5)
49
+ var(--pico-form-element-spacing-horizontal);
50
+ color: var(--pico-dropdown-color);
51
+ text-overflow: ellipsis;
52
+ border-radius: 0;
53
+ text-decoration: none;
54
+ display: block;
55
+ overflow: hidden;
56
+
57
+ &:is(:hover, :focus, :active, :focus-visible, [aria-current]:not([aria-current="false"])) {
58
+ background-color: var(--pico-dropdown-hover-background-color);
59
+ }
60
+ }
61
+
62
+ & li label {
63
+ width: 100%;
64
+ }
65
+ }
66
+
67
+ nav :is(ul, menu)[popover]:not(.does-not-exist) {
68
+ margin: auto;
69
+ }
70
+
71
+ @starting-style {
72
+ :is(ul, menu)[popover]:popover-open {
73
+ opacity: 0;
74
+ }
75
+ }
76
+
77
+ @supports (position-area: bottom) {
78
+ :is(ul, menu)[popover], nav :is(ul, menu)[popover]:not(.does-not-exist) {
79
+ margin: 0;
80
+ margin-top: var(--pico-outline-width);
81
+ position-area: bottom span-right;
82
+ position-try-fallbacks: flip-block, flip-inline;
83
+ inset: auto;
84
+
85
+ &:dir(rtl) {
86
+ position-area: bottom span-left;
87
+ }
88
+ }
89
+ }
@@ -0,0 +1,188 @@
1
+ :where(:scope, [data-theme="light"], [data-theme="dark"]), :host {
2
+ --pico-dropdown-background-color: light-dark(#fff, #181c25);
3
+ --pico-dropdown-border-color: light-dark(#eff1f4, #202632);
4
+ --pico-dropdown-box-shadow: var(--pico-box-shadow);
5
+ --pico-dropdown-color: var(--pico-color);
6
+ --pico-dropdown-hover-background-color: light-dark(#eff1f4, #202632);
7
+ }
8
+
9
+ details.dropdown {
10
+ border-bottom: none;
11
+ position: relative;
12
+ }
13
+
14
+ details.dropdown > summary:after, details.dropdown > button:after, details.dropdown > a:after {
15
+ width: 1rem;
16
+ height: calc(1rem * var(--pico-line-height, 1.5));
17
+ float: right;
18
+ background-image: var(--pico-icon-chevron);
19
+ content: "";
20
+ background-position: 100%;
21
+ background-repeat: no-repeat;
22
+ background-size: 1rem;
23
+ margin-inline-start: .25rem;
24
+ display: block;
25
+ transform: rotate(0) translateX(.2rem);
26
+ }
27
+
28
+ nav details.dropdown {
29
+ margin-bottom: 0;
30
+ }
31
+
32
+ details.dropdown > summary:not([role]) {
33
+ height: calc(1rem * var(--pico-line-height) + var(--pico-form-element-spacing-vertical) * 2 +
34
+ var(--pico-border-width) * 2);
35
+ padding: var(--pico-form-element-spacing-vertical) var(--pico-form-element-spacing-horizontal);
36
+ border: var(--pico-border-width) solid var(--pico-form-element-border-color);
37
+ border-radius: var(--pico-border-radius);
38
+ background-color: var(--pico-form-element-background-color);
39
+ color: var(--pico-form-element-placeholder-color);
40
+ line-height: inherit;
41
+ cursor: pointer;
42
+ -webkit-user-select: none;
43
+ -moz-user-select: none;
44
+ user-select: none;
45
+ transition: background-color var(--pico-transition),
46
+ border-color var(--pico-transition),
47
+ color var(--pico-transition),
48
+ box-shadow var(--pico-transition);
49
+ }
50
+
51
+ details.dropdown > summary:not([role]):active, details.dropdown > summary:not([role]):focus {
52
+ border-color: var(--pico-form-element-active-border-color);
53
+ background-color: var(--pico-form-element-active-background-color);
54
+ }
55
+
56
+ details.dropdown > summary:not([role]):focus {
57
+ box-shadow: 0 0 0 var(--pico-outline-width) var(--pico-form-element-focus-color);
58
+ }
59
+
60
+ details.dropdown > summary:not([role]):focus-visible {
61
+ outline: none;
62
+ }
63
+
64
+ details.dropdown > summary:not([role])[aria-invalid="false"] {
65
+ --pico-form-element-border-color: var(--pico-form-element-valid-border-color);
66
+ --pico-form-element-active-border-color: var(--pico-form-element-valid-focus-color);
67
+ --pico-form-element-focus-color: var(--pico-form-element-valid-focus-color);
68
+ }
69
+
70
+ details.dropdown > summary:not([role])[aria-invalid="true"] {
71
+ --pico-form-element-border-color: var(--pico-form-element-invalid-border-color);
72
+ --pico-form-element-active-border-color: var(--pico-form-element-invalid-focus-color);
73
+ --pico-form-element-focus-color: var(--pico-form-element-invalid-focus-color);
74
+ }
75
+
76
+ nav details.dropdown {
77
+ margin: calc(var(--pico-nav-element-spacing-vertical) * -1) 0;
78
+ display: inline-block;
79
+ }
80
+
81
+ nav details.dropdown > summary:after {
82
+ transform: rotate(0) translateX(0);
83
+ }
84
+
85
+ nav details.dropdown > summary:not([role]) {
86
+ height: calc(1rem * var(--pico-line-height) + var(--pico-nav-link-spacing-vertical) * 2);
87
+ padding: calc(var(--pico-nav-link-spacing-vertical) - var(--pico-border-width) * 2)
88
+ var(--pico-nav-link-spacing-horizontal);
89
+ }
90
+
91
+ nav details.dropdown > summary:not([role]):focus-visible {
92
+ box-shadow: 0 0 0 var(--pico-outline-width) var(--pico-primary-focus);
93
+ }
94
+
95
+ details.dropdown > summary + ul {
96
+ z-index: 99;
97
+ width: 100%;
98
+ min-width: fit-content;
99
+ margin: 0;
100
+ margin-top: var(--pico-outline-width);
101
+ border: var(--pico-border-width) solid var(--pico-dropdown-border-color);
102
+ border-radius: var(--pico-border-radius);
103
+ background-color: var(--pico-dropdown-background-color);
104
+ box-shadow: var(--pico-dropdown-box-shadow);
105
+ color: var(--pico-dropdown-color);
106
+ white-space: nowrap;
107
+ opacity: 0;
108
+ transition: opacity var(--pico-transition),
109
+ transform 0s ease-in-out 1s;
110
+ flex-direction: column;
111
+ padding: 0;
112
+ display: flex;
113
+ position: absolute;
114
+ left: 0;
115
+ }
116
+
117
+ details.dropdown > summary + ul[dir="rtl"] {
118
+ left: auto;
119
+ right: 0;
120
+ }
121
+
122
+ details.dropdown > summary + ul li {
123
+ width: 100%;
124
+ padding: calc(var(--pico-form-element-spacing-vertical) * .5)
125
+ var(--pico-form-element-spacing-horizontal);
126
+ margin-bottom: 0;
127
+ list-style: none;
128
+ }
129
+
130
+ details.dropdown > summary + ul li:first-of-type {
131
+ margin-top: calc(var(--pico-form-element-spacing-vertical) * .5);
132
+ }
133
+
134
+ details.dropdown > summary + ul li:last-of-type {
135
+ margin-bottom: calc(var(--pico-form-element-spacing-vertical) * .5);
136
+ }
137
+
138
+ details.dropdown > summary + ul li a {
139
+ margin: calc(var(--pico-form-element-spacing-vertical) * -.5)
140
+ calc(var(--pico-form-element-spacing-horizontal) * -1);
141
+ padding: calc(var(--pico-form-element-spacing-vertical) * .5)
142
+ var(--pico-form-element-spacing-horizontal);
143
+ color: var(--pico-dropdown-color);
144
+ text-overflow: ellipsis;
145
+ border-radius: 0;
146
+ text-decoration: none;
147
+ display: block;
148
+ overflow: hidden;
149
+ }
150
+
151
+ details.dropdown > summary + ul li a:hover, details.dropdown > summary + ul li a:focus, details.dropdown > summary + ul li a:active, details.dropdown > summary + ul li a:focus-visible, details.dropdown > summary + ul li a[aria-current]:not([aria-current="false"]) {
152
+ background-color: var(--pico-dropdown-hover-background-color);
153
+ }
154
+
155
+ details.dropdown > summary + ul li label {
156
+ width: 100%;
157
+ }
158
+
159
+ details.dropdown > summary + ul li:has(label):hover {
160
+ background-color: var(--pico-dropdown-hover-background-color);
161
+ }
162
+
163
+ details.dropdown[open] > summary {
164
+ margin-bottom: 0;
165
+ }
166
+
167
+ details.dropdown[open] > summary + ul {
168
+ opacity: 1;
169
+ transition: opacity var(--pico-transition),
170
+ transform 0s ease-in-out 0s;
171
+ transform: scaleY(1);
172
+ }
173
+
174
+ details.dropdown[open] > summary:before {
175
+ z-index: 1;
176
+ content: "";
177
+ cursor: default;
178
+ background: none;
179
+ width: 100vw;
180
+ height: 100vh;
181
+ display: block;
182
+ position: fixed;
183
+ inset: 0;
184
+ }
185
+
186
+ label > details.dropdown {
187
+ margin-top: calc(var(--pico-spacing) * .25);
188
+ }
@@ -0,0 +1,89 @@
1
+ :where(:scope), :host {
2
+ --pico-group-box-shadow: 0 0 0 #0000;
3
+ --pico-group-box-shadow-focus-with-button: 0 0 0 var(--pico-outline-width)
4
+ var(--pico-primary-focus);
5
+ --pico-group-box-shadow-focus-with-input: 0 0 0 .0625rem var(--pico-form-element-border-color);
6
+ }
7
+
8
+ [role="search"]:has(button.secondary:focus, [type="submit"].secondary:focus, [type="button"].secondary:focus, [role="button"].secondary:focus), [role="group"]:has(button.secondary:focus, [type="submit"].secondary:focus, [type="button"].secondary:focus, [role="button"].secondary:focus) {
9
+ --pico-group-box-shadow-focus-with-button: 0 0 0 var(--pico-outline-width)
10
+ var(--pico-secondary-focus);
11
+ }
12
+
13
+ [role="search"]:has(button.contrast:focus, [type="submit"].contrast:focus, [type="button"].contrast:focus, [role="button"].contrast:focus), [role="group"]:has(button.contrast:focus, [type="submit"].contrast:focus, [type="button"].contrast:focus, [role="button"].contrast:focus) {
14
+ --pico-group-box-shadow-focus-with-button: 0 0 0 var(--pico-outline-width)
15
+ var(--pico-contrast-focus);
16
+ }
17
+
18
+ [role="search"], [role="group"] {
19
+ width: 100%;
20
+ margin-bottom: var(--pico-spacing);
21
+ border-radius: var(--pico-border-radius);
22
+ box-shadow: var(--pico-group-box-shadow, 0 0 0 #0000);
23
+ vertical-align: middle;
24
+ transition: box-shadow var(--pico-transition);
25
+ display: inline-flex;
26
+ position: relative;
27
+ }
28
+
29
+ [role="search"] > *, [role="search"] input:not([type="checkbox"], [type="radio"]), [role="search"] select, [role="group"] > *, [role="group"] input:not([type="checkbox"], [type="radio"]), [role="group"] select {
30
+ flex: auto;
31
+ margin-bottom: 0;
32
+ position: relative;
33
+ }
34
+
35
+ [role="search"] > :not(:first-child), [role="search"] input:not([type="checkbox"], [type="radio"]):not(:first-child), [role="search"] select:not(:first-child), [role="group"] > :not(:first-child), [role="group"] input:not([type="checkbox"], [type="radio"]):not(:first-child), [role="group"] select:not(:first-child) {
36
+ border-top-left-radius: 0;
37
+ border-bottom-left-radius: 0;
38
+ margin-left: 0;
39
+ }
40
+
41
+ [role="search"] > :not(:last-child), [role="search"] input:not([type="checkbox"], [type="radio"]):not(:last-child), [role="search"] select:not(:last-child), [role="group"] > :not(:last-child), [role="group"] input:not([type="checkbox"], [type="radio"]):not(:last-child), [role="group"] select:not(:last-child) {
42
+ border-top-right-radius: 0;
43
+ border-bottom-right-radius: 0;
44
+ }
45
+
46
+ [role="search"] > :focus, [role="search"] input:not([type="checkbox"], [type="radio"]):focus, [role="search"] select:focus, [role="group"] > :focus, [role="group"] input:not([type="checkbox"], [type="radio"]):focus, [role="group"] select:focus {
47
+ z-index: 2;
48
+ }
49
+
50
+ [role="search"] button:not(:first-child), [role="search"] [type="submit"]:not(:first-child), [role="search"] [type="reset"]:not(:first-child), [role="search"] [type="button"]:not(:first-child), [role="search"] [role="button"]:not(:first-child), [role="search"] input:not([type="checkbox"], [type="radio"]):not(:first-child), [role="search"] select:not(:first-child), [role="group"] button:not(:first-child), [role="group"] [type="submit"]:not(:first-child), [role="group"] [type="reset"]:not(:first-child), [role="group"] [type="button"]:not(:first-child), [role="group"] [role="button"]:not(:first-child), [role="group"] input:not([type="checkbox"], [type="radio"]):not(:first-child), [role="group"] select:not(:first-child) {
51
+ margin-left: calc(var(--pico-border-width) * -1);
52
+ }
53
+
54
+ [role="search"] button, [role="search"] [type="submit"], [role="search"] [type="reset"], [role="search"] [type="button"], [role="search"] [role="button"], [role="group"] button, [role="group"] [type="submit"], [role="group"] [type="reset"], [role="group"] [type="button"], [role="group"] [role="button"] {
55
+ width: auto;
56
+ }
57
+
58
+ @supports selector(:has(*)) {
59
+ [role="search"]:has(button:focus, [type="submit"]:focus, [type="button"]:focus, [role="button"]:focus), [role="group"]:has(button:focus, [type="submit"]:focus, [type="button"]:focus, [role="button"]:focus) {
60
+ --pico-group-box-shadow: var(--pico-group-box-shadow-focus-with-button);
61
+ }
62
+
63
+ [role="search"]:has(button:focus, [type="submit"]:focus, [type="button"]:focus, [role="button"]:focus) input:not([type="checkbox"], [type="radio"]), [role="search"]:has(button:focus, [type="submit"]:focus, [type="button"]:focus, [role="button"]:focus) select, [role="group"]:has(button:focus, [type="submit"]:focus, [type="button"]:focus, [role="button"]:focus) input:not([type="checkbox"], [type="radio"]), [role="group"]:has(button:focus, [type="submit"]:focus, [type="button"]:focus, [role="button"]:focus) select {
64
+ border-color: #0000;
65
+ }
66
+
67
+ [role="search"]:has(input:not([type="submit"], [type="button"]):focus, select:focus), [role="group"]:has(input:not([type="submit"], [type="button"]):focus, select:focus) {
68
+ --pico-group-box-shadow: var(--pico-group-box-shadow-focus-with-input);
69
+ }
70
+
71
+ [role="search"]:has(input:not([type="submit"], [type="button"]):focus, select:focus) button, [role="search"]:has(input:not([type="submit"], [type="button"]):focus, select:focus) [type="submit"], [role="search"]:has(input:not([type="submit"], [type="button"]):focus, select:focus) [type="button"], [role="search"]:has(input:not([type="submit"], [type="button"]):focus, select:focus) [role="button"], [role="group"]:has(input:not([type="submit"], [type="button"]):focus, select:focus) button, [role="group"]:has(input:not([type="submit"], [type="button"]):focus, select:focus) [type="submit"], [role="group"]:has(input:not([type="submit"], [type="button"]):focus, select:focus) [type="button"], [role="group"]:has(input:not([type="submit"], [type="button"]):focus, select:focus) [role="button"] {
72
+ --pico-button-box-shadow: 0 0 0 var(--pico-border-width) var(--pico-primary-border);
73
+ --pico-button-hover-box-shadow: 0 0 0 var(--pico-border-width) var(--pico-primary-hover-border);
74
+ }
75
+
76
+ [role="search"] button:focus, [role="search"] [type="submit"]:focus, [role="search"] [type="reset"]:focus, [role="search"] [type="button"]:focus, [role="search"] [role="button"]:focus, [role="group"] button:focus, [role="group"] [type="submit"]:focus, [role="group"] [type="reset"]:focus, [role="group"] [type="button"]:focus, [role="group"] [role="button"]:focus {
77
+ box-shadow: none;
78
+ }
79
+ }
80
+
81
+ [role="search"] > :first-child {
82
+ border-top-left-radius: 5rem;
83
+ border-bottom-left-radius: 5rem;
84
+ }
85
+
86
+ [role="search"] > :last-child {
87
+ border-top-right-radius: 5rem;
88
+ border-bottom-right-radius: 5rem;
89
+ }