@a-type/ui 2.5.0 → 2.6.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 (97) hide show
  1. package/dist/cjs/colors.stories.d.ts +1 -0
  2. package/dist/cjs/colors.stories.js +9 -3
  3. package/dist/cjs/colors.stories.js.map +1 -1
  4. package/dist/cjs/components/button/classes.js +5 -5
  5. package/dist/cjs/components/button/classes.js.map +1 -1
  6. package/dist/cjs/components/camera/Camera.js +4 -4
  7. package/dist/cjs/components/camera/Camera.js.map +1 -1
  8. package/dist/cjs/components/card/Card.js +2 -2
  9. package/dist/cjs/components/card/Card.js.map +1 -1
  10. package/dist/cjs/components/chip/Chip.js +1 -1
  11. package/dist/cjs/components/datePicker/DatePicker.js +2 -2
  12. package/dist/cjs/components/datePicker/DatePicker.js.map +1 -1
  13. package/dist/cjs/components/dialog/Dialog.js +1 -1
  14. package/dist/cjs/components/dialog/Dialog.js.map +1 -1
  15. package/dist/cjs/components/dropdownMenu/DropdownMenu.js +1 -1
  16. package/dist/cjs/components/dropdownMenu/DropdownMenu.js.map +1 -1
  17. package/dist/cjs/components/editableText/EditableText.js +1 -1
  18. package/dist/cjs/components/editableText/EditableText.js.map +1 -1
  19. package/dist/cjs/components/forms/CheckboxField.js +1 -1
  20. package/dist/cjs/components/forms/CheckboxField.js.map +1 -1
  21. package/dist/cjs/components/forms/NumberStepperField.js +1 -1
  22. package/dist/cjs/components/forms/NumberStepperField.js.map +1 -1
  23. package/dist/cjs/components/forms/TextField.js +1 -1
  24. package/dist/cjs/components/forms/TextField.js.map +1 -1
  25. package/dist/cjs/components/imageUploader/ImageUploader.js +1 -1
  26. package/dist/cjs/components/imageUploader/ImageUploader.js.map +1 -1
  27. package/dist/cjs/components/navBar/NavBar.js +3 -3
  28. package/dist/cjs/components/navBar/NavBar.js.map +1 -1
  29. package/dist/cjs/components/scrollArea/ScrollArea.stories.js +2 -2
  30. package/dist/cjs/components/scrollArea/ScrollArea.stories.js.map +1 -1
  31. package/dist/cjs/components/tabs/tabs.js +1 -1
  32. package/dist/cjs/components/tabs/tabs.js.map +1 -1
  33. package/dist/cjs/components/textArea/TextArea.js +1 -1
  34. package/dist/cjs/components/textArea/TextArea.js.map +1 -1
  35. package/dist/cjs/components/tooltip/Tooltip.js +3 -3
  36. package/dist/cjs/components/tooltip/Tooltip.js.map +1 -1
  37. package/dist/cjs/uno/uno.preset.js +75 -38
  38. package/dist/cjs/uno/uno.preset.js.map +1 -1
  39. package/dist/css/main.css +30 -5
  40. package/dist/esm/colors.stories.d.ts +1 -0
  41. package/dist/esm/colors.stories.js +8 -2
  42. package/dist/esm/colors.stories.js.map +1 -1
  43. package/dist/esm/components/button/classes.js +5 -5
  44. package/dist/esm/components/button/classes.js.map +1 -1
  45. package/dist/esm/components/camera/Camera.js +4 -4
  46. package/dist/esm/components/camera/Camera.js.map +1 -1
  47. package/dist/esm/components/card/Card.js +2 -2
  48. package/dist/esm/components/card/Card.js.map +1 -1
  49. package/dist/esm/components/chip/Chip.js +1 -1
  50. package/dist/esm/components/datePicker/DatePicker.js +2 -2
  51. package/dist/esm/components/datePicker/DatePicker.js.map +1 -1
  52. package/dist/esm/components/dialog/Dialog.js +1 -1
  53. package/dist/esm/components/dialog/Dialog.js.map +1 -1
  54. package/dist/esm/components/dropdownMenu/DropdownMenu.js +1 -1
  55. package/dist/esm/components/dropdownMenu/DropdownMenu.js.map +1 -1
  56. package/dist/esm/components/editableText/EditableText.js +1 -1
  57. package/dist/esm/components/editableText/EditableText.js.map +1 -1
  58. package/dist/esm/components/forms/CheckboxField.js +1 -1
  59. package/dist/esm/components/forms/CheckboxField.js.map +1 -1
  60. package/dist/esm/components/forms/NumberStepperField.js +1 -1
  61. package/dist/esm/components/forms/NumberStepperField.js.map +1 -1
  62. package/dist/esm/components/forms/TextField.js +1 -1
  63. package/dist/esm/components/forms/TextField.js.map +1 -1
  64. package/dist/esm/components/imageUploader/ImageUploader.js +1 -1
  65. package/dist/esm/components/imageUploader/ImageUploader.js.map +1 -1
  66. package/dist/esm/components/navBar/NavBar.js +3 -3
  67. package/dist/esm/components/navBar/NavBar.js.map +1 -1
  68. package/dist/esm/components/scrollArea/ScrollArea.stories.js +2 -2
  69. package/dist/esm/components/scrollArea/ScrollArea.stories.js.map +1 -1
  70. package/dist/esm/components/tabs/tabs.js +1 -1
  71. package/dist/esm/components/tabs/tabs.js.map +1 -1
  72. package/dist/esm/components/textArea/TextArea.js +1 -1
  73. package/dist/esm/components/textArea/TextArea.js.map +1 -1
  74. package/dist/esm/components/tooltip/Tooltip.js +3 -3
  75. package/dist/esm/components/tooltip/Tooltip.js.map +1 -1
  76. package/dist/esm/uno/uno.preset.js +75 -38
  77. package/dist/esm/uno/uno.preset.js.map +1 -1
  78. package/package.json +1 -1
  79. package/src/colors.stories.tsx +77 -2
  80. package/src/components/button/classes.tsx +5 -5
  81. package/src/components/camera/Camera.tsx +4 -4
  82. package/src/components/card/Card.tsx +2 -2
  83. package/src/components/chip/Chip.tsx +1 -1
  84. package/src/components/datePicker/DatePicker.tsx +2 -2
  85. package/src/components/dialog/Dialog.tsx +1 -1
  86. package/src/components/dropdownMenu/DropdownMenu.tsx +1 -1
  87. package/src/components/editableText/EditableText.tsx +1 -1
  88. package/src/components/forms/CheckboxField.tsx +1 -1
  89. package/src/components/forms/NumberStepperField.tsx +1 -1
  90. package/src/components/forms/TextField.tsx +1 -1
  91. package/src/components/imageUploader/ImageUploader.tsx +1 -1
  92. package/src/components/navBar/NavBar.tsx +3 -3
  93. package/src/components/scrollArea/ScrollArea.stories.tsx +2 -2
  94. package/src/components/tabs/tabs.tsx +4 -4
  95. package/src/components/textArea/TextArea.tsx +1 -1
  96. package/src/components/tooltip/Tooltip.tsx +3 -3
  97. package/src/uno/uno.preset.ts +78 -47
@@ -139,5 +139,5 @@ export const FieldRoot = withClassName(
139
139
  );
140
140
  export const FieldLabel = withClassName(
141
141
  'label',
142
- 'inline-flex flex-col gap-1 text-sm font-bold text-dark-blend mb-1',
142
+ 'inline-flex flex-col gap-1 text-sm font-bold color-dark-blend mb-1',
143
143
  );
@@ -208,7 +208,7 @@ function ImageUploaderPrebuilt({
208
208
  onClick={() => setCameraOpen(false)}
209
209
  color="ghost"
210
210
  size="small"
211
- className="text-white absolute top-2 left-2"
211
+ className="color-white absolute top-2 left-2"
212
212
  >
213
213
  Cancel
214
214
  </Button>
@@ -9,7 +9,7 @@ export const navBarItemClass = classNames(
9
9
  'layer-components:active:bg-darken-2',
10
10
  'layer-components:hover:bg-darken-1',
11
11
  'layer-components:focus-visible:(outline-none bg-darken-2)',
12
- 'layer-components:[&[data-active=true]]:(bg-[var(--bg)] bg-darken-1 text-black)',
12
+ 'layer-components:[&[data-active=true]]:(bg-[var(--bg)] bg-darken-1 color-black)',
13
13
  'layer-components:([--bg:var(--color-primary-wash)] [--fill:var(--color-primary)])',
14
14
  'layer-responsive:md:(flex-row-reverse h-auto justify-start gap-2 overflow-visible active:bg-darken-2)',
15
15
  );
@@ -43,7 +43,7 @@ export const NavBarItem = function NavBarItem({
43
43
  'layer-variants:active:bg-gray-dark-blend layer-variants:md:active:bg-gray-dark-blend',
44
44
  'layer-variants:hover:bg-gray-dark-blend',
45
45
  'layer-variants:focus-visible:(bg-gray-dark-blend)',
46
- 'layer-variants:[&[data-active=true]]:(bg-gray-dark-blend text-black)',
46
+ 'layer-variants:[&[data-active=true]]:(bg-gray-dark-blend color-black)',
47
47
  'layer-variants:([--bg:var(--color-gray-blend)] [--fill:var(--color-gray)])',
48
48
  ],
49
49
  className,
@@ -85,7 +85,7 @@ export const NavBarItemIcon = function NavBarItemIcon({
85
85
  <Comp
86
86
  name={name}
87
87
  className={clsx(
88
- 'layer-components:(relative z-1 flex fill-none text-inherit)',
88
+ 'layer-components:(relative z-1 flex fill-none color-inherit)',
89
89
  'layer-variants:[*[data-active=true]_&]:fill-[var(--fill)]',
90
90
  className,
91
91
  )}
@@ -23,7 +23,7 @@ export const Default: Story = {
23
23
  {Array.from({ length: 100 }, (_, i) => (
24
24
  <div
25
25
  key={i}
26
- className="h-10 w-full bg-primary-wash text-primary flex items-center justify-center"
26
+ className="h-10 w-full bg-primary-wash color-primary flex items-center justify-center"
27
27
  >
28
28
  Item {i + 1}
29
29
  </div>
@@ -50,7 +50,7 @@ export const StickToBottom: Story = {
50
50
  {Array.from({ length: itemCount }, (_, i) => (
51
51
  <div
52
52
  key={i}
53
- className="h-10 w-full bg-primary-wash text-primary flex items-center justify-center"
53
+ className="h-10 w-full bg-primary-wash color-primary flex items-center justify-center"
54
54
  >
55
55
  Item {i + 1}
56
56
  </div>
@@ -11,10 +11,10 @@ export const TabsList = withClassName(
11
11
 
12
12
  export const TabsTriggerBase = withClassName(
13
13
  TabsPrimitive.Trigger,
14
- 'layer-components:(flex flex-row items-center cursor-pointer justify-center gap-2 color-black py-1 px-5 bg-wash text-md min-w-100px rounded-lg border-default font-semibold text-gray-dark-blend border-gray-dark transition-all cursor-pointer select-none font-inherit flex-shrink-0 shadow-sm)',
15
- 'layer-components:hover:(bg-darken-1 ring-4 ring-color-bg)',
16
- 'layer-components:focus-visible:(bg-darken-1 ring-4 ring-color-bg outline-off)',
17
- '[&[data-state=active]]:(bg-[var(--bg)] font-semibold text-black cursor-default hover:bg-darken-1 relative z-1)',
14
+ 'layer-components:(flex flex-row items-center cursor-pointer justify-center gap-2 color-black py-1 px-5 bg-wash text-md min-w-100px rounded-lg border-default font-semibold color-gray-ink border-gray-dark transition-all cursor-pointer select-none font-inherit flex-shrink-0 shadow-sm)',
15
+ 'layer-components:hover:(bg-darken-1 ring-4 ring-bg)',
16
+ 'layer-components:focus-visible:(bg-darken-1 ring-4 ring-bg outline-off)',
17
+ '[&[data-state=active]]:(bg-[var(--bg)] font-semibold color-black cursor-default hover:bg-darken-1 relative z-1)',
18
18
  );
19
19
 
20
20
  const colorClasses = {
@@ -96,7 +96,7 @@ export const TextArea = function TextArea({
96
96
  ref={finalRef}
97
97
  className={classNames(
98
98
  inputClassName,
99
- 'layer-components:([font-family:inherit] text-inherit overflow-hidden resize-none)',
99
+ 'layer-components:([font-family:inherit] color-inherit overflow-hidden resize-none)',
100
100
  'layer-variants:(rounded-lg px-4 py-4)',
101
101
  {
102
102
  'layer-components:[resize:vertical]': !autoSize,
@@ -26,10 +26,10 @@ function Content({
26
26
  'layer-components:transform-origin-[var(--radix-tooltip-content-transform-origin)]',
27
27
  'layer-components:[&[data-state=delayed-open]]:animate-popover-in',
28
28
  {
29
- 'layer-variants:(bg-black text-white)': color === 'contrast',
30
- 'layer-variants:(bg-white text-black)':
29
+ 'layer-variants:(bg-black color-white)': color === 'contrast',
30
+ 'layer-variants:(bg-white color-black)':
31
31
  color === 'white' || color === 'neutral',
32
- 'layer-variants:(bg-attention-ink text-white)':
32
+ 'layer-variants:(bg-attention-ink color-white)':
33
33
  color === 'attention',
34
34
  },
35
35
  className,
@@ -1,4 +1,5 @@
1
1
  import { entriesToCss, toArray } from '@unocss/core';
2
+ import { parseColor } from '@unocss/preset-mini/utils';
2
3
  import presetWind3 from '@unocss/preset-wind3';
3
4
  import { PreflightContext, Preset } from 'unocss';
4
5
  import {
@@ -344,9 +345,16 @@ export default function presetAtype({
344
345
  if (match[1] === 'inherit') {
345
346
  return { color: 'var(--v-color-altered,var(--v-color))' };
346
347
  }
348
+ const parsed = parseColor(match[1], theme);
349
+ if (!parsed?.color) {
350
+ return undefined;
351
+ }
347
352
  return {
348
- color: 'var(--v-color-altered,var(--v-color))',
349
- '--v-color': resolveThemeColor(match[1], theme),
353
+ color: parsed.opacity
354
+ ? 'rgb(from var(--v-color-altered,var(--v-color)) r g b / var(--v-color-opacity,100%))'
355
+ : 'var(--v-color-altered,var(--v-color))',
356
+ '--v-color': parsed.color,
357
+ '--v-color-opacity': (parsed.opacity || 100) + '%',
350
358
  };
351
359
  },
352
360
  ],
@@ -367,15 +375,22 @@ export default function presetAtype({
367
375
  (match, ctx) => {
368
376
  const { theme } = ctx;
369
377
  if (match[1] === 'inherit') {
370
- return { 'background-color': 'var(--v-bg-altered,var(--v-bg))' };
378
+ return {
379
+ 'background-color':
380
+ 'rgb(from var(--v-bg-altered,var(--v-bg)) r g b / var(--v-bg-opacity,100%))',
381
+ };
371
382
  }
372
- const resolvedColor = resolveThemeColor(match[1], theme);
373
- if (resolvedColor === null) {
383
+ const parsed = parseColor(match[1], theme);
384
+ if (!parsed?.color) {
374
385
  return undefined;
375
386
  }
387
+
376
388
  return {
377
- 'background-color': 'var(--v-bg-altered,var(--v-bg))',
378
- ['--v-bg']: resolvedColor,
389
+ 'background-color': parsed.opacity
390
+ ? 'rgb(from var(--v-bg-altered,var(--v-bg)) r g b / var(--v-bg-opacity,100%))'
391
+ : 'var(--v-bg-altered,var(--v-bg))',
392
+ ['--v-bg']: parsed.color,
393
+ ['--v-bg-opacity']: (parsed.opacity || 100) + '%',
379
394
  };
380
395
  },
381
396
  {
@@ -394,48 +409,25 @@ export default function presetAtype({
394
409
  '--v-bg-altered': darken('var(--v-bg,var(--color-white))', match[1]),
395
410
  }),
396
411
  ],
397
-
398
- [
399
- /^border-color-(.*)$/,
400
- (match, { theme }) => ({
401
- 'border-color': 'var(--v-border-altered,var(--v-border))',
402
- '--v-border': resolveThemeColor(match[1], theme),
403
- }),
404
- ],
405
412
  [
406
413
  /^border-(.*)$/,
407
414
  (match, { theme }) => {
408
415
  if (match[1] === 'none') {
409
416
  return undefined;
410
417
  }
411
- const resolvedColor = resolveThemeColor(match[1], theme);
412
- if (resolvedColor === null) {
418
+ const parsed = parseColor(match[1], theme);
419
+ if (!parsed?.color) {
413
420
  return undefined;
414
421
  }
415
422
  return {
416
- 'border-color': 'var(--v-border-altered,var(--v-border))',
417
- '--v-border': resolvedColor,
423
+ 'border-color': parsed.opacity
424
+ ? 'rgb(from var(--v-border-altered,var(--v-border)) r g b / var(--v-border-opacity,100%))'
425
+ : 'var(--v-border-altered,var(--v-border))',
426
+ '--v-border': parsed.color,
427
+ '--v-border-opacity': (parsed.opacity || 100) + '%',
418
428
  };
419
429
  },
420
430
  ],
421
- [
422
- /^border-color-lighten-(\d+\.?\d*)$/,
423
- (match, { theme }) => ({
424
- '--v-border-altered': lighten(
425
- 'var(--v-border,currentColor)',
426
- match[1],
427
- ),
428
- }),
429
- ],
430
- [
431
- /^border-color-darken-(\d+\.?\d*)$/,
432
- (match, { theme }) => ({
433
- '--v-border-altered': darken(
434
- 'var(--v-border,currentColor)',
435
- match[1],
436
- ),
437
- }),
438
- ],
439
431
  [
440
432
  /^border-lighten-(\d+\.?\d*)$/,
441
433
  (match, { theme }) => ({
@@ -444,6 +436,9 @@ export default function presetAtype({
444
436
  match[1],
445
437
  ),
446
438
  }),
439
+ {
440
+ autocomplete: 'border-lighten-<number>',
441
+ },
447
442
  ],
448
443
  [
449
444
  /^border-darken-(\d+\.?\d*)$/,
@@ -453,22 +448,34 @@ export default function presetAtype({
453
448
  match[1],
454
449
  ),
455
450
  }),
451
+ {
452
+ autocomplete: 'border-darken-<number>',
453
+ },
456
454
  ],
457
455
  [
458
- /^ring-color-(.*)$/,
459
- (match, { theme }) => ({
460
- '--un-ring-color': 'var(--v-ring-altered,var(--v-ring))',
461
- '--v-ring': resolveThemeColor(match[1], theme),
462
- }),
456
+ /^ring-(.*)$/,
457
+ (match, { theme }) => {
458
+ const parsed = parseColor(match[1], theme);
459
+ if (!parsed?.color) {
460
+ return undefined;
461
+ }
462
+ return {
463
+ '--un-ring-color': parsed.opacity
464
+ ? 'rgb(from var(--v-ring-altered,var(--v-ring)) r g b / var(--v-ring-opacity,100%))'
465
+ : 'var(--v-ring-altered,var(--v-ring))',
466
+ '--v-ring': parsed.color,
467
+ '--v-ring-opacity': (parsed.opacity || 100) + '%',
468
+ };
469
+ },
463
470
  ],
464
471
  [
465
- /^ring-color-lighten-(\d+\.?\d*)$/,
472
+ /^ring-lighten-(\d+\.?\d*)$/,
466
473
  (match, { theme }) => ({
467
474
  '--v-ring-altered': lighten('var(--v-ring,currentColor)', match[1]),
468
475
  }),
469
476
  ],
470
477
  [
471
- /^ring-color-darken-(\d+\.?\d*)$/,
478
+ /^ring-darken-(\d+\.?\d*)$/,
472
479
  (match, { theme }) => ({
473
480
  '--v-ring-altered': darken('var(--v-ring,currentColor)', match[1]),
474
481
  }),
@@ -576,9 +583,8 @@ export default function presetAtype({
576
583
 
577
584
  shortcuts: {
578
585
  border: 'border-width-thin border-solid',
579
- 'border-default': 'border border-solid border-color-black',
580
- 'border-light':
581
- 'border border-solid border-color-gray border-color-darken-3',
586
+ 'border-default': 'border border-solid border-black',
587
+ 'border-light': 'border border-solid border-gray border-darken-3',
582
588
  'flex-1-0-0': 'flex-grow-1 flex-shrink-0 flex-basis-0',
583
589
  'flex-0-0-auto': 'flex-grow-0 flex-shrink-0 flex-basis-auto',
584
590
  row: 'layer-components:flex layer-components:flex-row layer-components:gap-sm layer-components:items-center',
@@ -953,6 +959,31 @@ export default function presetAtype({
953
959
  syntax: "*";
954
960
  inherits: false;
955
961
  }
962
+
963
+ @property --v-ring-altered {
964
+ syntax: "*";
965
+ inherits: false;
966
+ }
967
+
968
+ @property --v-bg-opacity {
969
+ syntax: "<percentage>";
970
+ inherits: false;
971
+ }
972
+
973
+ @property --v-color-opacity {
974
+ syntax: "<percentage>";
975
+ inherits: false;
976
+ }
977
+
978
+ @property --v-border-opacity {
979
+ syntax: "<percentage>";
980
+ inherits: false;
981
+ }
982
+
983
+ @property --v-ring-opacity {
984
+ syntax: "<percentage>";
985
+ inherits: false;
986
+ }
956
987
  `;
957
988
  },
958
989
  },