@chayns-ui/core 0.6.0 → 0.8.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 (135) hide show
  1. package/README.md +9 -3
  2. package/dist/accordion.css +66 -2
  3. package/dist/avatar.css +5 -11
  4. package/dist/badge.css +3 -3
  5. package/dist/banner.css +89 -0
  6. package/dist/button.css +16 -2
  7. package/dist/card.css +29 -2
  8. package/dist/checkbox.css +24 -13
  9. package/dist/combo-box.css +20 -2
  10. package/dist/components/accordion/Accordion.d.ts +10 -2
  11. package/dist/components/accordion/Accordion.d.ts.map +1 -1
  12. package/dist/components/accordion/Accordion.js +120 -46
  13. package/dist/components/accordion/Accordion.js.map +1 -1
  14. package/dist/components/accordion/Accordion.types.d.ts +24 -1
  15. package/dist/components/accordion/Accordion.types.d.ts.map +1 -1
  16. package/dist/components/accordion/Accordion.types.js +6 -0
  17. package/dist/components/accordion/Accordion.types.js.map +1 -0
  18. package/dist/components/accordion/AccordionContext.d.ts +9 -0
  19. package/dist/components/accordion/AccordionContext.d.ts.map +1 -1
  20. package/dist/components/accordion/AccordionContext.js +8 -2
  21. package/dist/components/accordion/AccordionContext.js.map +1 -1
  22. package/dist/components/accordion-group/AccordionGroup.d.ts +1 -1
  23. package/dist/components/accordion-group/AccordionGroup.d.ts.map +1 -1
  24. package/dist/components/accordion-group/AccordionGroup.js +3 -3
  25. package/dist/components/accordion-group/AccordionGroup.js.map +1 -1
  26. package/dist/components/avatar/Avatar.d.ts +1 -0
  27. package/dist/components/avatar/Avatar.d.ts.map +1 -1
  28. package/dist/components/avatar/Avatar.js +11 -8
  29. package/dist/components/avatar/Avatar.js.map +1 -1
  30. package/dist/components/avatar-group/AvatarGroup.js +1 -1
  31. package/dist/components/badge/Badge.js +1 -1
  32. package/dist/components/banner/Banner.d.ts +3 -0
  33. package/dist/components/banner/Banner.d.ts.map +1 -0
  34. package/dist/components/banner/Banner.js +46 -0
  35. package/dist/components/banner/Banner.js.map +1 -0
  36. package/dist/components/banner/Banner.types.d.ts +24 -0
  37. package/dist/components/banner/Banner.types.d.ts.map +1 -0
  38. package/dist/components/banner/Banner.types.js +11 -0
  39. package/dist/components/banner/Banner.types.js.map +1 -0
  40. package/dist/components/button/Button.d.ts +1 -1
  41. package/dist/components/button/Button.d.ts.map +1 -1
  42. package/dist/components/button/Button.js +8 -3
  43. package/dist/components/button/Button.js.map +1 -1
  44. package/dist/components/button/Button.types.d.ts +6 -2
  45. package/dist/components/button/Button.types.d.ts.map +1 -1
  46. package/dist/components/button/Button.types.js.map +1 -1
  47. package/dist/components/card/Card.d.ts +4 -2
  48. package/dist/components/card/Card.d.ts.map +1 -1
  49. package/dist/components/card/Card.js +24 -8
  50. package/dist/components/card/Card.js.map +1 -1
  51. package/dist/components/card/Card.types.d.ts +10 -12
  52. package/dist/components/card/Card.types.d.ts.map +1 -1
  53. package/dist/components/checkbox/Checkbox.d.ts +1 -1
  54. package/dist/components/checkbox/Checkbox.d.ts.map +1 -1
  55. package/dist/components/checkbox/Checkbox.js +15 -6
  56. package/dist/components/checkbox/Checkbox.js.map +1 -1
  57. package/dist/components/checkbox/Checkbox.types.d.ts +2 -0
  58. package/dist/components/checkbox/Checkbox.types.d.ts.map +1 -1
  59. package/dist/components/combo-box/ComboBox.d.ts.map +1 -1
  60. package/dist/components/combo-box/ComboBox.js +20 -3
  61. package/dist/components/combo-box/ComboBox.js.map +1 -1
  62. package/dist/components/date-time-picker/DateTimePicker.d.ts +4 -0
  63. package/dist/components/date-time-picker/DateTimePicker.d.ts.map +1 -0
  64. package/dist/components/date-time-picker/DateTimePicker.js +339 -0
  65. package/dist/components/date-time-picker/DateTimePicker.js.map +1 -0
  66. package/dist/components/date-time-picker/DateTimePicker.types.d.ts +26 -0
  67. package/dist/components/date-time-picker/DateTimePicker.types.d.ts.map +1 -0
  68. package/dist/components/date-time-picker/DateTimePicker.types.js +12 -0
  69. package/dist/components/date-time-picker/DateTimePicker.types.js.map +1 -0
  70. package/dist/components/icon-button/IconButton.d.ts +7 -2
  71. package/dist/components/icon-button/IconButton.d.ts.map +1 -1
  72. package/dist/components/icon-button/IconButton.js +8 -3
  73. package/dist/components/icon-button/IconButton.js.map +1 -1
  74. package/dist/components/icon-button/IconButton.types.d.ts +3 -1
  75. package/dist/components/icon-button/IconButton.types.d.ts.map +1 -1
  76. package/dist/components/list/List.js +1 -1
  77. package/dist/components/popup/Popup.js +1 -1
  78. package/dist/components/popup/PopupList.js +1 -1
  79. package/dist/components/radio-group/RadioGroup.d.ts.map +1 -1
  80. package/dist/components/radio-group/RadioGroup.js +17 -8
  81. package/dist/components/radio-group/RadioGroup.js.map +1 -1
  82. package/dist/components/radio-group/RadioGroup.types.d.ts +5 -3
  83. package/dist/components/radio-group/RadioGroup.types.d.ts.map +1 -1
  84. package/dist/components/segmented-control/SegmentedControl.d.ts.map +1 -1
  85. package/dist/components/segmented-control/SegmentedControl.js +12 -5
  86. package/dist/components/segmented-control/SegmentedControl.js.map +1 -1
  87. package/dist/components/segmented-control/SegmentedControl.types.d.ts +5 -2
  88. package/dist/components/segmented-control/SegmentedControl.types.d.ts.map +1 -1
  89. package/dist/components/skeleton/Skeleton.d.ts +4 -0
  90. package/dist/components/skeleton/Skeleton.d.ts.map +1 -0
  91. package/dist/components/skeleton/Skeleton.js +20 -0
  92. package/dist/components/skeleton/Skeleton.js.map +1 -0
  93. package/dist/components/skeleton/Skeleton.types.d.ts +11 -0
  94. package/dist/components/skeleton/Skeleton.types.d.ts.map +1 -0
  95. package/dist/components/skeleton/Skeleton.types.js +10 -0
  96. package/dist/components/skeleton/Skeleton.types.js.map +1 -0
  97. package/dist/components/split-button/SplitButton.d.ts +1 -1
  98. package/dist/components/split-button/SplitButton.d.ts.map +1 -1
  99. package/dist/components/split-button/SplitButton.js +9 -17
  100. package/dist/components/split-button/SplitButton.js.map +1 -1
  101. package/dist/components/switch/Switch.d.ts +1 -1
  102. package/dist/components/switch/Switch.d.ts.map +1 -1
  103. package/dist/components/switch/Switch.js +13 -5
  104. package/dist/components/switch/Switch.js.map +1 -1
  105. package/dist/components/switch/Switch.types.d.ts +2 -0
  106. package/dist/components/switch/Switch.types.d.ts.map +1 -1
  107. package/dist/components/text-area/TextArea.d.ts +1 -1
  108. package/dist/components/text-area/TextArea.d.ts.map +1 -1
  109. package/dist/components/text-area/TextArea.js +5 -4
  110. package/dist/components/text-area/TextArea.js.map +1 -1
  111. package/dist/components/text-field/TextField.d.ts +1 -1
  112. package/dist/components/text-field/TextField.d.ts.map +1 -1
  113. package/dist/components/text-field/TextField.js +5 -4
  114. package/dist/components/text-field/TextField.js.map +1 -1
  115. package/dist/date-time-picker.css +121 -0
  116. package/dist/index.d.ts +12 -5
  117. package/dist/index.d.ts.map +1 -1
  118. package/dist/index.js +8 -2
  119. package/dist/list.css +4 -4
  120. package/dist/radio-group.css +13 -1
  121. package/dist/segmented-control.css +24 -7
  122. package/dist/skeleton.css +41 -0
  123. package/dist/split-button.css +1 -1
  124. package/dist/styles.css +3 -1
  125. package/dist/switch.css +18 -5
  126. package/dist/text-area.css +2 -2
  127. package/dist/text-field.css +1 -1
  128. package/package.json +4 -2
  129. package/dist/components/message-box/MessageBox.d.ts +0 -4
  130. package/dist/components/message-box/MessageBox.d.ts.map +0 -1
  131. package/dist/components/message-box/MessageBox.js +0 -19
  132. package/dist/components/message-box/MessageBox.js.map +0 -1
  133. package/dist/components/message-box/MessageBox.types.d.ts +0 -13
  134. package/dist/components/message-box/MessageBox.types.d.ts.map +0 -1
  135. package/dist/message-box.css +0 -26
@@ -0,0 +1,121 @@
1
+ @layer chayns.components {
2
+ .chayns-date-time-picker {
3
+ display: inline-block;
4
+ max-inline-size: 100%;
5
+ position: relative;
6
+ }
7
+
8
+ .chayns-date-time-picker--time {
9
+ min-inline-size: 100px;
10
+ }
11
+
12
+ .chayns-date-time-picker__trigger {
13
+ box-sizing: border-box;
14
+ max-inline-size: 100%;
15
+ min-block-size: calc(1.2em + 2 * var(--input-py) + 3px);
16
+ padding: var(--input-py) var(--input-px);
17
+ border: 1.5px solid var(--input-border);
18
+ border-radius: var(--k10);
19
+ background: var(--surface);
20
+ color: var(--text);
21
+ cursor: pointer;
22
+ font: inherit;
23
+ line-height: 1.2;
24
+ outline: none;
25
+ text-align: start;
26
+ }
27
+
28
+ .chayns-date-time-picker__trigger:focus-visible {
29
+ border-color: var(--accent);
30
+ box-shadow: 0 0 0 var(--focus-ring-size)
31
+ rgb(var(--focus-ring-rgb), var(--focus-ring-alpha-soft));
32
+ }
33
+
34
+ .chayns-date-time-picker__label {
35
+ position: absolute;
36
+ inset-block-start: 0;
37
+ inset-inline-start: var(--k10);
38
+ padding-inline: var(--k5);
39
+ background: var(--surface);
40
+ color: var(--text-3);
41
+ font-size: var(--fs-body);
42
+ line-height: 1.2;
43
+ pointer-events: none;
44
+ transform: translateY(calc(var(--input-py) + 1.5px + 0.6em - 50%));
45
+ transform-origin: left center;
46
+ white-space: nowrap;
47
+ }
48
+
49
+ .chayns-date-time-picker--open .chayns-date-time-picker__label,
50
+ .chayns-date-time-picker--filled .chayns-date-time-picker__label {
51
+ color: var(--accent);
52
+ transform: translateY(-50%) scale(0.8);
53
+ }
54
+
55
+ .chayns-date-time-picker__popup {
56
+ position: absolute;
57
+ inset-block-start: calc(100% + var(--k4));
58
+ inset-inline: 0;
59
+ z-index: var(--z-popover);
60
+ overflow: hidden;
61
+ padding: var(--k8);
62
+ border: 1px solid var(--border);
63
+ border-radius: var(--k12);
64
+ background: var(--surface);
65
+ box-shadow: var(--shadow-pop);
66
+ }
67
+
68
+ .chayns-date-time-picker__wheels {
69
+ display: flex;
70
+ position: relative;
71
+ block-size: calc(var(--k40) * 5);
72
+ }
73
+
74
+ .chayns-date-time-picker__selection {
75
+ position: absolute;
76
+ inset-block-start: 50%;
77
+ inset-inline: var(--k8);
78
+ z-index: 1;
79
+ block-size: var(--k40);
80
+ border-radius: var(--k6);
81
+ background: rgb(var(--accent-rgb), 0.1);
82
+ pointer-events: none;
83
+ transform: translateY(-50%);
84
+ }
85
+
86
+ .chayns-date-time-picker__wheel {
87
+ flex: 1;
88
+ overflow-y: auto;
89
+ overscroll-behavior: contain;
90
+ padding-block: calc(var(--k40) * 2);
91
+ perspective: 18rem;
92
+ perspective-origin: center;
93
+ scrollbar-width: none;
94
+ scroll-snap-type: y mandatory;
95
+ text-align: center;
96
+ user-select: none;
97
+ }
98
+
99
+ .chayns-date-time-picker__wheel:focus-visible {
100
+ outline: var(--focus-ring-size) solid rgb(var(--focus-ring-rgb), var(--focus-ring-alpha-strong));
101
+ outline-offset: 2px;
102
+ }
103
+
104
+ .chayns-date-time-picker__wheel::-webkit-scrollbar {
105
+ display: none;
106
+ }
107
+
108
+ .chayns-date-time-picker__wheel-option {
109
+ display: block;
110
+ inline-size: 100%;
111
+ min-block-size: var(--k40);
112
+ padding: 0;
113
+ border: 0;
114
+ background: transparent;
115
+ cursor: pointer;
116
+ font: inherit;
117
+ scroll-snap-align: center;
118
+ transform-origin: center;
119
+ transform-style: preserve-3d;
120
+ }
121
+ }
package/dist/index.d.ts CHANGED
@@ -2,14 +2,22 @@ export { default as Button } from './components/button/Button.js';
2
2
  export { default as IconButton } from './components/icon-button/IconButton.js';
3
3
  export type { ButtonContent, ButtonIcon, ButtonProps, ButtonVariant, } from './components/button/Button.types.js';
4
4
  export { BUTTON_VARIANTS } from './components/button/Button.types.js';
5
- export type { IconButtonProps } from './components/icon-button/IconButton.types.js';
5
+ export type { IconButtonBaseProps, IconButtonProps, } from './components/icon-button/IconButton.types.js';
6
6
  export { default as Badge } from './components/badge/Badge.js';
7
7
  export { BADGE_SIZES, BADGE_TONES } from './components/badge/Badge.types.js';
8
8
  export type { BadgeProps, BadgeSize, BadgeTone } from './components/badge/Badge.types.js';
9
+ export { default as Skeleton } from './components/skeleton/Skeleton.js';
10
+ export { SKELETON_SHAPES } from './components/skeleton/Skeleton.types.js';
11
+ export type { SkeletonProps, SkeletonShape } from './components/skeleton/Skeleton.types.js';
12
+ export { default as Banner } from './components/banner/Banner.js';
13
+ export { BANNER_TONES } from './components/banner/Banner.types.js';
14
+ export type { BannerProps, BannerTone, ClosableBannerProps, StaticBannerProps, } from './components/banner/Banner.types.js';
9
15
  export { default as ComboBox } from './components/combo-box/ComboBox.js';
10
16
  export type { ComboBoxMultipleProps, ComboBoxOptionProps, ComboBoxProps, ComboBoxSingleProps, } from './components/combo-box/ComboBox.types.js';
11
17
  export { default as TextField } from './components/text-field/TextField.js';
12
18
  export type { TextFieldProps } from './components/text-field/TextField.types.js';
19
+ export { default as DateTimePicker } from './components/date-time-picker/DateTimePicker.js';
20
+ export { DATE_TIME_PICKER_MODES, DATE_TIME_PICKER_MINUTE_STEPS, type DateTimePickerMinuteStep, type DateTimePickerMode, type DateTimePickerProps, type DateTimePickerWheelLabels, } from './components/date-time-picker/DateTimePicker.types.js';
13
21
  export { default as TextArea } from './components/text-area/TextArea.js';
14
22
  export type { TextAreaProps } from './components/text-area/TextArea.types.js';
15
23
  export { default as Checkbox } from './components/checkbox/Checkbox.js';
@@ -20,15 +28,13 @@ export { default as RadioGroup } from './components/radio-group/RadioGroup.js';
20
28
  export type { RadioGroupProps, RadioProps } from './components/radio-group/RadioGroup.types.js';
21
29
  export { default as SegmentedControl } from './components/segmented-control/SegmentedControl.js';
22
30
  export type { SegmentedControlProps, SegmentProps, } from './components/segmented-control/SegmentedControl.types.js';
23
- export { default as MessageBox } from './components/message-box/MessageBox.js';
24
- export type { MessageBoxProps, MessageBoxTone } from './components/message-box/MessageBox.types.js';
25
31
  export { default as Popup } from './components/popup/Popup.js';
26
32
  export { default as PopupList } from './components/popup/PopupList.js';
27
33
  export type { PopupListItem, PopupListProps, PopupProps } from './components/popup/Popup.types.js';
28
34
  export { default as SplitButton } from './components/split-button/SplitButton.js';
29
35
  export type { SplitButtonProps } from './components/split-button/SplitButton.types.js';
30
36
  export { default as Card } from './components/card/Card.js';
31
- export type { CardProps } from './components/card/Card.types.js';
37
+ export type { CardHeaderProps, CardProps } from './components/card/Card.types.js';
32
38
  export { default as Avatar } from './components/avatar/Avatar.js';
33
39
  export { default as AvatarGroup } from './components/avatar-group/AvatarGroup.js';
34
40
  export type { AvatarProps } from './components/avatar/Avatar.types.js';
@@ -37,5 +43,6 @@ export { default as List } from './components/list/List.js';
37
43
  export type { ListItemActionProps, ListItemPartProps, ListItemProps, ListItemStatusProps, ListProps, } from './components/list/List.types.js';
38
44
  export { default as Accordion } from './components/accordion/Accordion.js';
39
45
  export { default as AccordionGroup } from './components/accordion-group/AccordionGroup.js';
40
- export type { AccordionProps, AccordionGroupProps, } from './components/accordion/Accordion.types.js';
46
+ export { ACCORDION_APPEARANCES } from './components/accordion/Accordion.types.js';
47
+ export type { AccordionAppearance, AccordionContentProps, AccordionHeadContentProps, AccordionHeadProps, AccordionProps, AccordionGroupProps, AccordionPartProps, } from './components/accordion/Accordion.types.js';
41
48
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAC/E,YAAY,EACV,aAAa,EACb,UAAU,EACV,WAAW,EACX,aAAa,GACd,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,YAAY,EACV,mBAAmB,EACnB,eAAe,GAChB,MAAM,8CAA8C,CAAC;AAEtD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAC7E,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAE1F,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAE5F,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,YAAY,EACV,WAAW,EACX,UAAU,EACV,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AACzE,YAAY,EACV,qBAAqB,EACrB,mBAAmB,EACnB,aAAa,EACb,mBAAmB,GACpB,MAAM,0CAA0C,CAAC;AAElD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAC5E,YAAY,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAEjF,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,iDAAiD,CAAC;AAC5F,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,GAC/B,MAAM,uDAAuD,CAAC;AAE/D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AACzE,YAAY,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAE9E,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AACxE,YAAY,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAE7E,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAClE,YAAY,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAEvE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAC/E,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,8CAA8C,CAAC;AAEhG,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oDAAoD,CAAC;AACjG,YAAY,EACV,qBAAqB,EACrB,YAAY,GACb,MAAM,0DAA0D,CAAC;AAElE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACvE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAEnG,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0CAA0C,CAAC;AAClF,YAAY,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAEvF,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,2BAA2B,CAAC;AAC5D,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAElF,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0CAA0C,CAAC;AAClF,YAAY,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AACvE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAEvF,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,2BAA2B,CAAC;AAC5D,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,SAAS,GACV,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,gDAAgD,CAAC;AAC3F,OAAO,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AAClF,YAAY,EACV,mBAAmB,EACnB,qBAAqB,EACrB,yBAAyB,EACzB,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,2CAA2C,CAAC"}
package/dist/index.js CHANGED
@@ -3,14 +3,19 @@ import IconButton from "./components/icon-button/IconButton.js";
3
3
  import { BUTTON_VARIANTS } from "./components/button/Button.types.js";
4
4
  import Badge from "./components/badge/Badge.js";
5
5
  import { BADGE_SIZES, BADGE_TONES } from "./components/badge/Badge.types.js";
6
+ import Skeleton from "./components/skeleton/Skeleton.js";
7
+ import { SKELETON_SHAPES } from "./components/skeleton/Skeleton.types.js";
8
+ import Banner from "./components/banner/Banner.js";
9
+ import { BANNER_TONES } from "./components/banner/Banner.types.js";
6
10
  import ComboBox from "./components/combo-box/ComboBox.js";
7
11
  import TextField from "./components/text-field/TextField.js";
12
+ import { DATE_TIME_PICKER_MINUTE_STEPS, DATE_TIME_PICKER_MODES } from "./components/date-time-picker/DateTimePicker.types.js";
13
+ import DateTimePicker from "./components/date-time-picker/DateTimePicker.js";
8
14
  import TextArea from "./components/text-area/TextArea.js";
9
15
  import Checkbox from "./components/checkbox/Checkbox.js";
10
16
  import Switch from "./components/switch/Switch.js";
11
17
  import RadioGroup from "./components/radio-group/RadioGroup.js";
12
18
  import SegmentedControl from "./components/segmented-control/SegmentedControl.js";
13
- import MessageBox from "./components/message-box/MessageBox.js";
14
19
  import Popup_default from "./components/popup/Popup.js";
15
20
  import PopupList from "./components/popup/PopupList.js";
16
21
  import SplitButton from "./components/split-button/SplitButton.js";
@@ -20,4 +25,5 @@ import AvatarGroup from "./components/avatar-group/AvatarGroup.js";
20
25
  import List from "./components/list/List.js";
21
26
  import Accordion from "./components/accordion/Accordion.js";
22
27
  import AccordionGroup from "./components/accordion-group/AccordionGroup.js";
23
- export { Accordion, AccordionGroup, Avatar, AvatarGroup, BADGE_SIZES, BADGE_TONES, BUTTON_VARIANTS, Badge, Button, Card, Checkbox, ComboBox, IconButton, List, MessageBox, Popup_default as Popup, PopupList, RadioGroup, SegmentedControl, SplitButton, Switch, TextArea, TextField };
28
+ import { ACCORDION_APPEARANCES } from "./components/accordion/Accordion.types.js";
29
+ export { ACCORDION_APPEARANCES, Accordion, AccordionGroup, Avatar, AvatarGroup, BADGE_SIZES, BADGE_TONES, BANNER_TONES, BUTTON_VARIANTS, Badge, Banner, Button, Card, Checkbox, ComboBox, DATE_TIME_PICKER_MINUTE_STEPS, DATE_TIME_PICKER_MODES, DateTimePicker, IconButton, List, Popup_default as Popup, PopupList, RadioGroup, SKELETON_SHAPES, SegmentedControl, Skeleton, SplitButton, Switch, TextArea, TextField };
package/dist/list.css CHANGED
@@ -10,7 +10,7 @@
10
10
  .chayns-list-item {
11
11
  display: flex;
12
12
  align-items: stretch;
13
- border-radius: 10px;
13
+ border-radius: 12px;
14
14
  }
15
15
 
16
16
  .chayns-list-item__action {
@@ -21,9 +21,9 @@
21
21
  gap: var(--k12);
22
22
  min-inline-size: 0;
23
23
  margin: 0;
24
- padding: var(--k10) var(--k16);
24
+ padding: var(--k12) var(--k16);
25
25
  border: 0;
26
- border-radius: 10px;
26
+ border-radius: 12px;
27
27
  background: transparent;
28
28
  color: var(--text);
29
29
  cursor: pointer;
@@ -77,7 +77,7 @@
77
77
  flex: none;
78
78
  align-items: flex-start;
79
79
  gap: var(--k8);
80
- padding: var(--k10) var(--k16) 0 0;
80
+ padding: var(--k12) var(--k16) 0 0;
81
81
  color: var(--text-3);
82
82
  font-size: var(--fs-meta);
83
83
  }
@@ -23,7 +23,7 @@
23
23
 
24
24
  .chayns-radio {
25
25
  display: inline-flex;
26
- align-items: flex-start;
26
+ align-items: center;
27
27
  gap: var(--k12);
28
28
  color: var(--text);
29
29
  cursor: pointer;
@@ -94,6 +94,18 @@
94
94
  line-height: 1.4;
95
95
  }
96
96
 
97
+ .chayns-radio__content {
98
+ display: grid;
99
+ gap: var(--k2);
100
+ min-inline-size: 0;
101
+ }
102
+
103
+ .chayns-radio__description {
104
+ color: var(--text-3);
105
+ font-size: var(--fs-meta);
106
+ line-height: 1.4;
107
+ }
108
+
97
109
  @media (prefers-reduced-motion: reduce) {
98
110
  .chayns-radio__control::after {
99
111
  transition: none;
@@ -6,16 +6,20 @@
6
6
  }
7
7
 
8
8
  .chayns-segmented-control__label {
9
- color: var(--text);
10
- font-size: var(--fs-body);
11
- font-weight: 600;
12
- line-height: 1.4;
9
+ position: absolute;
10
+ inline-size: 1px;
11
+ block-size: 1px;
12
+ overflow: hidden;
13
+ clip-path: inset(50%);
14
+ white-space: nowrap;
13
15
  }
14
16
 
15
17
  .chayns-segmented-control__segments {
16
18
  position: relative;
17
19
  display: inline-grid;
18
- grid-auto-columns: minmax(0, 1fr);
20
+ inline-size: max-content;
21
+ max-inline-size: 100%;
22
+ grid-auto-columns: 1fr;
19
23
  grid-auto-flow: column;
20
24
  gap: var(--k4);
21
25
  padding: var(--k4);
@@ -37,11 +41,15 @@
37
41
  }
38
42
 
39
43
  .chayns-segmented-control__segment {
40
- min-block-size: var(--ctrl-h);
44
+ min-block-size: var(--k32);
41
45
  position: relative;
42
46
  z-index: 1;
43
47
  min-inline-size: 0;
44
- padding: calc(9 * var(--u)) var(--k12);
48
+ display: inline-flex;
49
+ align-items: center;
50
+ justify-content: center;
51
+ gap: var(--k6);
52
+ padding: var(--k8) var(--k18);
45
53
  border: 0;
46
54
  border-radius: 8px;
47
55
  background: transparent;
@@ -51,6 +59,15 @@
51
59
  font-weight: 500;
52
60
  line-height: 1.4;
53
61
  text-align: center;
62
+ white-space: nowrap;
63
+ }
64
+
65
+ .chayns-segmented-control__segment:not(.chayns-segmented-control__segment--selected) {
66
+ color: var(--text-3);
67
+ }
68
+
69
+ .chayns-segmented-control__segment--selected {
70
+ color: var(--accent);
54
71
  }
55
72
 
56
73
  .chayns-segmented-control__segment:focus-visible {
@@ -0,0 +1,41 @@
1
+ @layer chayns.components {
2
+ .chayns-skeleton {
3
+ display: block;
4
+ background: linear-gradient(
5
+ 90deg,
6
+ var(--surface-alt) 25%,
7
+ var(--border-soft) 37%,
8
+ var(--surface-alt) 63%
9
+ );
10
+ background-size: 800px 100%;
11
+ animation: chayns-skeleton-shimmer 1.4s ease infinite;
12
+ }
13
+
14
+ .chayns-skeleton--square {
15
+ border-radius: 0;
16
+ }
17
+
18
+ .chayns-skeleton--rounded {
19
+ border-radius: 6px;
20
+ }
21
+
22
+ .chayns-skeleton--circular {
23
+ border-radius: 50%;
24
+ }
25
+
26
+ @keyframes chayns-skeleton-shimmer {
27
+ 0% {
28
+ background-position: -400px 0;
29
+ }
30
+
31
+ 100% {
32
+ background-position: 400px 0;
33
+ }
34
+ }
35
+
36
+ @media (prefers-reduced-motion: reduce) {
37
+ .chayns-skeleton {
38
+ animation: none;
39
+ }
40
+ }
41
+ }
@@ -66,7 +66,7 @@
66
66
  }
67
67
 
68
68
  .chayns-split-button__trigger:active:not(:disabled) {
69
- transform: scale(0.97);
69
+ transform: scale(0.96);
70
70
  }
71
71
 
72
72
  .chayns-split-button__trigger.chayns-button--primary:active:not(:disabled) {
package/dist/styles.css CHANGED
@@ -1,5 +1,7 @@
1
1
  @import url('./button.css');
2
2
  @import url('./badge.css');
3
+ @import url('./skeleton.css');
4
+ @import url('./banner.css');
3
5
  @import url('./combo-box.css');
4
6
  @import url('./card.css');
5
7
  @import url('./avatar.css');
@@ -8,9 +10,9 @@
8
10
  @import url('./popup.css');
9
11
  @import url('./split-button.css');
10
12
  @import url('./text-field.css');
13
+ @import url('./date-time-picker.css');
11
14
  @import url('./text-area.css');
12
15
  @import url('./checkbox.css');
13
16
  @import url('./switch.css');
14
17
  @import url('./radio-group.css');
15
18
  @import url('./segmented-control.css');
16
- @import url('./message-box.css');
package/dist/switch.css CHANGED
@@ -1,6 +1,7 @@
1
1
  @layer chayns.components {
2
2
  .chayns-switch {
3
- display: inline-flex;
3
+ display: flex;
4
+ inline-size: 100%;
4
5
  align-items: center;
5
6
  justify-content: space-between;
6
7
  gap: var(--k14);
@@ -25,11 +26,23 @@
25
26
  line-height: 1.4;
26
27
  }
27
28
 
29
+ .chayns-switch__content {
30
+ display: grid;
31
+ gap: var(--k2);
32
+ min-inline-size: 0;
33
+ }
34
+
35
+ .chayns-switch__description {
36
+ color: var(--text-3);
37
+ font-size: var(--fs-meta);
38
+ line-height: 1.4;
39
+ }
40
+
28
41
  .chayns-switch__control {
29
42
  box-sizing: border-box;
30
43
  display: flex;
31
- inline-size: 42px;
32
- block-size: 24px;
44
+ inline-size: var(--k42);
45
+ block-size: var(--k24);
33
46
  flex: none;
34
47
  padding: var(--k3);
35
48
  border-radius: 999px;
@@ -41,7 +54,7 @@
41
54
  block-size: var(--k18);
42
55
  border-radius: 50%;
43
56
  background: var(--surface);
44
- box-shadow: 0 1px 3px rgb(0 0 0 / 30%);
57
+ box-shadow: var(--shadow-card);
45
58
  transform: translateX(0);
46
59
  transition: transform 0.18s cubic-bezier(0.22, 0.61, 0.36, 1);
47
60
  }
@@ -51,7 +64,7 @@
51
64
  }
52
65
 
53
66
  .chayns-switch__input:checked + .chayns-switch__control .chayns-switch__knob {
54
- transform: translateX(18px);
67
+ transform: translateX(var(--k18));
55
68
  }
56
69
 
57
70
  .chayns-switch__input:focus-visible + .chayns-switch__control {
@@ -8,7 +8,7 @@
8
8
  box-sizing: border-box;
9
9
  display: block;
10
10
  inline-size: 100%;
11
- min-block-size: 84px;
11
+ min-block-size: var(--k84);
12
12
  padding: var(--input-py) var(--input-px);
13
13
  border: 1.5px solid var(--input-border);
14
14
  border-radius: 10px;
@@ -112,7 +112,7 @@
112
112
  align-items: center;
113
113
  justify-content: space-between;
114
114
  gap: var(--k10);
115
- margin-block-start: 6px;
115
+ margin-block-start: var(--k6);
116
116
  font-size: var(--fs-caption);
117
117
  color: var(--text-3);
118
118
  }
@@ -114,7 +114,7 @@
114
114
  align-items: center;
115
115
  justify-content: space-between;
116
116
  gap: var(--k10);
117
- margin-block-start: 6px;
117
+ margin-block-start: var(--k6);
118
118
  font-size: var(--fs-caption);
119
119
  color: var(--text-3);
120
120
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chayns-ui/core",
3
- "version": "0.6.0",
3
+ "version": "0.8.0",
4
4
  "description": "Accessible React core components for chayns UI",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -24,6 +24,8 @@
24
24
  },
25
25
  "./button.css": "./dist/button.css",
26
26
  "./badge.css": "./dist/badge.css",
27
+ "./skeleton.css": "./dist/skeleton.css",
28
+ "./banner.css": "./dist/banner.css",
27
29
  "./combo-box.css": "./dist/combo-box.css",
28
30
  "./card.css": "./dist/card.css",
29
31
  "./avatar.css": "./dist/avatar.css",
@@ -32,12 +34,12 @@
32
34
  "./popup.css": "./dist/popup.css",
33
35
  "./split-button.css": "./dist/split-button.css",
34
36
  "./text-field.css": "./dist/text-field.css",
37
+ "./date-time-picker.css": "./dist/date-time-picker.css",
35
38
  "./text-area.css": "./dist/text-area.css",
36
39
  "./checkbox.css": "./dist/checkbox.css",
37
40
  "./switch.css": "./dist/switch.css",
38
41
  "./radio-group.css": "./dist/radio-group.css",
39
42
  "./segmented-control.css": "./dist/segmented-control.css",
40
- "./message-box.css": "./dist/message-box.css",
41
43
  "./styles.css": "./dist/styles.css",
42
44
  "./package.json": "./package.json"
43
45
  },
@@ -1,4 +0,0 @@
1
- import type { MessageBoxProps } from './MessageBox.types.js';
2
- declare function MessageBox({ children, className, tone, ...asideProps }: MessageBoxProps): import("react").JSX.Element;
3
- export default MessageBox;
4
- //# sourceMappingURL=MessageBox.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MessageBox.d.ts","sourceRoot":"","sources":["../../../src/components/message-box/MessageBox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,iBAAS,UAAU,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAgB,EAAE,GAAG,UAAU,EAAE,EAAE,eAAe,+BAU5F;AAED,eAAe,UAAU,CAAC"}
@@ -1,19 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- //#region src/components/message-box/MessageBox.tsx
3
- function MessageBox({ children, className, tone = "neutral", ...asideProps }) {
4
- const resolvedClassName = [
5
- "chayns-message-box",
6
- `chayns-message-box--${tone}`,
7
- className
8
- ].filter(Boolean).join(" ");
9
- return /* @__PURE__ */ jsx("aside", {
10
- ...asideProps,
11
- className: resolvedClassName,
12
- role: "note",
13
- children
14
- });
15
- }
16
- //#endregion
17
- export { MessageBox as default };
18
-
19
- //# sourceMappingURL=MessageBox.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MessageBox.js","names":[],"sources":["../../../src/components/message-box/MessageBox.tsx"],"sourcesContent":["import type { MessageBoxProps } from './MessageBox.types.js';\n\nfunction MessageBox({ children, className, tone = 'neutral', ...asideProps }: MessageBoxProps) {\n const resolvedClassName = ['chayns-message-box', `chayns-message-box--${tone}`, className]\n .filter(Boolean)\n .join(' ');\n\n return (\n <aside {...asideProps} className={resolvedClassName} role=\"note\">\n {children}\n </aside>\n );\n}\n\nexport default MessageBox;\n"],"mappings":";;AAEA,SAAS,WAAW,EAAE,UAAU,WAAW,OAAO,WAAW,GAAG,cAA+B;CAC7F,MAAM,oBAAoB;EAAC;EAAsB,uBAAuB;EAAQ;CAAS,CAAC,CACvF,OAAO,OAAO,CAAC,CACf,KAAK,GAAG;CAEX,OACE,oBAAC,SAAD;EAAO,GAAI;EAAY,WAAW;EAAmB,MAAK;EACvD;CACI,CAAA;AAEX"}
@@ -1,13 +0,0 @@
1
- import type { ComponentPropsWithRef, ReactNode } from 'react';
2
- /** Supported static MessageBox presentations. */
3
- export type MessageBoxTone = 'neutral' | 'admin' | 'warning';
4
- /** Props for a static, freely composed aside note. */
5
- export interface MessageBoxProps extends Omit<ComponentPropsWithRef<'aside'>, 'children' | 'role'> {
6
- /** Surface presentation for the static note. */
7
- tone?: MessageBoxTone;
8
- /** Consumer-composed content such as title, text, icon and follow action. */
9
- children: ReactNode;
10
- /** MessageBox owns its static note role. */
11
- role?: never;
12
- }
13
- //# sourceMappingURL=MessageBox.types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MessageBox.types.d.ts","sourceRoot":"","sources":["../../../src/components/message-box/MessageBox.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE9D,iDAAiD;AACjD,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAE7D,sDAAsD;AACtD,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IAChG,gDAAgD;IAChD,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,6EAA6E;IAC7E,QAAQ,EAAE,SAAS,CAAC;IAEpB,4CAA4C;IAC5C,IAAI,CAAC,EAAE,KAAK,CAAC;CACd"}
@@ -1,26 +0,0 @@
1
- @layer chayns.components {
2
- .chayns-message-box {
3
- box-sizing: border-box;
4
- display: flex;
5
- align-items: flex-start;
6
- gap: var(--k12);
7
- inline-size: 100%;
8
- padding: var(--k16);
9
- border: 1px solid var(--input-border);
10
- border-radius: 12px;
11
- }
12
-
13
- .chayns-message-box--neutral {
14
- background: var(--surface-2);
15
- }
16
-
17
- .chayns-message-box--admin {
18
- border-color: var(--accent-300);
19
- background: var(--tint);
20
- }
21
-
22
- .chayns-message-box--warning {
23
- border-color: var(--warning);
24
- background: var(--warning-bg);
25
- }
26
- }