@infonomic/uikit 5.3.0 → 5.5.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/astro.d.ts +51 -0
- package/dist/astro.js +51 -0
- package/dist/components/accordion/accordion.module.css +60 -0
- package/dist/components/avatar/avatar.module.css +54 -0
- package/dist/components/badge/badge.module.css +61 -0
- package/dist/components/button/button-group.module.css +19 -0
- package/dist/components/button/button.astro +86 -0
- package/dist/components/button/button.module.css +431 -0
- package/dist/components/button/control-buttons.module.css +132 -0
- package/dist/components/button/copy-button.module.css +56 -0
- package/dist/components/button/icon-button.astro +47 -0
- package/dist/components/card/card-content.astro +14 -0
- package/dist/components/card/card-description.astro +14 -0
- package/dist/components/card/card-footer.astro +14 -0
- package/dist/components/card/card-header.astro +14 -0
- package/dist/components/card/card-title.astro +14 -0
- package/dist/components/card/card.astro +41 -0
- package/dist/components/card/card.module.css +77 -0
- package/dist/components/container/container.astro +13 -0
- package/dist/components/container/container.module.css +36 -0
- package/dist/components/dropdown/dropdown.module.css +120 -0
- package/dist/components/forms/calendar.module.css +269 -0
- package/dist/components/forms/checkbox.astro +129 -0
- package/dist/components/forms/checkbox.js +1 -1
- package/dist/components/forms/checkbox.module.css +211 -0
- package/dist/components/forms/error-text.astro +14 -0
- package/dist/components/forms/error-text.module.css +9 -0
- package/dist/components/forms/help-text.astro +13 -0
- package/dist/components/forms/help-text.module.css +9 -0
- package/dist/components/forms/input-adornment.astro +26 -0
- package/dist/components/forms/input-adornment.module.css +21 -0
- package/dist/components/forms/input.astro +99 -0
- package/dist/components/forms/input.module.css +278 -0
- package/dist/components/forms/label.astro +24 -0
- package/dist/components/forms/label.module.css +15 -0
- package/dist/components/forms/radio-group.module.css +163 -0
- package/dist/components/forms/select.module.css +68 -0
- package/dist/components/forms/text-area.astro +77 -0
- package/dist/components/forms/text-area.module.css +10 -0
- package/dist/components/hamburger/hamburger.astro +30 -0
- package/dist/components/notifications/alert.module.css +110 -0
- package/dist/components/notifications/toast.module.css +237 -0
- package/dist/components/overlay/overlay.module.css +41 -0
- package/dist/components/pager/pagination.module.css +149 -0
- package/dist/components/scroll-area/scroll-area.module.css +64 -0
- package/dist/components/scroll-to-top/scroll-to-top.astro +75 -0
- package/dist/components/scroll-to-top/scroll-to-top.module.css +86 -0
- package/dist/components/section/section.astro +13 -0
- package/dist/components/section/section.module.css +9 -0
- package/dist/components/shimmer/shimmer.module.css +53 -0
- package/dist/components/table/table.module.css +100 -0
- package/dist/components/tabs/tabs.module.css +66 -0
- package/dist/components/tooltip/tooltip.module.css +45 -0
- package/dist/icons/check-icon.astro +37 -0
- package/dist/icons/close-icon.astro +38 -0
- package/dist/icons/icon-element.astro +27 -0
- package/dist/icons/icons.module.css +155 -0
- package/dist/icons/light-icon.astro +36 -0
- package/dist/icons/moon-icon.astro +38 -0
- package/dist/icons/search-icon.astro +40 -0
- package/dist/widgets/datepicker/datepicker.module.css +189 -0
- package/dist/widgets/drawer/drawer.module.css +112 -0
- package/dist/widgets/modal/modal.module.css +81 -0
- package/dist/widgets/timeline/timeline.module.css +87 -0
- package/package.json +5 -4
- package/src/astro.js +6 -0
- package/src/components/forms/checkbox.astro +129 -0
- package/src/components/forms/checkbox.tsx +1 -1
- package/src/components/forms/text-area.astro +77 -0
- package/src/icons/check-icon.astro +37 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
@layer infonomic-base, infonomic-functional, infonomic-utilities, infonomic-theme, infonomic-typography, infonomic-components;
|
|
2
|
+
|
|
3
|
+
/* 'border-collapse w-full text-sm text-left text-gray-700 dark:text-gray-400 m-0', */
|
|
4
|
+
@layer infonomic-components {
|
|
5
|
+
.shimmer {
|
|
6
|
+
position: relative;
|
|
7
|
+
overflow: hidden;
|
|
8
|
+
background-color: #f0f0f0;
|
|
9
|
+
background-image: linear-gradient(90deg,
|
|
10
|
+
transparent,
|
|
11
|
+
rgba(255, 255, 255, 0.6),
|
|
12
|
+
transparent);
|
|
13
|
+
background-size: 200% 100%;
|
|
14
|
+
animation: shimmer 1.5s infinite;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.shimmer:is(:global(.dark) *) {
|
|
18
|
+
background-color: #141414;
|
|
19
|
+
background-image: linear-gradient(90deg,
|
|
20
|
+
transparent,
|
|
21
|
+
rgba(255, 255, 255, 0.01),
|
|
22
|
+
transparent);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.shimmerContainer {
|
|
26
|
+
display: flex;
|
|
27
|
+
flex-direction: column;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.rectangular {
|
|
31
|
+
border-radius: 0.25rem;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.text {
|
|
35
|
+
border-radius: 0.125rem;
|
|
36
|
+
height: 1rem;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.circular {
|
|
40
|
+
border-radius: 50%;
|
|
41
|
+
aspect-ratio: 1;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
@keyframes shimmer {
|
|
45
|
+
0% {
|
|
46
|
+
background-position: -200% 0;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
100% {
|
|
50
|
+
background-position: 200% 0;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
@layer infonomic-base, infonomic-functional, infonomic-utilities, infonomic-theme, infonomic-typography, infonomic-components;
|
|
2
|
+
|
|
3
|
+
/* 'border-collapse w-full text-sm text-left text-gray-700 dark:text-gray-400 m-0', */
|
|
4
|
+
@layer infonomic-components {
|
|
5
|
+
|
|
6
|
+
/* 'table--container break-normal overflow-hidden relative shadow-md rounded-md my-[16px] dark:border dark:border-canvas-700', */
|
|
7
|
+
.table-container {
|
|
8
|
+
display: block;
|
|
9
|
+
overflow: hidden;
|
|
10
|
+
word-break: normal;
|
|
11
|
+
position: relative;
|
|
12
|
+
box-shadow: var(--shadow-sm);
|
|
13
|
+
border-radius: var(--border-radius-sm);
|
|
14
|
+
border: 1px solid var(--border-color);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.table-scroller {
|
|
18
|
+
overflow-x: auto;
|
|
19
|
+
max-width: calc(100vw - 32px);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.table {
|
|
23
|
+
width: 100%;
|
|
24
|
+
border-collapse: collapse;
|
|
25
|
+
margin: 0;
|
|
26
|
+
font-size: var(--font-size-sm);
|
|
27
|
+
text-align: left;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/* 'text-xs text-gray-700 uppercase bg-canvas-100 dark:bg-canvas-700 dark:text-gray-400', */
|
|
31
|
+
.table-header {
|
|
32
|
+
font-size: var(--font-size-sm);
|
|
33
|
+
/* text-transform: uppercase; */
|
|
34
|
+
background-color: var(--canvas-50);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/* 'border-b border-solid border-canvas-200 bg-white hover:bg-canvas-100/50 dark:border-canvas-700/60 dark:bg-canvas-800/50 dark:hover:bg-canvas-700/50', */
|
|
38
|
+
.table-row {
|
|
39
|
+
border-bottom: 1px solid var(--canvas-50);
|
|
40
|
+
background-color: white;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.table-row:hover {
|
|
44
|
+
background-color: var(--canvas-50);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/* 'whitespace-nowrap px-2 py-4 text-sm text-gray-700 uppercase bg-canvas-100/50 dark:bg-canvas-800/50 dark:text-gray-200', */
|
|
48
|
+
.table-heading-cell {
|
|
49
|
+
white-space: nowrap;
|
|
50
|
+
padding: var(--spacing-8) var(--spacing-8);
|
|
51
|
+
font-size: 0.975rem; /* 15.6px */
|
|
52
|
+
/* text-transform: uppercase; */
|
|
53
|
+
background-color: var(--canvas-50);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/* not-prose px-2 py-2 text-sm [&_a]:underline */
|
|
57
|
+
.table-cell {
|
|
58
|
+
padding: var(--spacing-8);
|
|
59
|
+
font-size: var(--font-size-sm);
|
|
60
|
+
|
|
61
|
+
& a {
|
|
62
|
+
text-decoration: underline;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/* 'text-xs text-gray-700 uppercase bg-canvas-100 dark:bg-canvas-700 dark:text-gray-400', */
|
|
67
|
+
.table-footer {
|
|
68
|
+
font-size: var(--font-size-sm);
|
|
69
|
+
/* text-transform: uppercase; */
|
|
70
|
+
background-color: var(--canvas-100);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/* 🌙 Dark via `.dark` class. We rely on the
|
|
74
|
+
* consuming application to detect a user's preferred
|
|
75
|
+
* color scheme - either by header or cookie, and set
|
|
76
|
+
* a root html class accordingly
|
|
77
|
+
*/
|
|
78
|
+
:global(.dark) {
|
|
79
|
+
.table-header {
|
|
80
|
+
background-color: var(--canvas-700);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.table-row:not(:where([class~="not-dark"], [class~="not-dark"] *)) {
|
|
84
|
+
border-bottom: 1px solid var(--canvas-700);
|
|
85
|
+
background-color: var(--canvas-800);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.table-row:hover:not(:where([class~="not-dark"], [class~="not-dark"] *)) {
|
|
89
|
+
background-color: oklch(from var(--canvas-800) calc(l * 1.1) c h)
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.table-heading-cell:not(:where([class~="not-dark"], [class~="not-dark"] *)) {
|
|
93
|
+
background-color: oklch(from var(--canvas-800) calc(l * 1.1) c h);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.table-footer:not(:where([class~="not-dark"], [class~="not-dark"] *)) {
|
|
97
|
+
background-color: var(--canvas-800);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
@layer infonomic-base, infonomic-functional, infonomic-utilities, infonomic-theme, infonomic-typography, infonomic-components;
|
|
2
|
+
|
|
3
|
+
@layer infonomic-components {
|
|
4
|
+
|
|
5
|
+
.tabs-root {
|
|
6
|
+
display: flex;
|
|
7
|
+
padding: var(--spacing-8);
|
|
8
|
+
flex-direction: column;
|
|
9
|
+
gap: var(--spacing-4);
|
|
10
|
+
border-radius: var(--border-radius-md);
|
|
11
|
+
border: 1px solid var(--border-color);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.tabs-list {
|
|
15
|
+
display: flex;
|
|
16
|
+
width: 100%;
|
|
17
|
+
gap: var(--gap-2);
|
|
18
|
+
align-items: center;
|
|
19
|
+
border-radius: var(--border-radius-md);
|
|
20
|
+
padding: var(--spacing-4);
|
|
21
|
+
border: 1px solid var(--border-color);
|
|
22
|
+
|
|
23
|
+
&:focus-visible {
|
|
24
|
+
outline: none;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.tabs-trigger {
|
|
29
|
+
align-items: center;
|
|
30
|
+
justify-content: center;
|
|
31
|
+
white-space: nowrap;
|
|
32
|
+
width: 100%;
|
|
33
|
+
|
|
34
|
+
/* &[data-state="active"] {
|
|
35
|
+
color: var(----primary-600);
|
|
36
|
+
box-shadow:
|
|
37
|
+
inset 0 -1px 0 0 currentColor,
|
|
38
|
+
0 1px 0 0 currentColor;
|
|
39
|
+
} */
|
|
40
|
+
|
|
41
|
+
&:focus {
|
|
42
|
+
position: relative;
|
|
43
|
+
/* NOTE: will override ring shadows for buttons */
|
|
44
|
+
/* Will revisit as we're going to rewrite our uikit tabs component */
|
|
45
|
+
/* box-shadow: 0 0 0 2px black; */
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.tabs-content {
|
|
50
|
+
margin-top: var(--spacing-8);
|
|
51
|
+
padding: 6px;
|
|
52
|
+
outline: none;
|
|
53
|
+
|
|
54
|
+
&[data-state="inactive"] {
|
|
55
|
+
display: none;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
&:focus {
|
|
59
|
+
outline: none;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
&:focus-visible {
|
|
63
|
+
outline: none;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
@layer infonomic-base, infonomic-functional, infonomic-utilities, infonomic-theme, infonomic-typography, infonomic-components;
|
|
2
|
+
|
|
3
|
+
@layer infonomic-components {
|
|
4
|
+
.tooltip {
|
|
5
|
+
font-size: 0.75rem;
|
|
6
|
+
line-height: 1;
|
|
7
|
+
color: var(--surface-item-text);
|
|
8
|
+
user-select: none;
|
|
9
|
+
padding: 0.625rem 1rem;
|
|
10
|
+
border-radius: var(--border-radius-sm);
|
|
11
|
+
border-width: var(--border-width-thin);
|
|
12
|
+
border-style: var(--border-style-solid);
|
|
13
|
+
background-color: var(--surface-panel-elevated);
|
|
14
|
+
border-color: var(--surface-panel-border);
|
|
15
|
+
box-shadow: var(--shadow-xs);
|
|
16
|
+
will-change: transform, opacity;
|
|
17
|
+
animation: var(--transition-normal);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/* Dark mode handled by semantic tokens in theme layer */
|
|
21
|
+
|
|
22
|
+
.tooltip[data-state="delayed-open"][data-side="top"] :global {
|
|
23
|
+
animation-name: slideDownAndFade;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.tooltip[data-state="delayed-open"][data-side="right"] :global {
|
|
27
|
+
animation-name: slideLeftAndFade;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
.tooltip[data-state="delayed-open"][data-side="left"] :global {
|
|
32
|
+
animation-name: slideRightAndFade;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.tooltip[data-state="delayed-open"][data-side="bottom"] :global {
|
|
36
|
+
animation-name: slideUpAndFade;
|
|
37
|
+
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.tooltip-arrow {
|
|
41
|
+
fill: var(--surface-panel-border);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/* Dark mode handled by semantic tokens in theme layer */
|
|
45
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
import type { HTMLAttributes } from 'astro/types'
|
|
3
|
+
|
|
4
|
+
interface Props extends HTMLAttributes<'div'> {
|
|
5
|
+
class?: string
|
|
6
|
+
width?: string
|
|
7
|
+
height?: string
|
|
8
|
+
menuItem?: boolean
|
|
9
|
+
svgClass?: string
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
import IconElement from './icon-element.astro'
|
|
13
|
+
import styles from './icons.module.css'
|
|
14
|
+
|
|
15
|
+
const { class: className, width, height, svgClass: svgClassName, menuItem, ...rest } = Astro.props
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
<IconElement
|
|
19
|
+
class:list={['check-icon', className]}
|
|
20
|
+
width={width}
|
|
21
|
+
height={height}
|
|
22
|
+
menuItem={menuItem}
|
|
23
|
+
{...rest}
|
|
24
|
+
>
|
|
25
|
+
<svg
|
|
26
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
27
|
+
viewBox="0 0 15 15"
|
|
28
|
+
class:list={[styles['fill-current'], svgClassName]}
|
|
29
|
+
focusable="false"
|
|
30
|
+
aria-hidden="true"
|
|
31
|
+
>
|
|
32
|
+
<path
|
|
33
|
+
d="M11.4669 3.72684C11.7558 3.91574 11.8369 4.30308 11.648 4.59198L7.39799 11.092C7.29783 11.2452 7.13556 11.3467 6.95402 11.3699C6.77247 11.3931 6.58989 11.3355 6.45446 11.2124L3.70446 8.71241C3.44905 8.48022 3.43023 8.08494 3.66242 7.82953C3.89461 7.57412 4.28989 7.55529 4.5453 7.78749L6.75292 9.79441L10.6018 3.90792C10.7907 3.61902 11.178 3.53795 11.4669 3.72684Z"
|
|
34
|
+
fill-rule="evenodd"
|
|
35
|
+
clip-rule="evenodd"></path>
|
|
36
|
+
</svg>
|
|
37
|
+
</IconElement>
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
import type { HTMLAttributes } from 'astro/types'
|
|
3
|
+
|
|
4
|
+
interface Props extends HTMLAttributes<'div'> {
|
|
5
|
+
class?: string
|
|
6
|
+
width?: string
|
|
7
|
+
height?: string
|
|
8
|
+
menuItem?: boolean
|
|
9
|
+
svgClass?: string
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
import IconElement from './icon-element.astro'
|
|
13
|
+
import styles from './icons.module.css'
|
|
14
|
+
|
|
15
|
+
const { class: className, width, height, svgClass: svgClassName, menuItem, ...rest } = Astro.props
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
<IconElement
|
|
19
|
+
class:list={['close-icon', className]}
|
|
20
|
+
width={width}
|
|
21
|
+
height={height}
|
|
22
|
+
menuItem={menuItem}
|
|
23
|
+
{...rest}
|
|
24
|
+
>
|
|
25
|
+
<svg
|
|
26
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
27
|
+
viewBox="0 0 15 15"
|
|
28
|
+
class:list={[styles['fill-current'], svgClassName]}
|
|
29
|
+
focusable="false"
|
|
30
|
+
aria-hidden="true"
|
|
31
|
+
{...rest}
|
|
32
|
+
>
|
|
33
|
+
<path
|
|
34
|
+
d="M12.8536 2.85355C13.0488 2.65829 13.0488 2.34171 12.8536 2.14645C12.6583 1.95118 12.3417 1.95118 12.1464 2.14645L7.5 6.79289L2.85355 2.14645C2.65829 1.95118 2.34171 1.95118 2.14645 2.14645C1.95118 2.34171 1.95118 2.65829 2.14645 2.85355L6.79289 7.5L2.14645 12.1464C1.95118 12.3417 1.95118 12.6583 2.14645 12.8536C2.34171 13.0488 2.65829 13.0488 2.85355 12.8536L7.5 8.20711L12.1464 12.8536C12.3417 13.0488 12.6583 13.0488 12.8536 12.8536C13.0488 12.6583 13.0488 12.3417 12.8536 12.1464L8.20711 7.5L12.8536 2.85355Z"
|
|
35
|
+
fill-rule="evenodd"
|
|
36
|
+
clip-rule="evenodd"></path>
|
|
37
|
+
</svg>
|
|
38
|
+
</IconElement>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
import type { HTMLAttributes } from 'astro/types'
|
|
3
|
+
|
|
4
|
+
interface Props extends HTMLAttributes<'div'> {
|
|
5
|
+
class?: string
|
|
6
|
+
width?: string
|
|
7
|
+
height?: string
|
|
8
|
+
menuItem?: boolean
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const { class: className, width = '22px', height = '22px', menuItem = false, ...rest } = Astro.props
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
<div
|
|
15
|
+
style={{
|
|
16
|
+
width,
|
|
17
|
+
height,
|
|
18
|
+
flex: `0 0 ${width}`,
|
|
19
|
+
alignItems: 'center',
|
|
20
|
+
justifyContent: 'center',
|
|
21
|
+
marginRight: menuItem ? '1.2rem' : '0'
|
|
22
|
+
}}
|
|
23
|
+
class={className}
|
|
24
|
+
{...rest}
|
|
25
|
+
>
|
|
26
|
+
<slot />
|
|
27
|
+
</div>
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
@layer infonomic-base, infonomic-utilities, infonomic-theme, infonomic-components;
|
|
2
|
+
|
|
3
|
+
@layer infonomic-components {
|
|
4
|
+
|
|
5
|
+
.element-root svg {
|
|
6
|
+
display: block;
|
|
7
|
+
margin: auto;
|
|
8
|
+
max-width: 100%;
|
|
9
|
+
max-height: 100%;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.stroke-none {
|
|
13
|
+
stroke: none;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.stroke-current {
|
|
17
|
+
stroke: currentColor;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.stroke-gray {
|
|
21
|
+
stroke: var(--gray-800);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.stroke-gray:is(:global(.dark) *) {
|
|
25
|
+
stroke: var(--gray-300);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.stroke-contrast {
|
|
29
|
+
stroke: var(--gray-950);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.stroke-contrast:is(:global(.dark) *) {
|
|
33
|
+
stroke: var(--gray-100);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.stroke-primary {
|
|
37
|
+
stroke: var(--primary-500);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.stroke-primary:is(:global(.dark) *) {
|
|
41
|
+
stroke: var(--primary-400);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.stroke-secondary {
|
|
45
|
+
stroke: var(--secondary-500);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.stroke-secondary:is(:global(.dark) *) {
|
|
49
|
+
stroke: var(--secondary-400);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.stroke-success {
|
|
53
|
+
stroke: var(--green-500);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.stroke-success:is(:global(.dark) *) {
|
|
57
|
+
stroke: var(--green-400);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.stroke-info {
|
|
61
|
+
stroke: var(--blue-500);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.stroke-info:is(:global(.dark) *) {
|
|
65
|
+
stroke: var(--blue-400);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.stroke-warning {
|
|
69
|
+
stroke: var(--yellow-500);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.stroke-warning:is(:global(.dark) *) {
|
|
73
|
+
stroke: var(--yellow-400);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.stroke-danger {
|
|
77
|
+
stroke: var(--red-500);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.stroke-danger:is(:global(.dark) *) {
|
|
81
|
+
stroke: var(--red-400);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.fill-none {
|
|
85
|
+
fill: none;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.fill-current {
|
|
89
|
+
fill: currentColor;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.fill-contrast {
|
|
93
|
+
fill: black;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.fill-contrast:is(:global(.dark) *) {
|
|
97
|
+
fill: white;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
.fill-gray {
|
|
101
|
+
stroke: var(--gray-700);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.fill-gray:is(:global(.dark) *) {
|
|
105
|
+
stroke: var(--gray-300);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.fill-primary {
|
|
109
|
+
fill: var(--primary-500);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.fill-primary:is(:global(.dark) *) {
|
|
113
|
+
fill: var(--primary-400);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.fill-secondary {
|
|
117
|
+
fill: var(--secondary-500);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.fill-secondary:is(:global(.dark) *) {
|
|
121
|
+
fill: var(--secondary-400);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.fill-success {
|
|
125
|
+
fill: var(--green-500);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.fill-success:is(:global(.dark) *) {
|
|
129
|
+
fill: var(--green-400);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
.fill-info {
|
|
133
|
+
fill: var(--blue-500);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
.fill-info:is(:global(.dark) *) {
|
|
137
|
+
fill: var(--blue-400);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
.fill-warning {
|
|
141
|
+
fill: var(--yellow-500);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.fill-warning:is(:global(.dark) *) {
|
|
145
|
+
fill: var(--yellow-400);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
.fill-danger {
|
|
149
|
+
fill: var(--red-500);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
.fill-danger:is(:global(.dark) *) {
|
|
153
|
+
fill: var(--red-400);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
import type { HTMLAttributes } from 'astro/types'
|
|
3
|
+
|
|
4
|
+
interface Props extends HTMLAttributes<'div'> {
|
|
5
|
+
class?: string
|
|
6
|
+
width?: string
|
|
7
|
+
height?: string
|
|
8
|
+
menuItem?: boolean
|
|
9
|
+
svgClass?: string
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
import IconElement from './icon-element.astro'
|
|
13
|
+
import styles from './icons.module.css'
|
|
14
|
+
|
|
15
|
+
const { class: className, width, height, svgClass: svgClassName, menuItem, ...rest } = Astro.props
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
<IconElement
|
|
19
|
+
class:list={['light-icon', className]}
|
|
20
|
+
width={width}
|
|
21
|
+
height={height}
|
|
22
|
+
menuItem={menuItem}
|
|
23
|
+
{...rest}
|
|
24
|
+
>
|
|
25
|
+
<svg
|
|
26
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
27
|
+
viewBox="0 0 24 24"
|
|
28
|
+
class:list={[styles['fill-current'], styles['stroke-none'], svgClassName]}
|
|
29
|
+
focusable="false"
|
|
30
|
+
aria-hidden="true"
|
|
31
|
+
>
|
|
32
|
+
<path
|
|
33
|
+
d="M12 9c1.65 0 3 1.35 3 3s-1.35 3-3 3-3-1.35-3-3 1.35-3 3-3m0-2c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zM2 13h2c.55 0 1-.45 1-1s-.45-1-1-1H2c-.55 0-1 .45-1 1s.45 1 1 1zm18 0h2c.55 0 1-.45 1-1s-.45-1-1-1h-2c-.55 0-1 .45-1 1s.45 1 1 1zM11 2v2c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1s-1 .45-1 1zm0 18v2c0 .55.45 1 1 1s1-.45 1-1v-2c0-.55-.45-1-1-1s-1 .45-1 1zM5.99 4.58c-.39-.39-1.03-.39-1.41 0-.39.39-.39 1.03 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0s.39-1.03 0-1.41L5.99 4.58zm12.37 12.37c-.39-.39-1.03-.39-1.41 0-.39.39-.39 1.03 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0 .39-.39.39-1.03 0-1.41l-1.06-1.06zm1.06-10.96c.39-.39.39-1.03 0-1.41-.39-.39-1.03-.39-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0l1.06-1.06zM7.05 18.36c.39-.39.39-1.03 0-1.41-.39-.39-1.03-.39-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0l1.06-1.06z"
|
|
34
|
+
></path>
|
|
35
|
+
</svg>
|
|
36
|
+
</IconElement>
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
import type { HTMLAttributes } from 'astro/types'
|
|
3
|
+
|
|
4
|
+
interface Props extends HTMLAttributes<'div'> {
|
|
5
|
+
class?: string
|
|
6
|
+
width?: string
|
|
7
|
+
height?: string
|
|
8
|
+
menuItem?: boolean
|
|
9
|
+
svgClass?: string
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
import IconElement from './icon-element.astro'
|
|
13
|
+
import styles from './icons.module.css'
|
|
14
|
+
|
|
15
|
+
const { class: className, width, height, svgClass: svgClassName, menuItem, ...rest } = Astro.props
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
<IconElement
|
|
19
|
+
class:list={['moon-icon', className]}
|
|
20
|
+
width={width}
|
|
21
|
+
height={height}
|
|
22
|
+
menuItem={menuItem}
|
|
23
|
+
{...rest}
|
|
24
|
+
>
|
|
25
|
+
<svg
|
|
26
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
27
|
+
viewBox="0 0 24 24"
|
|
28
|
+
class:list={[styles['fill-none'], styles['stroke-current'], svgClassName]}
|
|
29
|
+
focusable="false"
|
|
30
|
+
aria-hidden="true"
|
|
31
|
+
stroke-linecap="round"
|
|
32
|
+
stroke-linejoin="round"
|
|
33
|
+
stroke-width={1.75}
|
|
34
|
+
{...rest}
|
|
35
|
+
>
|
|
36
|
+
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z"></path>
|
|
37
|
+
</svg>
|
|
38
|
+
</IconElement>
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
import type { HTMLAttributes } from 'astro/types'
|
|
3
|
+
|
|
4
|
+
interface Props extends HTMLAttributes<'div'> {
|
|
5
|
+
class?: string
|
|
6
|
+
width?: string
|
|
7
|
+
height?: string
|
|
8
|
+
menuItem?: boolean
|
|
9
|
+
svgClass?: string
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
import IconElement from './icon-element.astro'
|
|
13
|
+
import styles from './icons.module.css'
|
|
14
|
+
|
|
15
|
+
const { class: className, width, height, svgClass: svgClassName, menuItem, ...rest } = Astro.props
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
<IconElement
|
|
19
|
+
class:list={['search-icon', className]}
|
|
20
|
+
width={width}
|
|
21
|
+
height={height}
|
|
22
|
+
menuItem={menuItem}
|
|
23
|
+
{...rest}
|
|
24
|
+
>
|
|
25
|
+
<svg
|
|
26
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
27
|
+
viewBox="0 0 24 24"
|
|
28
|
+
class:list={[styles['fill-current'], styles['stroke-none'], svgClassName]}
|
|
29
|
+
focusable="false"
|
|
30
|
+
aria-hidden="true"
|
|
31
|
+
stroke-linecap="round"
|
|
32
|
+
stroke-linejoin="round"
|
|
33
|
+
stroke-width={1.75}
|
|
34
|
+
{...rest}
|
|
35
|
+
>
|
|
36
|
+
<path
|
|
37
|
+
d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"
|
|
38
|
+
></path>
|
|
39
|
+
</svg>
|
|
40
|
+
</IconElement>
|