@auvyx/ui 0.0.0-stage → 0.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 (143) hide show
  1. package/LICENSE +48 -0
  2. package/README.md +43 -2
  3. package/dist/auvyx.bundle.css +5941 -0
  4. package/dist/auvyx.chart.min.js +2 -0
  5. package/dist/auvyx.corners.min.js +2 -0
  6. package/dist/auvyx.css +10880 -0
  7. package/dist/auvyx.js +3222 -0
  8. package/dist/auvyx.min.css +2 -0
  9. package/dist/auvyx.min.js +19 -0
  10. package/dist/custom-elements.json +948 -0
  11. package/dist/elements/calendar.min.js +2 -0
  12. package/dist/elements/context-menu.min.js +2 -0
  13. package/dist/elements/data-table.min.js +2 -0
  14. package/dist/elements/date-picker.min.js +2 -0
  15. package/dist/elements/index.min.js +2 -0
  16. package/dist/elements/menu.min.js +2 -0
  17. package/dist/elements/resizable.min.js +2 -0
  18. package/dist/js/accordion.min.js +2 -0
  19. package/dist/js/calendar.min.js +2 -0
  20. package/dist/js/combobox.min.js +2 -0
  21. package/dist/js/command.min.js +2 -0
  22. package/dist/js/context-menu.min.js +2 -0
  23. package/dist/js/copy.min.js +2 -0
  24. package/dist/js/data-table.min.js +2 -0
  25. package/dist/js/date-picker.min.js +2 -0
  26. package/dist/js/drawer.min.js +2 -0
  27. package/dist/js/dropdown-menu.min.js +2 -0
  28. package/dist/js/manifest.json +114 -0
  29. package/dist/js/menu.min.js +2 -0
  30. package/dist/js/popover.min.js +2 -0
  31. package/dist/js/resizable.min.js +2 -0
  32. package/dist/js/select.min.js +2 -0
  33. package/dist/js/sidebar.min.js +2 -0
  34. package/dist/js/slider.min.js +2 -0
  35. package/dist/js/tabs.min.js +2 -0
  36. package/dist/js/toast.min.js +19 -0
  37. package/dist/styles/auvyx-luma.min.css +3 -0
  38. package/dist/styles/auvyx-lyra.min.css +3 -0
  39. package/dist/styles/auvyx-maia.min.css +3 -0
  40. package/dist/styles/auvyx-mira.min.css +3 -0
  41. package/dist/styles/auvyx-nova.min.css +3 -0
  42. package/dist/styles/auvyx-rhea.min.css +3 -0
  43. package/dist/styles/auvyx-sera.min.css +3 -0
  44. package/dist/styles/auvyx-vega.min.css +3 -0
  45. package/dist/types/elements.d.ts +262 -0
  46. package/dist/types/react.d.ts +181 -0
  47. package/dist/types/vue.d.ts +155 -0
  48. package/dist/ui/accordion.css +91 -0
  49. package/dist/ui/accordion.js +249 -0
  50. package/dist/ui/accordion.native.css +24 -0
  51. package/dist/ui/alert.css +119 -0
  52. package/dist/ui/aspect-ratio.css +38 -0
  53. package/dist/ui/attachment.css +211 -0
  54. package/dist/ui/avatar.css +204 -0
  55. package/dist/ui/badge.css +183 -0
  56. package/dist/ui/base.css +1200 -0
  57. package/dist/ui/breadcrumb.css +90 -0
  58. package/dist/ui/bubble.css +171 -0
  59. package/dist/ui/button-group.css +110 -0
  60. package/dist/ui/button.css +328 -0
  61. package/dist/ui/calendar.css +260 -0
  62. package/dist/ui/calendar.js +317 -0
  63. package/dist/ui/card.css +126 -0
  64. package/dist/ui/carousel.css +172 -0
  65. package/dist/ui/chart.css +130 -0
  66. package/dist/ui/checkbox.css +119 -0
  67. package/dist/ui/code-block.css +235 -0
  68. package/dist/ui/combobox.css +500 -0
  69. package/dist/ui/combobox.js +757 -0
  70. package/dist/ui/command.css +366 -0
  71. package/dist/ui/command.js +382 -0
  72. package/dist/ui/context-menu.css +17 -0
  73. package/dist/ui/context-menu.js +52 -0
  74. package/dist/ui/copy.js +56 -0
  75. package/dist/ui/data-table.css +114 -0
  76. package/dist/ui/data-table.js +140 -0
  77. package/dist/ui/date-picker.css +14 -0
  78. package/dist/ui/date-picker.js +101 -0
  79. package/dist/ui/dialog.css +363 -0
  80. package/dist/ui/dialog.native.css +6 -0
  81. package/dist/ui/drawer.css +238 -0
  82. package/dist/ui/drawer.js +265 -0
  83. package/dist/ui/dropdown-menu.css +193 -0
  84. package/dist/ui/dropdown-menu.js +388 -0
  85. package/dist/ui/empty.css +111 -0
  86. package/dist/ui/field.css +293 -0
  87. package/dist/ui/hover-card.css +85 -0
  88. package/dist/ui/input-group.css +269 -0
  89. package/dist/ui/input-otp.css +101 -0
  90. package/dist/ui/input.css +117 -0
  91. package/dist/ui/item.css +223 -0
  92. package/dist/ui/kbd.css +50 -0
  93. package/dist/ui/label.css +48 -0
  94. package/dist/ui/manifest.json +667 -0
  95. package/dist/ui/marker.css +66 -0
  96. package/dist/ui/menu.js +161 -0
  97. package/dist/ui/menubar.css +55 -0
  98. package/dist/ui/message-scroller.css +83 -0
  99. package/dist/ui/message.css +69 -0
  100. package/dist/ui/native-select.css +130 -0
  101. package/dist/ui/navigation-menu.css +166 -0
  102. package/dist/ui/popover.css +154 -0
  103. package/dist/ui/popover.js +268 -0
  104. package/dist/ui/popover.native.css +84 -0
  105. package/dist/ui/progress.css +29 -0
  106. package/dist/ui/questionnaire.css +188 -0
  107. package/dist/ui/radio-group.css +115 -0
  108. package/dist/ui/resizable.css +94 -0
  109. package/dist/ui/resizable.js +95 -0
  110. package/dist/ui/scroll-area.css +43 -0
  111. package/dist/ui/select.css +289 -0
  112. package/dist/ui/select.js +646 -0
  113. package/dist/ui/sheet.css +219 -0
  114. package/dist/ui/sidebar.css +716 -0
  115. package/dist/ui/sidebar.js +287 -0
  116. package/dist/ui/skeleton.css +13 -0
  117. package/dist/ui/slider.css +184 -0
  118. package/dist/ui/slider.js +206 -0
  119. package/dist/ui/switch.css +156 -0
  120. package/dist/ui/table.css +157 -0
  121. package/dist/ui/tabs.css +240 -0
  122. package/dist/ui/tabs.js +288 -0
  123. package/dist/ui/textarea.css +91 -0
  124. package/dist/ui/toast.css +110 -0
  125. package/dist/ui/toast.js +378 -0
  126. package/dist/ui/toggle-group.css +42 -0
  127. package/dist/ui/toggle.css +150 -0
  128. package/dist/ui/tooltip.css +319 -0
  129. package/dist/ui/trace.css +142 -0
  130. package/dist/ui/typography.css +184 -0
  131. package/dist/wc/accordion.min.js +2 -0
  132. package/dist/wc/combobox.min.js +2 -0
  133. package/dist/wc/command.min.js +2 -0
  134. package/dist/wc/drawer.min.js +2 -0
  135. package/dist/wc/dropdown-menu.min.js +2 -0
  136. package/dist/wc/manifest.json +154 -0
  137. package/dist/wc/popover.min.js +2 -0
  138. package/dist/wc/select.min.js +2 -0
  139. package/dist/wc/sidebar.min.js +2 -0
  140. package/dist/wc/slider.min.js +2 -0
  141. package/dist/wc/tabs.min.js +2 -0
  142. package/dist/wc/toast.min.js +19 -0
  143. package/package.json +62 -4
@@ -0,0 +1,126 @@
1
+ /* @auvyx/ui card | order 8 */
2
+ @layer components {
3
+ .card {
4
+ display: flex;
5
+ flex-direction: column;
6
+ > header {
7
+ container-type: inline-size;
8
+ container-name: card-header;
9
+ display: grid;
10
+ grid-auto-rows: min-content;
11
+ align-items: flex-start;
12
+ &:has(>[data-slot=card-action],>.card-action) {
13
+ grid-template-columns: 1fr auto;
14
+ }
15
+ &:has(>p) {
16
+ grid-template-rows: auto auto;
17
+ }
18
+ }
19
+ > header > :is(h2, h3, [data-title], .card-title) {
20
+ --tw-leading: 1;
21
+ line-height: 1;
22
+ }
23
+ > header > :is([data-slot='card-action'], .card-action) {
24
+ grid-column-start: 2;
25
+ grid-row: span 2 / span 2;
26
+ grid-row-start: 1;
27
+ align-self: flex-start;
28
+ justify-self: flex-end;
29
+ }
30
+ > header > menu.card-action {
31
+ margin: 0;
32
+ list-style-type: none;
33
+ padding: 0;
34
+ }
35
+ > footer {
36
+ display: flex;
37
+ align-items: center;
38
+ }
39
+ }
40
+ }
41
+
42
+ @layer components {
43
+ .card {
44
+ overflow: hidden;
45
+ border-radius: var(--radius-xl);
46
+ background-color: var(--color-card);
47
+ font-size: var(--text-sm);
48
+ line-height: var(--tw-leading, var(--text-sm--line-height));
49
+ color: var(--color-card-foreground);
50
+ --tw-shadow: var(--shadow-xs, 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05)));
51
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
52
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
53
+ --tw-ring-color: color-mix(in oklab, var(--color-foreground) 10%, transparent);
54
+ &:has(>img:first-child) {
55
+ padding-top: 0;
56
+ }
57
+ &>img:first-child {
58
+ border-top-left-radius: var(--radius-xl);
59
+ border-top-right-radius: var(--radius-xl);
60
+ }
61
+ &>img:last-child {
62
+ border-bottom-right-radius: var(--radius-xl);
63
+ border-bottom-left-radius: var(--radius-xl);
64
+ }
65
+ }
66
+ .card {
67
+ gap: calc(var(--spacing) * 6);
68
+ padding-block: calc(var(--spacing) * 6);
69
+ }
70
+ .card[data-size='sm'] {
71
+ gap: calc(var(--spacing) * 4);
72
+ padding-block: calc(var(--spacing) * 4);
73
+ }
74
+ .card > header {
75
+ gap: var(--spacing);
76
+ border-top-left-radius: var(--radius-xl);
77
+ border-top-right-radius: var(--radius-xl);
78
+ padding-inline: calc(var(--spacing) * 6);
79
+ &:is(.border-b) {
80
+ padding-bottom: calc(var(--spacing) * 6);
81
+ }
82
+ }
83
+ .card[data-size='sm'] > header {
84
+ padding-inline: calc(var(--spacing) * 4);
85
+ &:is(.border-b) {
86
+ padding-bottom: calc(var(--spacing) * 4);
87
+ }
88
+ }
89
+ .card > header > :is(h2, h3, [data-title], .card-title) {
90
+ font-size: var(--text-base);
91
+ line-height: var(--tw-leading, var(--text-base--line-height));
92
+ --tw-leading: var(--leading-normal);
93
+ line-height: var(--leading-normal);
94
+ --tw-font-weight: var(--font-weight-medium);
95
+ font-weight: var(--font-weight-medium);
96
+ }
97
+ .card[data-size='sm'] > header > :is(h2, h3, [data-title], .card-title) {
98
+ font-size: var(--text-sm);
99
+ line-height: var(--tw-leading, var(--text-sm--line-height));
100
+ }
101
+ .card > header > :is(p, [data-description], .card-description) {
102
+ font-size: var(--text-sm);
103
+ line-height: var(--tw-leading, var(--text-sm--line-height));
104
+ color: var(--color-muted-foreground);
105
+ }
106
+ .card > section {
107
+ padding-inline: calc(var(--spacing) * 6);
108
+ }
109
+ .card[data-size='sm'] > section {
110
+ padding-inline: calc(var(--spacing) * 4);
111
+ }
112
+ .card > footer {
113
+ border-bottom-right-radius: var(--radius-xl);
114
+ border-bottom-left-radius: var(--radius-xl);
115
+ padding-inline: calc(var(--spacing) * 6);
116
+ &:is(.border-t) {
117
+ padding-top: calc(var(--spacing) * 6);
118
+ }
119
+ }
120
+ .card[data-size='sm'] > footer {
121
+ padding-inline: calc(var(--spacing) * 4);
122
+ &:is(.border-t) {
123
+ padding-top: calc(var(--spacing) * 4);
124
+ }
125
+ }
126
+ }
@@ -0,0 +1,172 @@
1
+ /* @auvyx/ui carousel | order 43 */
2
+ @layer components {
3
+ .carousel {
4
+ --per-view: 1;
5
+ --carousel-gap: 1rem;
6
+ position: relative;
7
+ &[data-items='2'] {
8
+ --per-view: 2;
9
+ }
10
+ &[data-items='3'] {
11
+ --per-view: 3;
12
+ }
13
+ &[data-items='4'] {
14
+ --per-view: 4;
15
+ }
16
+ > :is(ol, ul) {
17
+ margin: 0;
18
+ display: flex;
19
+ list-style-type: none;
20
+ overflow-x: auto;
21
+ overscroll-behavior-x: contain;
22
+ padding: 0;
23
+ gap: var(--carousel-gap);
24
+ scroll-snap-type: x mandatory;
25
+ scroll-behavior: smooth;
26
+ scrollbar-width: none;
27
+ &::-webkit-scrollbar {
28
+ display: none;
29
+ }
30
+ > li {
31
+ min-width: 0;
32
+ flex-shrink: 0;
33
+ flex-grow: 0;
34
+ flex-basis: calc((100% - var(--carousel-gap) * (var(--per-view) - 1)) / var(--per-view));
35
+ scroll-snap-align: start;
36
+ }
37
+ }
38
+ &[data-orientation='vertical'] > :is(ol, ul) {
39
+ flex-direction: column;
40
+ overflow-x: hidden;
41
+ overflow-y: auto;
42
+ block-size: var(--carousel-height, 20rem);
43
+ scroll-snap-type: y mandatory;
44
+ }
45
+ @supports selector(::scroll-button(*)) {
46
+ &:not([data-orientation='vertical']) {
47
+ padding-inline: var(--carousel-gutter, 2.75rem);
48
+ }
49
+ &[data-orientation='vertical'] {
50
+ padding-block: var(--carousel-gutter, 2.75rem);
51
+ }
52
+ }
53
+ > :is(ol, ul)::scroll-button(*) {
54
+ position: absolute;
55
+ z-index: 10;
56
+ cursor: pointer;
57
+ }
58
+ > :is(ol, ul)::scroll-button(inline-start) {
59
+ content: '' / 'Previous slide';
60
+ }
61
+ > :is(ol, ul)::scroll-button(inline-end) {
62
+ content: '' / 'Next slide';
63
+ }
64
+ &:not([data-orientation='vertical']) > :is(ol, ul) {
65
+ &::scroll-button(inline-start), &::scroll-button(inline-end) {
66
+ top: 50%;
67
+ translate: 0 -50%;
68
+ }
69
+ &::scroll-button(inline-start) {
70
+ inset-inline-start: 0;
71
+ }
72
+ &::scroll-button(inline-end) {
73
+ inset-inline-end: 0;
74
+ }
75
+ }
76
+ &[data-orientation='vertical'] > :is(ol, ul) {
77
+ &::scroll-button(block-start), &::scroll-button(block-end) {
78
+ left: 50%;
79
+ translate: -50% 0;
80
+ }
81
+ &::scroll-button(block-start) {
82
+ content: '' / 'Previous slide';
83
+ top: 0;
84
+ }
85
+ &::scroll-button(block-end) {
86
+ content: '' / 'Next slide';
87
+ bottom: 0;
88
+ }
89
+ }
90
+ &[data-markers] > :is(ol, ul) {
91
+ scroll-marker-group: after;
92
+ &::scroll-marker-group {
93
+ display: flex;
94
+ justify-content: center;
95
+ }
96
+ > li::scroll-marker {
97
+ content: '' / attr(aria-label);
98
+ cursor: pointer;
99
+ }
100
+ }
101
+ }
102
+ }
103
+
104
+ @layer components {
105
+ .carousel > :is(ol, ul)::scroll-button(*) {
106
+ width: calc(var(--spacing) * 8);
107
+ height: calc(var(--spacing) * 8);
108
+ border-radius: calc(infinity * 1px);
109
+ border-style: var(--tw-border-style);
110
+ border-width: 1px;
111
+ border-color: var(--color-input);
112
+ background-color: var(--color-background);
113
+ color: var(--color-foreground);
114
+ --tw-shadow: var(--shadow-xs, 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05)));
115
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
116
+ transition-property: opacity,background-color;
117
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
118
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
119
+ background-image: var(--carousel-arrow-icon);
120
+ background-position: center;
121
+ background-repeat: no-repeat;
122
+ background-size: 1rem;
123
+ }
124
+ .carousel > :is(ol, ul)::scroll-button(*):hover {
125
+ background-color: var(--color-muted);
126
+ }
127
+ .carousel > :is(ol, ul)::scroll-button(*):focus-visible {
128
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
129
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
130
+ --tw-ring-color: var(--color-ring);
131
+ @supports (color: color-mix(in lab, red, red)) {
132
+ --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent);
133
+ }
134
+ --tw-outline-style: none;
135
+ outline-style: none;
136
+ }
137
+ .carousel > :is(ol, ul)::scroll-button(*):disabled {
138
+ cursor: default;
139
+ opacity: 50%;
140
+ }
141
+ .carousel > :is(ol, ul)::scroll-button(inline-start) {
142
+ --carousel-arrow-icon: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="oklch(0.556 0 0)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M19 12H5"/><path d="m12 19-7-7 7-7"/></svg>');
143
+ }
144
+ .carousel > :is(ol, ul)::scroll-button(inline-end) {
145
+ --carousel-arrow-icon: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="oklch(0.556 0 0)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"/><path d="m12 5 7 7-7 7"/></svg>');
146
+ }
147
+ .carousel > :is(ol, ul)::scroll-button(block-start) {
148
+ --carousel-arrow-icon: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="oklch(0.556 0 0)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 19V5"/><path d="m5 12 7-7 7 7"/></svg>');
149
+ }
150
+ .carousel > :is(ol, ul)::scroll-button(block-end) {
151
+ --carousel-arrow-icon: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="oklch(0.556 0 0)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 5v14"/><path d="m19 12-7 7-7-7"/></svg>');
152
+ }
153
+ .carousel[data-markers] > :is(ol, ul)::scroll-marker-group {
154
+ margin-top: calc(var(--spacing) * 3);
155
+ gap: calc(var(--spacing) * 1.5);
156
+ }
157
+ .carousel[data-markers] > :is(ol, ul) > li::scroll-marker {
158
+ width: calc(var(--spacing) * 2);
159
+ height: calc(var(--spacing) * 2);
160
+ border-radius: calc(infinity * 1px);
161
+ background-color: var(--color-muted-foreground);
162
+ @supports (color: color-mix(in lab, red, red)) {
163
+ background-color: color-mix(in oklab, var(--color-muted-foreground) 30%, transparent);
164
+ }
165
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
166
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
167
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
168
+ }
169
+ .carousel[data-markers] > :is(ol, ul) > li::scroll-marker:target-current {
170
+ background-color: var(--color-foreground);
171
+ }
172
+ }
@@ -0,0 +1,130 @@
1
+ /* @auvyx/ui chart | order 9 */
2
+ @layer components {
3
+ .chart {
4
+ position: relative;
5
+ display: flex;
6
+ aspect-ratio: var(--aspect-video);
7
+ width: 100%;
8
+ justify-content: center;
9
+ font-size: var(--text-xs);
10
+ line-height: var(--tw-leading, var(--text-xs--line-height));
11
+ }
12
+ .chart > canvas {
13
+ display: block;
14
+ width: 100%;
15
+ height: 100%;
16
+ }
17
+ .chart-tooltip {
18
+ pointer-events: none;
19
+ position: fixed;
20
+ z-index: 50;
21
+ display: grid;
22
+ min-width: calc(var(--spacing) * 32);
23
+ --tw-translate-x: calc(calc(1 / 2 * 100%) * -1);
24
+ --tw-translate-y: calc(var(--spacing) * 2);
25
+ translate: var(--tw-translate-x) var(--tw-translate-y);
26
+ align-items: flex-start;
27
+ transition-property: left,top,opacity;
28
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
29
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
30
+ --tw-duration: 150ms;
31
+ transition-duration: 150ms;
32
+ --tw-ease: var(--ease-out);
33
+ transition-timing-function: var(--ease-out);
34
+ }
35
+ .chart-tooltip[hidden] {
36
+ opacity: 0%;
37
+ }
38
+ .chart-tooltip-items {
39
+ display: grid;
40
+ gap: calc(var(--spacing) * 1.5);
41
+ }
42
+ .chart-tooltip-item {
43
+ display: flex;
44
+ width: 100%;
45
+ flex-wrap: wrap;
46
+ align-items: center;
47
+ gap: calc(var(--spacing) * 2);
48
+ }
49
+ .chart-tooltip-indicator {
50
+ width: calc(var(--spacing) * 2.5);
51
+ height: calc(var(--spacing) * 2.5);
52
+ flex-shrink: 0;
53
+ border-radius: 2px;
54
+ background-color: var(--chart-indicator-color);
55
+ }
56
+ .chart-legend-indicator {
57
+ width: calc(var(--spacing) * 2);
58
+ height: calc(var(--spacing) * 2);
59
+ flex-shrink: 0;
60
+ border-radius: 2px;
61
+ background-color: var(--chart-indicator-color);
62
+ }
63
+ .chart-tooltip-label {
64
+ --tw-leading: 1;
65
+ line-height: 1;
66
+ color: var(--color-muted-foreground);
67
+ }
68
+ .chart-tooltip-value {
69
+ margin-inline-start: auto;
70
+ font-family: var(--font-mono);
71
+ --tw-leading: 1;
72
+ line-height: 1;
73
+ --tw-font-weight: var(--font-weight-medium);
74
+ font-weight: var(--font-weight-medium);
75
+ --tw-numeric-spacing: tabular-nums;
76
+ font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);
77
+ }
78
+ .chart-legend {
79
+ display: flex;
80
+ flex-wrap: wrap;
81
+ align-items: center;
82
+ justify-content: center;
83
+ gap: calc(var(--spacing) * 4);
84
+ padding-top: calc(var(--spacing) * 3);
85
+ }
86
+ .chart-legend-item {
87
+ display: flex;
88
+ align-items: center;
89
+ gap: calc(var(--spacing) * 1.5);
90
+ font-size: var(--text-xs);
91
+ line-height: var(--tw-leading, var(--text-xs--line-height));
92
+ }
93
+ .chart-legend-item[aria-pressed='false'] {
94
+ opacity: 70%;
95
+ }
96
+ }
97
+
98
+ @layer components {
99
+ .chart {
100
+ --chart-bar-radius: 6px;
101
+ }
102
+ .chart-tooltip {
103
+ gap: calc(var(--spacing) * 1.5);
104
+ border-radius: var(--radius-lg);
105
+ border-style: var(--tw-border-style);
106
+ border-width: 1px;
107
+ border-color: var(--color-border);
108
+ @supports (color: color-mix(in lab, red, red)) {
109
+ border-color: color-mix(in oklab, var(--color-border) 50%, transparent);
110
+ }
111
+ background-color: var(--color-background);
112
+ padding-inline: calc(var(--spacing) * 2.5);
113
+ padding-block: calc(var(--spacing) * 1.5);
114
+ font-size: var(--text-xs);
115
+ line-height: var(--tw-leading, var(--text-xs--line-height));
116
+ color: var(--color-foreground);
117
+ --tw-shadow: var(--shadow-xl, 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1)));
118
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
119
+ }
120
+ .chart-tooltip-title {
121
+ --tw-font-weight: var(--font-weight-medium);
122
+ font-weight: var(--font-weight-medium);
123
+ }
124
+ .chart-legend-item {
125
+ color: var(--color-foreground);
126
+ }
127
+ .chart-legend-item[aria-pressed='false'] {
128
+ color: var(--color-muted-foreground);
129
+ }
130
+ }
@@ -0,0 +1,119 @@
1
+ /* @auvyx/ui checkbox | order 17 */
2
+ @layer components {
3
+ .field > input[type='checkbox']:not([role='switch']), .input[type='checkbox']:not([role='switch']) {
4
+ position: relative;
5
+ flex-shrink: 0;
6
+ appearance: none;
7
+ --tw-outline-style: none;
8
+ outline-style: none;
9
+ &:disabled {
10
+ cursor: not-allowed;
11
+ }
12
+ &:disabled {
13
+ opacity: 50%;
14
+ }
15
+ &:checked:after {
16
+ display: block;
17
+ background-color: currentcolor;
18
+ --tw-content: '';
19
+ content: var(--tw-content);
20
+ mask-image: var(--check-icon);
21
+ mask-size: 0.875rem;
22
+ mask-position: center;
23
+ mask-repeat: no-repeat;
24
+ }
25
+ }
26
+ }
27
+
28
+ @layer components {
29
+ .field > input[type='checkbox']:not([role='switch']), .input[type='checkbox']:not([role='switch']) {
30
+ display: flex;
31
+ width: calc(var(--spacing) * 4);
32
+ height: calc(var(--spacing) * 4);
33
+ align-items: center;
34
+ justify-content: center;
35
+ border-radius: 4px;
36
+ border-style: var(--tw-border-style);
37
+ border-width: 1px;
38
+ border-color: var(--color-input);
39
+ --tw-shadow: var(--shadow-xs, 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05)));
40
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
41
+ transition-property: box-shadow;
42
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
43
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
44
+ &:checked {
45
+ border-color: var(--color-primary);
46
+ }
47
+ &:checked {
48
+ background-color: var(--color-primary);
49
+ }
50
+ &:checked {
51
+ color: var(--color-primary-foreground);
52
+ }
53
+ &:focus-visible {
54
+ border-color: var(--color-ring);
55
+ }
56
+ &:focus-visible {
57
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
58
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
59
+ }
60
+ &:focus-visible {
61
+ --tw-ring-color: var(--color-ring);
62
+ @supports (color: color-mix(in lab, red, red)) {
63
+ --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent);
64
+ }
65
+ }
66
+ :where(*[data-disabled="true"]) & {
67
+ opacity: 50%;
68
+ }
69
+ &[aria-invalid="true"] {
70
+ border-color: var(--color-destructive);
71
+ }
72
+ &[aria-invalid="true"] {
73
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
74
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
75
+ }
76
+ &[aria-invalid="true"] {
77
+ --tw-ring-color: var(--color-destructive);
78
+ @supports (color: color-mix(in lab, red, red)) {
79
+ --tw-ring-color: color-mix(in oklab, var(--color-destructive) 20%, transparent);
80
+ }
81
+ }
82
+ &[aria-invalid="true"] {
83
+ &:checked {
84
+ border-color: var(--color-primary);
85
+ }
86
+ }
87
+ &:is(html.dark *) {
88
+ background-color: var(--color-input);
89
+ @supports (color: color-mix(in lab, red, red)) {
90
+ background-color: color-mix(in oklab, var(--color-input) 30%, transparent);
91
+ }
92
+ }
93
+ &:is(html.dark *) {
94
+ &:checked {
95
+ background-color: var(--color-primary);
96
+ }
97
+ }
98
+ &:is(html.dark *) {
99
+ &[aria-invalid="true"] {
100
+ border-color: var(--color-destructive);
101
+ @supports (color: color-mix(in lab, red, red)) {
102
+ border-color: color-mix(in oklab, var(--color-destructive) 50%, transparent);
103
+ }
104
+ }
105
+ }
106
+ &:is(html.dark *) {
107
+ &[aria-invalid="true"] {
108
+ --tw-ring-color: var(--color-destructive);
109
+ @supports (color: color-mix(in lab, red, red)) {
110
+ --tw-ring-color: color-mix(in oklab, var(--color-destructive) 40%, transparent);
111
+ }
112
+ }
113
+ }
114
+ }
115
+ :is(.field > input[type='checkbox']:not([role='switch']), .input[type='checkbox']:not([role='switch'])):checked:after {
116
+ width: calc(var(--spacing) * 3.5);
117
+ height: calc(var(--spacing) * 3.5);
118
+ }
119
+ }