@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.
Files changed (70) hide show
  1. package/dist/astro.d.ts +51 -0
  2. package/dist/astro.js +51 -0
  3. package/dist/components/accordion/accordion.module.css +60 -0
  4. package/dist/components/avatar/avatar.module.css +54 -0
  5. package/dist/components/badge/badge.module.css +61 -0
  6. package/dist/components/button/button-group.module.css +19 -0
  7. package/dist/components/button/button.astro +86 -0
  8. package/dist/components/button/button.module.css +431 -0
  9. package/dist/components/button/control-buttons.module.css +132 -0
  10. package/dist/components/button/copy-button.module.css +56 -0
  11. package/dist/components/button/icon-button.astro +47 -0
  12. package/dist/components/card/card-content.astro +14 -0
  13. package/dist/components/card/card-description.astro +14 -0
  14. package/dist/components/card/card-footer.astro +14 -0
  15. package/dist/components/card/card-header.astro +14 -0
  16. package/dist/components/card/card-title.astro +14 -0
  17. package/dist/components/card/card.astro +41 -0
  18. package/dist/components/card/card.module.css +77 -0
  19. package/dist/components/container/container.astro +13 -0
  20. package/dist/components/container/container.module.css +36 -0
  21. package/dist/components/dropdown/dropdown.module.css +120 -0
  22. package/dist/components/forms/calendar.module.css +269 -0
  23. package/dist/components/forms/checkbox.astro +129 -0
  24. package/dist/components/forms/checkbox.js +1 -1
  25. package/dist/components/forms/checkbox.module.css +211 -0
  26. package/dist/components/forms/error-text.astro +14 -0
  27. package/dist/components/forms/error-text.module.css +9 -0
  28. package/dist/components/forms/help-text.astro +13 -0
  29. package/dist/components/forms/help-text.module.css +9 -0
  30. package/dist/components/forms/input-adornment.astro +26 -0
  31. package/dist/components/forms/input-adornment.module.css +21 -0
  32. package/dist/components/forms/input.astro +99 -0
  33. package/dist/components/forms/input.module.css +278 -0
  34. package/dist/components/forms/label.astro +24 -0
  35. package/dist/components/forms/label.module.css +15 -0
  36. package/dist/components/forms/radio-group.module.css +163 -0
  37. package/dist/components/forms/select.module.css +68 -0
  38. package/dist/components/forms/text-area.astro +77 -0
  39. package/dist/components/forms/text-area.module.css +10 -0
  40. package/dist/components/hamburger/hamburger.astro +30 -0
  41. package/dist/components/notifications/alert.module.css +110 -0
  42. package/dist/components/notifications/toast.module.css +237 -0
  43. package/dist/components/overlay/overlay.module.css +41 -0
  44. package/dist/components/pager/pagination.module.css +149 -0
  45. package/dist/components/scroll-area/scroll-area.module.css +64 -0
  46. package/dist/components/scroll-to-top/scroll-to-top.astro +75 -0
  47. package/dist/components/scroll-to-top/scroll-to-top.module.css +86 -0
  48. package/dist/components/section/section.astro +13 -0
  49. package/dist/components/section/section.module.css +9 -0
  50. package/dist/components/shimmer/shimmer.module.css +53 -0
  51. package/dist/components/table/table.module.css +100 -0
  52. package/dist/components/tabs/tabs.module.css +66 -0
  53. package/dist/components/tooltip/tooltip.module.css +45 -0
  54. package/dist/icons/check-icon.astro +37 -0
  55. package/dist/icons/close-icon.astro +38 -0
  56. package/dist/icons/icon-element.astro +27 -0
  57. package/dist/icons/icons.module.css +155 -0
  58. package/dist/icons/light-icon.astro +36 -0
  59. package/dist/icons/moon-icon.astro +38 -0
  60. package/dist/icons/search-icon.astro +40 -0
  61. package/dist/widgets/datepicker/datepicker.module.css +189 -0
  62. package/dist/widgets/drawer/drawer.module.css +112 -0
  63. package/dist/widgets/modal/modal.module.css +81 -0
  64. package/dist/widgets/timeline/timeline.module.css +87 -0
  65. package/package.json +5 -4
  66. package/src/astro.js +6 -0
  67. package/src/components/forms/checkbox.astro +129 -0
  68. package/src/components/forms/checkbox.tsx +1 -1
  69. package/src/components/forms/text-area.astro +77 -0
  70. 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>