@jixic/react-ui 0.1.0 → 0.1.1

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/styles.css CHANGED
@@ -96,6 +96,12 @@
96
96
 
97
97
  .ui-button:focus-visible,
98
98
  .ui-input:focus-visible,
99
+ .ui-textarea:focus-visible,
100
+ .ui-select:focus-visible,
101
+ .ui-checkbox:focus-visible,
102
+ .ui-radio:focus-visible,
103
+ .ui-switch-input:focus-visible + .ui-switch-track,
104
+ .ui-tab:focus-visible,
99
105
  .ui-modal-close:focus-visible {
100
106
  box-shadow: var(--ui-focus-ring);
101
107
  outline: none;
@@ -103,7 +109,11 @@
103
109
 
104
110
  .ui-button:disabled,
105
111
  .ui-button[data-loading="true"],
106
- .ui-input:disabled {
112
+ .ui-input:disabled,
113
+ .ui-checkbox:disabled,
114
+ .ui-radio:disabled,
115
+ .ui-switch-input:disabled + .ui-switch-track,
116
+ .ui-tab:disabled {
107
117
  cursor: not-allowed;
108
118
  opacity: 0.62;
109
119
  }
@@ -201,6 +211,125 @@
201
211
  color: var(--ui-color-danger);
202
212
  }
203
213
 
214
+ .ui-textarea {
215
+ min-height: 6rem;
216
+ resize: vertical;
217
+ }
218
+
219
+ .ui-select {
220
+ appearance: none;
221
+ background-image:
222
+ linear-gradient(45deg, transparent 50%, var(--ui-color-muted-foreground) 50%),
223
+ linear-gradient(135deg, var(--ui-color-muted-foreground) 50%, transparent 50%);
224
+ background-position:
225
+ calc(100% - 1rem) 50%,
226
+ calc(100% - 0.7rem) 50%;
227
+ background-repeat: no-repeat;
228
+ background-size:
229
+ 0.32rem 0.32rem,
230
+ 0.32rem 0.32rem;
231
+ padding-right: 2.25rem;
232
+ }
233
+
234
+ .ui-choice-field,
235
+ .ui-radio-group {
236
+ border: 0;
237
+ display: grid;
238
+ gap: var(--ui-space-2);
239
+ margin: 0;
240
+ padding: 0;
241
+ }
242
+
243
+ .ui-choice,
244
+ .ui-switch {
245
+ align-items: flex-start;
246
+ color: var(--ui-color-foreground);
247
+ display: flex;
248
+ font-family: var(--ui-font-family);
249
+ gap: var(--ui-space-3);
250
+ }
251
+
252
+ .ui-choice {
253
+ cursor: pointer;
254
+ }
255
+
256
+ .ui-choice-copy {
257
+ display: grid;
258
+ gap: var(--ui-space-1);
259
+ }
260
+
261
+ .ui-choice-label {
262
+ font-size: var(--ui-font-size-md);
263
+ font-weight: 600;
264
+ line-height: 1.35;
265
+ }
266
+
267
+ .ui-choice-description {
268
+ color: var(--ui-color-muted-foreground);
269
+ font-size: var(--ui-font-size-sm);
270
+ line-height: var(--ui-line-height);
271
+ }
272
+
273
+ .ui-checkbox,
274
+ .ui-radio {
275
+ accent-color: var(--ui-color-primary);
276
+ height: 1rem;
277
+ margin: 0.175rem 0 0;
278
+ width: 1rem;
279
+ }
280
+
281
+ .ui-radio-options {
282
+ display: grid;
283
+ gap: var(--ui-space-2);
284
+ margin-top: var(--ui-space-2);
285
+ }
286
+
287
+ .ui-switch {
288
+ align-items: center;
289
+ cursor: pointer;
290
+ justify-content: space-between;
291
+ }
292
+
293
+ .ui-switch-input {
294
+ height: 1px;
295
+ margin: 0;
296
+ opacity: 0;
297
+ position: absolute;
298
+ width: 1px;
299
+ }
300
+
301
+ .ui-switch-track {
302
+ align-items: center;
303
+ background: var(--ui-color-border);
304
+ border-radius: 999px;
305
+ display: inline-flex;
306
+ flex: 0 0 auto;
307
+ height: 1.5rem;
308
+ padding: 0.125rem;
309
+ transition:
310
+ background-color 120ms ease,
311
+ box-shadow 120ms ease;
312
+ width: 2.75rem;
313
+ }
314
+
315
+ .ui-switch-thumb {
316
+ background: var(--ui-color-surface);
317
+ border-radius: 999px;
318
+ box-shadow: 0 1px 2px rgb(15 23 42 / 22%);
319
+ display: block;
320
+ height: 1.25rem;
321
+ transition: transform 120ms ease;
322
+ width: 1.25rem;
323
+ }
324
+
325
+ .ui-switch-input:checked + .ui-switch-track {
326
+ background: var(--ui-color-primary);
327
+ }
328
+
329
+ .ui-switch-input:checked + .ui-switch-track .ui-switch-thumb {
330
+ transform: translateX(1.25rem);
331
+ }
332
+
204
333
  .ui-card {
205
334
  background: var(--ui-color-surface);
206
335
  border: 1px solid var(--ui-color-border);
@@ -422,3 +551,115 @@
422
551
  margin: 0;
423
552
  max-width: 42rem;
424
553
  }
554
+
555
+ .ui-tabs {
556
+ color: var(--ui-color-foreground);
557
+ display: grid;
558
+ font-family: var(--ui-font-family);
559
+ gap: var(--ui-space-4);
560
+ width: 100%;
561
+ }
562
+
563
+ .ui-tab-list {
564
+ align-items: center;
565
+ border-bottom: 1px solid var(--ui-color-border);
566
+ display: flex;
567
+ gap: var(--ui-space-2);
568
+ overflow-x: auto;
569
+ }
570
+
571
+ .ui-tab {
572
+ background: transparent;
573
+ border: 0;
574
+ border-bottom: 2px solid transparent;
575
+ color: var(--ui-color-muted-foreground);
576
+ cursor: pointer;
577
+ font-family: var(--ui-font-family);
578
+ font-size: var(--ui-font-size-md);
579
+ font-weight: 700;
580
+ padding: var(--ui-space-3) var(--ui-space-2);
581
+ }
582
+
583
+ .ui-tab[aria-selected="true"] {
584
+ border-bottom-color: var(--ui-color-primary);
585
+ color: var(--ui-color-foreground);
586
+ }
587
+
588
+ .ui-tab-panel {
589
+ line-height: var(--ui-line-height);
590
+ }
591
+
592
+ .ui-avatar {
593
+ align-items: center;
594
+ background: var(--ui-color-muted);
595
+ border: 1px solid var(--ui-color-border);
596
+ border-radius: 999px;
597
+ color: var(--ui-color-foreground);
598
+ display: inline-flex;
599
+ flex: 0 0 auto;
600
+ font-family: var(--ui-font-family);
601
+ font-weight: 800;
602
+ justify-content: center;
603
+ overflow: hidden;
604
+ text-transform: uppercase;
605
+ }
606
+
607
+ .ui-avatar-sm {
608
+ font-size: 0.75rem;
609
+ height: 2rem;
610
+ width: 2rem;
611
+ }
612
+
613
+ .ui-avatar-md {
614
+ font-size: var(--ui-font-size-sm);
615
+ height: 2.5rem;
616
+ width: 2.5rem;
617
+ }
618
+
619
+ .ui-avatar-lg {
620
+ font-size: var(--ui-font-size-md);
621
+ height: 3.25rem;
622
+ width: 3.25rem;
623
+ }
624
+
625
+ .ui-avatar-image {
626
+ height: 100%;
627
+ object-fit: cover;
628
+ width: 100%;
629
+ }
630
+
631
+ .ui-tooltip {
632
+ display: inline-flex;
633
+ position: relative;
634
+ }
635
+
636
+ .ui-tooltip-content {
637
+ background: var(--ui-color-foreground);
638
+ border-radius: var(--ui-radius-md);
639
+ bottom: calc(100% + var(--ui-space-2));
640
+ color: var(--ui-color-background);
641
+ font-family: var(--ui-font-family);
642
+ font-size: var(--ui-font-size-sm);
643
+ font-weight: 600;
644
+ left: 50%;
645
+ line-height: 1.35;
646
+ max-width: 16rem;
647
+ opacity: 0;
648
+ padding: var(--ui-space-2) var(--ui-space-3);
649
+ pointer-events: none;
650
+ position: absolute;
651
+ transform: translateX(-50%) translateY(0.25rem);
652
+ transition:
653
+ opacity 120ms ease,
654
+ transform 120ms ease;
655
+ visibility: hidden;
656
+ width: max-content;
657
+ z-index: 20;
658
+ }
659
+
660
+ .ui-tooltip:hover .ui-tooltip-content,
661
+ .ui-tooltip:focus-within .ui-tooltip-content {
662
+ opacity: 1;
663
+ transform: translateX(-50%) translateY(0);
664
+ visibility: visible;
665
+ }
package/package.json CHANGED
@@ -1,8 +1,36 @@
1
1
  {
2
2
  "name": "@jixic/react-ui",
3
- "version": "0.1.0",
4
- "description": "A production-ready React UI component library for web and Next.js applications.",
3
+ "version": "0.1.1",
4
+ "description": "Accessible React UI components, TypeScript primitives, design tokens, and CSS themes for React and Next.js web applications.",
5
5
  "license": "MIT",
6
+ "homepage": "https://github.com/virendrapsamrat/-jixic-react-ui#readme",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/virendrapsamrat/-jixic-react-ui.git",
10
+ "directory": "packages/ui"
11
+ },
12
+ "bugs": {
13
+ "url": "https://github.com/virendrapsamrat/-jixic-react-ui/issues"
14
+ },
15
+ "keywords": [
16
+ "react",
17
+ "ui",
18
+ "ui-library",
19
+ "react-ui",
20
+ "react-components",
21
+ "components",
22
+ "component-library",
23
+ "accessible-components",
24
+ "a11y",
25
+ "design-system",
26
+ "headless-ui",
27
+ "css-variables",
28
+ "theme",
29
+ "typescript",
30
+ "nextjs",
31
+ "next-js",
32
+ "frontend"
33
+ ],
6
34
  "type": "module",
7
35
  "sideEffects": [
8
36
  "**/*.css",