@infonomic/uikit 5.41.0 → 5.43.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 (170) hide show
  1. package/dist/components/@types/shared.d.ts +52 -0
  2. package/dist/components/@types/shared.d.ts.map +1 -1
  3. package/dist/components/accordion/accordion.d.ts.map +1 -1
  4. package/dist/components/accordion/accordion.module.css +1 -2
  5. package/dist/components/avatar/avatar.d.ts.map +1 -1
  6. package/dist/components/avatar/avatar.module.css +6 -7
  7. package/dist/components/badge/badge.d.ts.map +1 -1
  8. package/dist/components/badge/badge.module.css +6 -7
  9. package/dist/components/button/@types/button.d.ts +31 -1
  10. package/dist/components/button/@types/button.d.ts.map +1 -1
  11. package/dist/components/button/button-group.module.css +1 -3
  12. package/dist/components/button/button.module.css +48 -31
  13. package/dist/components/button/combo-button.d.ts.map +1 -1
  14. package/dist/components/button/combo-button.module.css +3 -3
  15. package/dist/components/button/control-buttons.module.css +1 -2
  16. package/dist/components/button/copy-button.d.ts.map +1 -1
  17. package/dist/components/button/copy-button.module.css +6 -7
  18. package/dist/components/card/card.d.ts.map +1 -1
  19. package/dist/components/card/card.module.css +6 -10
  20. package/dist/components/chips/@types/chip.d.ts +20 -0
  21. package/dist/components/chips/@types/chip.d.ts.map +1 -1
  22. package/dist/components/chips/chip.d.ts.map +1 -1
  23. package/dist/components/chips/chip.module.css +30 -19
  24. package/dist/components/container/container.d.ts.map +1 -1
  25. package/dist/components/container/container.module.css +6 -10
  26. package/dist/components/dropdown/dropdown.module.css +6 -7
  27. package/dist/components/forms/@types/checkbox.d.ts +28 -1
  28. package/dist/components/forms/@types/checkbox.d.ts.map +1 -1
  29. package/dist/components/forms/@types/input.d.ts +29 -1
  30. package/dist/components/forms/@types/input.d.ts.map +1 -1
  31. package/dist/components/forms/calendar.module.css +14 -14
  32. package/dist/components/forms/checkbox-group.d.ts.map +1 -1
  33. package/dist/components/forms/checkbox.d.ts.map +1 -1
  34. package/dist/components/forms/checkbox.module.css +12 -17
  35. package/dist/components/forms/checkbox.module.js +0 -1
  36. package/dist/components/forms/checkbox_module.css +3 -13
  37. package/dist/components/forms/error-text.module.css +6 -7
  38. package/dist/components/forms/help-text.d.ts.map +1 -1
  39. package/dist/components/forms/help-text.module.css +6 -7
  40. package/dist/components/forms/input-adornment.module.css +6 -7
  41. package/dist/components/forms/input-password.d.ts.map +1 -1
  42. package/dist/components/forms/input.d.ts.map +1 -1
  43. package/dist/components/forms/input.module.css +6 -7
  44. package/dist/components/forms/label.module.css +6 -7
  45. package/dist/components/forms/radio-group.module.css +6 -7
  46. package/dist/components/forms/select.d.ts.map +1 -1
  47. package/dist/components/forms/select.js +1 -1
  48. package/dist/components/forms/select.module.css +74 -3
  49. package/dist/components/forms/select.module.js +10 -0
  50. package/dist/components/forms/select_module.css +63 -3
  51. package/dist/components/forms/text-area.module.css +10 -9
  52. package/dist/components/notifications/@types/alert.d.ts +16 -1
  53. package/dist/components/notifications/@types/alert.d.ts.map +1 -1
  54. package/dist/components/notifications/@types/toast.d.ts +36 -1
  55. package/dist/components/notifications/@types/toast.d.ts.map +1 -1
  56. package/dist/components/notifications/alert.d.ts.map +1 -1
  57. package/dist/components/notifications/alert.module.css +6 -7
  58. package/dist/components/notifications/toast.module.css +6 -8
  59. package/dist/components/overlay/overlay.module.css +6 -4
  60. package/dist/components/pager/@types/index.d.ts +12 -0
  61. package/dist/components/pager/@types/index.d.ts.map +1 -1
  62. package/dist/components/pager/pagination.module.css +6 -8
  63. package/dist/components/scroll-area/scroll-area.d.ts.map +1 -1
  64. package/dist/components/scroll-area/scroll-area.module.css +6 -7
  65. package/dist/components/scroll-to-top/scroll-to-top.module.css +5 -7
  66. package/dist/components/section/section.d.ts.map +1 -1
  67. package/dist/components/section/section.module.css +6 -7
  68. package/dist/components/shimmer/shimmer.module.css +6 -8
  69. package/dist/components/table/table.d.ts.map +1 -1
  70. package/dist/components/table/table.module.css +6 -8
  71. package/dist/components/tabs/tabs.module.css +6 -7
  72. package/dist/components/tooltip/tooltip.module.css +6 -7
  73. package/dist/icons/eye-closed-icon.d.ts.map +1 -1
  74. package/dist/icons/eye-open-icon.d.ts.map +1 -1
  75. package/dist/icons/icons.module.css +1 -1
  76. package/dist/widgets/datepicker/datepicker.d.ts.map +1 -1
  77. package/dist/widgets/datepicker/datepicker.module.css +1 -2
  78. package/dist/widgets/drawer/drawer-container.d.ts.map +1 -1
  79. package/dist/widgets/drawer/drawer-content.d.ts.map +1 -1
  80. package/dist/widgets/drawer/drawer.module.css +1 -3
  81. package/dist/widgets/modal/modal-actions.d.ts.map +1 -1
  82. package/dist/widgets/modal/modal-container.d.ts.map +1 -1
  83. package/dist/widgets/modal/modal-content.d.ts.map +1 -1
  84. package/dist/widgets/modal/modal.module.css +1 -3
  85. package/dist/widgets/timeline/timeline.module.css +6 -8
  86. package/package.json +1 -1
  87. package/src/components/@types/shared.ts +55 -0
  88. package/src/components/accordion/accordion.module.css +1 -2
  89. package/src/components/accordion/accordion.stories.tsx +1 -2
  90. package/src/components/accordion/accordion.tsx +25 -5
  91. package/src/components/avatar/avatar.module.css +6 -7
  92. package/src/components/avatar/avatar.tsx +9 -2
  93. package/src/components/badge/badge.module.css +6 -7
  94. package/src/components/badge/badge.tsx +7 -1
  95. package/src/components/button/@types/button.ts +36 -1
  96. package/src/components/button/button-group.module.css +1 -3
  97. package/src/components/button/button.module.css +48 -31
  98. package/src/components/button/button.tsx +1 -1
  99. package/src/components/button/combo-button.module.css +3 -3
  100. package/src/components/button/combo-button.tsx +17 -5
  101. package/src/components/button/combo-buttons.stories.tsx +6 -3
  102. package/src/components/button/control-buttons.module.css +1 -2
  103. package/src/components/button/copy-button.module.css +6 -7
  104. package/src/components/button/copy-button.tsx +12 -3
  105. package/src/components/card/card.module.css +6 -10
  106. package/src/components/card/card.tsx +20 -4
  107. package/src/components/chips/@types/chip.ts +22 -0
  108. package/src/components/chips/chip.module.css +30 -19
  109. package/src/components/chips/chip.tsx +10 -5
  110. package/src/components/container/container.module.css +6 -10
  111. package/src/components/container/container.tsx +1 -1
  112. package/src/components/dropdown/dropdown.module.css +6 -7
  113. package/src/components/forms/@types/checkbox.ts +31 -1
  114. package/src/components/forms/@types/input.ts +32 -1
  115. package/src/components/forms/calendar.module.css +14 -14
  116. package/src/components/forms/checkbox-group.tsx +1 -1
  117. package/src/components/forms/checkbox.module.css +12 -17
  118. package/src/components/forms/checkbox.tsx +4 -1
  119. package/src/components/forms/error-text.module.css +6 -7
  120. package/src/components/forms/help-text.module.css +6 -7
  121. package/src/components/forms/help-text.tsx +5 -1
  122. package/src/components/forms/input-adornment.module.css +6 -7
  123. package/src/components/forms/input-password.tsx +7 -1
  124. package/src/components/forms/input.module.css +6 -7
  125. package/src/components/forms/input.tsx +18 -2
  126. package/src/components/forms/label.module.css +6 -7
  127. package/src/components/forms/radio-group.module.css +6 -7
  128. package/src/components/forms/select.module.css +74 -3
  129. package/src/components/forms/select.stories.tsx +47 -9
  130. package/src/components/forms/select.tsx +4 -2
  131. package/src/components/forms/text-area.module.css +10 -9
  132. package/src/components/notifications/@types/alert.ts +17 -1
  133. package/src/components/notifications/@types/toast.ts +40 -1
  134. package/src/components/notifications/alert.module.css +6 -7
  135. package/src/components/notifications/alert.tsx +10 -3
  136. package/src/components/notifications/toast.module.css +6 -8
  137. package/src/components/overlay/overlay.module.css +6 -4
  138. package/src/components/pager/@types/index.ts +13 -0
  139. package/src/components/pager/pagination.module.css +6 -8
  140. package/src/components/pager/pagination.tsx +6 -1
  141. package/src/components/scroll-area/scroll-area.module.css +6 -7
  142. package/src/components/scroll-area/scroll-area.tsx +13 -4
  143. package/src/components/scroll-to-top/scroll-to-top.module.css +5 -7
  144. package/src/components/section/section.module.css +6 -7
  145. package/src/components/section/section.tsx +1 -1
  146. package/src/components/shimmer/shimmer.module.css +6 -8
  147. package/src/components/table/table.module.css +6 -8
  148. package/src/components/table/table.tsx +6 -1
  149. package/src/components/tabs/tabs.module.css +6 -7
  150. package/src/components/tooltip/tooltip.module.css +6 -7
  151. package/src/icons/ai-icon.tsx +1 -1
  152. package/src/icons/eye-closed-icon.tsx +2 -1
  153. package/src/icons/eye-open-icon.tsx +1 -5
  154. package/src/icons/icons.module.css +1 -1
  155. package/src/styles/base/base.css +1 -1
  156. package/src/styles/base/colors.css +1 -2
  157. package/src/styles/components/loaders.css +1 -1
  158. package/src/styles/functional/colors.css +201 -56
  159. package/src/styles/functional/surfaces.css +1 -2
  160. package/src/styles/functional/typography.css +1 -1
  161. package/src/widgets/datepicker/datepicker.module.css +1 -2
  162. package/src/widgets/datepicker/datepicker.tsx +44 -16
  163. package/src/widgets/drawer/drawer-container.tsx +6 -1
  164. package/src/widgets/drawer/drawer-content.tsx +5 -1
  165. package/src/widgets/drawer/drawer.module.css +1 -3
  166. package/src/widgets/modal/modal-actions.tsx +5 -1
  167. package/src/widgets/modal/modal-container.tsx +5 -1
  168. package/src/widgets/modal/modal-content.tsx +5 -1
  169. package/src/widgets/modal/modal.module.css +1 -3
  170. package/src/widgets/timeline/timeline.module.css +6 -8
@@ -1,12 +1,11 @@
1
1
  @layer infonomic-base,
2
- infonomic-functional,
3
- infonomic-utilities,
4
- infonomic-theme,
5
- infonomic-typography,
6
- infonomic-components;
2
+ infonomic-functional,
3
+ infonomic-utilities,
4
+ infonomic-theme,
5
+ infonomic-typography,
6
+ infonomic-components;
7
7
 
8
8
  @layer infonomic-components {
9
-
10
9
  .copy-button-container,
11
10
  :global(.infonomic-copy-button-container) {
12
11
  display: inline-block;
@@ -59,4 +58,4 @@ infonomic-components;
59
58
  min-height: 54px;
60
59
  padding: 0.65rem;
61
60
  }
62
- }
61
+ }
@@ -62,7 +62,13 @@ export function CopyButton({
62
62
  const tooltipText = copied != null && copied ? copiedText : hoverText
63
63
 
64
64
  return (
65
- <div className={cx('infonomic-copy-button-container', styles['copy-button-container'], containerClassName)}>
65
+ <div
66
+ className={cx(
67
+ 'infonomic-copy-button-container',
68
+ styles['copy-button-container'],
69
+ containerClassName
70
+ )}
71
+ >
66
72
  <Tooltip side="top" sideOffset={2} text={tooltipText} open={copied}>
67
73
  <Button
68
74
  variant={variant}
@@ -70,11 +76,14 @@ export function CopyButton({
70
76
  intent={intent}
71
77
  fullWidth={fullWidth}
72
78
  ripple={ripple}
73
- className={cx('infonomic-copy-button',
79
+ className={cx(
80
+ 'infonomic-copy-button',
74
81
  `infonomic-copy-button-${variant}`,
75
82
  `infonomic-copy-button-${size}`,
76
83
  `infonomic-copy-button-${intent}`,
77
- styles[size], className)}
84
+ styles[size],
85
+ className
86
+ )}
78
87
  onClick={handleCopied}
79
88
  {...rest}
80
89
  >
@@ -1,12 +1,11 @@
1
1
  @layer infonomic-base,
2
- infonomic-functional,
3
- infonomic-utilities,
4
- infonomic-theme,
5
- infonomic-typography,
6
- infonomic-components;
2
+ infonomic-functional,
3
+ infonomic-utilities,
4
+ infonomic-theme,
5
+ infonomic-typography,
6
+ infonomic-components;
7
7
 
8
8
  @layer infonomic-components {
9
-
10
9
  .card,
11
10
  :global(.infonomic-card) {
12
11
  display: flex;
@@ -25,14 +24,12 @@ infonomic-components;
25
24
 
26
25
  :global(.dark),
27
26
  :global([data-theme="dark"]) {
28
-
29
27
  .card,
30
28
  :global(.infonomic-card) {
31
29
  background: var(--canvas-800);
32
30
  }
33
31
  }
34
32
 
35
-
36
33
  .card-hover,
37
34
  :global(.infonomic-card-hover) {
38
35
  transition: background 0.2s ease-in-out;
@@ -45,7 +42,6 @@ infonomic-components;
45
42
 
46
43
  :global(.dark),
47
44
  :global([data-theme="dark"]) {
48
-
49
45
  .card-hover:hover,
50
46
  :global(.infonomic-card-hover):hover {
51
47
  background: oklch(from var(--canvas-800) 0.2 c h);
@@ -89,4 +85,4 @@ infonomic-components;
89
85
  padding: 1rem;
90
86
  padding-top: 0;
91
87
  }
92
- }
88
+ }
@@ -49,7 +49,11 @@ interface OtherProps extends React.HTMLAttributes<HTMLDivElement> {
49
49
  }
50
50
 
51
51
  const Header = ({ className, ref, ...props }: OtherProps) => (
52
- <div ref={ref} className={cx('infonomic-card-header', styles['card-header'], className)} {...props} />
52
+ <div
53
+ ref={ref}
54
+ className={cx('infonomic-card-header', styles['card-header'], className)}
55
+ {...props}
56
+ />
53
57
  )
54
58
 
55
59
  Header.displayName = 'CardHeader'
@@ -64,17 +68,29 @@ const Title = ({ className, ref, ...props }: OtherProps) => (
64
68
  Title.displayName = 'CardTitle'
65
69
 
66
70
  const Description = ({ className, ref, ...props }: OtherProps) => (
67
- <div ref={ref} className={cx('infonomic-card-description', styles['card-description'], className)} {...props} />
71
+ <div
72
+ ref={ref}
73
+ className={cx('infonomic-card-description', styles['card-description'], className)}
74
+ {...props}
75
+ />
68
76
  )
69
77
  Description.displayName = 'CardDescription'
70
78
 
71
79
  const Content = ({ className, ref, ...props }: OtherProps) => (
72
- <div ref={ref} className={cx('infonomic-card-content', styles['card-content'], className)} {...props} />
80
+ <div
81
+ ref={ref}
82
+ className={cx('infonomic-card-content', styles['card-content'], className)}
83
+ {...props}
84
+ />
73
85
  )
74
86
  Content.displayName = 'CardContent'
75
87
 
76
88
  const Footer = ({ className, ref, ...props }: OtherProps) => (
77
- <div ref={ref} className={cx('infonomic-card-footer', styles['card-footer'], className)} {...props} />
89
+ <div
90
+ ref={ref}
91
+ className={cx('infonomic-card-footer', styles['card-footer'], className)}
92
+ {...props}
93
+ />
78
94
  )
79
95
  Footer.displayName = 'CardFooter'
80
96
 
@@ -1,7 +1,29 @@
1
1
  import type { Intent, Size } from '../../@types/shared.js'
2
2
 
3
+ /**
4
+ * Available behavioural variants for the Chip component.
5
+ */
3
6
  export const chipVariant = ['assist', 'selectable', 'removable', 'selectable-removable'] as const
7
+
8
+ /**
9
+ * Behavioural variant of the chip.
10
+ *
11
+ * - `assist` — non-interactive display chip, purely informational
12
+ * - `selectable` — toggles on/off when clicked (like a filter tag)
13
+ * - `removable` — shows a dismiss/close button to remove the chip
14
+ * - `selectable-removable` — combines toggle selection with a dismiss button
15
+ */
4
16
  export type ChipVariant = (typeof chipVariant)[number]
5
17
 
18
+ /**
19
+ * Semantic color intent of the chip. Inherits all values from the shared `Intent` type.
20
+ * Controls the chip's background and text color.
21
+ * @default 'primary'
22
+ */
6
23
  export type ChipIntent = Intent
24
+
25
+ /**
26
+ * Visual size of the chip. Inherits all values from the shared `Size` type.
27
+ * @default 'md'
28
+ */
7
29
  export type ChipSize = Size
@@ -1,12 +1,11 @@
1
1
  @layer infonomic-base,
2
- infonomic-functional,
3
- infonomic-utilities,
4
- infonomic-theme,
5
- infonomic-typography,
6
- infonomic-components;
2
+ infonomic-functional,
3
+ infonomic-utilities,
4
+ infonomic-theme,
5
+ infonomic-typography,
6
+ infonomic-components;
7
7
 
8
8
  @layer infonomic-components {
9
-
10
9
  .chip,
11
10
  :global(.infonomic-chip) {
12
11
  --chip-font-size: 0.9rem;
@@ -151,10 +150,14 @@ infonomic-components;
151
150
  .filled[disabled],
152
151
  :global(.infonomic-chip-filled):disabled,
153
152
  :global(.infonomic-chip-filled)[disabled] {
154
- background-color: var(--chip-variant-filled-disabled,
155
- oklch(from var(--chip-variant-filled) calc(l * 1.1) calc(c * 0.85) h));
156
- color: var(--chip-variant-filled-foreground-disabled,
157
- oklch(from var(--chip-variant-filled-foreground) calc(l * 0.9) calc(c * 0.85) h));
153
+ background-color: var(
154
+ --chip-variant-filled-disabled,
155
+ oklch(from var(--chip-variant-filled) calc(l * 1.1) calc(c * 0.85) h)
156
+ );
157
+ color: var(
158
+ --chip-variant-filled-foreground-disabled,
159
+ oklch(from var(--chip-variant-filled-foreground) calc(l * 0.9) calc(c * 0.85) h)
160
+ );
158
161
  }
159
162
 
160
163
  /* -------------------------------------------------------- */
@@ -182,10 +185,14 @@ infonomic-components;
182
185
  .filled-weak[disabled],
183
186
  :global(.infonomic-chip-filled-weak):disabled,
184
187
  :global(.infonomic-chip-filled-weak)[disabled] {
185
- background-color: var(--chip-variant-filled-weak-disabled,
186
- oklch(from var(--chip-variant-filled-weak) calc(l * 1.1) calc(c * 0.85) h));
187
- color: var(--chip-variant-filled-weak-foreground-disabled,
188
- oklch(from var(--chip-variant-filled-weak-foreground) calc(l * 0.9) calc(c * 0.85) h));
188
+ background-color: var(
189
+ --chip-variant-filled-weak-disabled,
190
+ oklch(from var(--chip-variant-filled-weak) calc(l * 1.1) calc(c * 0.85) h)
191
+ );
192
+ color: var(
193
+ --chip-variant-filled-weak-foreground-disabled,
194
+ oklch(from var(--chip-variant-filled-weak-foreground) calc(l * 0.9) calc(c * 0.85) h)
195
+ );
189
196
  }
190
197
 
191
198
  /* -------------------------------------------------------- */
@@ -202,10 +209,14 @@ infonomic-components;
202
209
  .outlined[disabled],
203
210
  :global(.infonomic-chip-outlined):disabled,
204
211
  :global(.infonomic-chip-outlined)[disabled] {
205
- border-color: var(--chip-variant-outlined-border-disabled,
206
- oklch(from var(--chip-variant-outlined-border) calc(l * 1.5) calc(c * 0.8) h));
207
- color: var(--chip-variant-outlined-foreground-disabled,
208
- oklch(from var(--chip-variant-outlined-foreground) calc(l * 1.1) calc(c * 0.7) h));
212
+ border-color: var(
213
+ --chip-variant-outlined-border-disabled,
214
+ oklch(from var(--chip-variant-outlined-border) calc(l * 1.5) calc(c * 0.8) h)
215
+ );
216
+ color: var(
217
+ --chip-variant-outlined-foreground-disabled,
218
+ oklch(from var(--chip-variant-outlined-foreground) calc(l * 1.1) calc(c * 0.7) h)
219
+ );
209
220
  }
210
221
 
211
222
  .outlined:hover,
@@ -434,4 +445,4 @@ infonomic-components;
434
445
  --chip-variant-outlined-foreground: var(--text-on-danger-outlined);
435
446
  --chip-variant-outlined-foreground-disabled: var(--text-on-danger-outlined-disabled);
436
447
  }
437
- }
448
+ }
@@ -7,7 +7,6 @@ import cx from 'classnames'
7
7
 
8
8
  import { CheckIcon } from '../../icons/check-icon.js'
9
9
  import { CloseIcon } from '../../icons/close-icon.js'
10
- import { IconButton } from '../button/icon-button.js'
11
10
  import styles from './chip.module.css'
12
11
  import type { ChipIntent, ChipSize, ChipVariant } from './@types/chip.js'
13
12
 
@@ -70,7 +69,7 @@ export const Chip = <C extends React.ElementType = 'button'>({
70
69
  }
71
70
 
72
71
  if (onClick) {
73
- ; (onClick as React.MouseEventHandler<HTMLElement>)(event)
72
+ ;(onClick as React.MouseEventHandler<HTMLElement>)(event)
74
73
  }
75
74
 
76
75
  if (isSelectable && onToggle) {
@@ -86,7 +85,7 @@ export const Chip = <C extends React.ElementType = 'button'>({
86
85
  if ((event.key === 'Enter' || event.key === ' ') && asChild === true) {
87
86
  event.preventDefault()
88
87
  if (onClick) {
89
- ; (onClick as React.MouseEventHandler<HTMLElement>)(
88
+ ;(onClick as React.MouseEventHandler<HTMLElement>)(
90
89
  event as unknown as React.MouseEvent<HTMLElement>
91
90
  )
92
91
  }
@@ -181,9 +180,15 @@ export const Chip = <C extends React.ElementType = 'button'>({
181
180
  onKeyDown={handleKeyDown}
182
181
  {...restProps}
183
182
  >
184
- {leadingIcon != null && <span className={cx('infonomic-chip-icon-wrapper', styles.iconWrapper)}>{leadingIcon}</span>}
183
+ {leadingIcon != null && (
184
+ <span className={cx('infonomic-chip-icon-wrapper', styles.iconWrapper)}>{leadingIcon}</span>
185
+ )}
185
186
  <span className={cx('infonomic-chip-label', styles.label)}>{children}</span>
186
- {trailingIcon != null && <span className={cx('infonomic-chip-icon-wrapper', styles.iconWrapper)}>{trailingIcon}</span>}
187
+ {trailingIcon != null && (
188
+ <span className={cx('infonomic-chip-icon-wrapper', styles.iconWrapper)}>
189
+ {trailingIcon}
190
+ </span>
191
+ )}
187
192
  </Comp>
188
193
  )
189
194
  }
@@ -1,12 +1,11 @@
1
1
  @layer infonomic-base,
2
- infonomic-functional,
3
- infonomic-utilities,
4
- infonomic-theme,
5
- infonomic-typography,
6
- infonomic-components;
2
+ infonomic-functional,
3
+ infonomic-utilities,
4
+ infonomic-theme,
5
+ infonomic-typography,
6
+ infonomic-components;
7
7
 
8
8
  @layer infonomic-components {
9
-
10
9
  .container,
11
10
  :global(.infonomic-container) {
12
11
  width: 100%;
@@ -18,7 +17,6 @@ infonomic-components;
18
17
  /* Shy edges */
19
18
  /* Large */
20
19
  @media (min-width: 66rem) {
21
-
22
20
  .container,
23
21
  :global(.infonomic-container) {
24
22
  max-width: 64rem;
@@ -27,7 +25,6 @@ infonomic-components;
27
25
 
28
26
  /* X-Large */
29
27
  @media (min-width: 77rem) {
30
-
31
28
  .container,
32
29
  :global(.infonomic-container) {
33
30
  max-width: 74.375rem;
@@ -36,10 +33,9 @@ infonomic-components;
36
33
 
37
34
  /* 2X-Large */
38
35
  @media (min-width: 94rem) {
39
-
40
36
  .container,
41
37
  :global(.infonomic-container) {
42
38
  max-width: 87.5rem;
43
39
  }
44
40
  }
45
- }
41
+ }
@@ -5,7 +5,7 @@ import cx from 'classnames'
5
5
  import styles from './container.module.css'
6
6
 
7
7
  type ContainerIntrinsicProps = React.JSX.IntrinsicElements['div']
8
- export interface ContainerProps extends ContainerIntrinsicProps { }
8
+ export interface ContainerProps extends ContainerIntrinsicProps {}
9
9
 
10
10
  export const Container = function Container({
11
11
  ref,
@@ -1,12 +1,11 @@
1
1
  @layer infonomic-base,
2
- infonomic-functional,
3
- infonomic-utilities,
4
- infonomic-theme,
5
- infonomic-typography,
6
- infonomic-components;
2
+ infonomic-functional,
3
+ infonomic-utilities,
4
+ infonomic-theme,
5
+ infonomic-typography,
6
+ infonomic-components;
7
7
 
8
8
  @layer infonomic-components {
9
-
10
9
  .dropdown-content,
11
10
  .dropdown-subcontent,
12
11
  :global(.infonomic-dropdown-content),
@@ -126,4 +125,4 @@ infonomic-components;
126
125
  transform: translateX(0);
127
126
  }
128
127
  }
129
- }
128
+ }
@@ -5,16 +5,46 @@ import type { ReactNode } from 'react'
5
5
  import type { Intent as t } from '../../@types/shared.js'
6
6
 
7
7
  /**
8
- * This file contains the types and prop-types for Button and IconButton component.
8
+ * This file contains the types and prop-types for the Checkbox and CheckboxGroup components.
9
9
  */
10
10
 
11
11
  // typescript types
12
+
13
+ /**
14
+ * Available visual style variants for the Checkbox component.
15
+ */
12
16
  export const variant = ['outlined', 'filled'] as const
17
+
18
+ /**
19
+ * Visual style variant of the checkbox.
20
+ *
21
+ * - `outlined` — hollow checkbox with an intent-colored border; fills on check (default)
22
+ * - `filled` — always has a tinted background, more prominent in forms
23
+ *
24
+ * @default 'outlined'
25
+ */
13
26
  export type Variant = (typeof variant)[number]
14
27
 
28
+ /**
29
+ * Available size tokens for checkboxes.
30
+ */
15
31
  export const size = ['sm', 'md', 'lg'] as const
32
+
33
+ /**
34
+ * Visual size of the checkbox.
35
+ *
36
+ * - `sm` — small, for dense lists
37
+ * - `md` — standard size (default)
38
+ * - `lg` — large, for touch-friendly or prominent forms
39
+ *
40
+ * @default 'md'
41
+ */
16
42
  export type Size = (typeof size)[number]
17
43
 
44
+ /**
45
+ * Semantic color intent applied to the checkbox border and checked state.
46
+ * @default 'primary'
47
+ */
18
48
  export type Intent = 'primary' | t
19
49
  export type ClassName = string
20
50
  export type Children = ReactNode
@@ -5,16 +5,47 @@ import type { ReactNode } from 'react'
5
5
  import type { Intent as t } from '../../@types/shared.js'
6
6
 
7
7
  /**
8
- * This file contains the types and prop-types for Button and IconButton component.
8
+ * This file contains the types and prop-types for the Input and related form components.
9
9
  */
10
10
 
11
11
  // typescript types
12
+
13
+ /**
14
+ * Available visual style variants for the Input component.
15
+ */
12
16
  export const variant = ['outlined', 'filled', 'underlined'] as const
17
+
18
+ /**
19
+ * Visual style variant of the input field.
20
+ *
21
+ * - `outlined` — full border on all sides with a transparent background (default)
22
+ * - `filled` — tinted background with only a bottom border
23
+ * - `underlined` — bottom border only, no background (minimal style)
24
+ *
25
+ * @default 'outlined'
26
+ */
13
27
  export type Variant = (typeof variant)[number]
14
28
 
29
+ /**
30
+ * Available size tokens for form inputs.
31
+ */
15
32
  export const size = ['sm', 'md', 'lg'] as const
33
+
34
+ /**
35
+ * Visual size of the input field.
36
+ *
37
+ * - `sm` — compact, suitable for inline forms or dense layouts
38
+ * - `md` — standard form size (default)
39
+ * - `lg` — large, prominent or hero input
40
+ *
41
+ * @default 'md'
42
+ */
16
43
  export type Size = (typeof size)[number]
17
44
 
45
+ /**
46
+ * Semantic color intent applied to the input border and focus ring.
47
+ * @default 'primary'
48
+ */
18
49
  export type Intent = 'primary' | t
19
50
  export type ClassName = string
20
51
  export type Children = ReactNode
@@ -1,9 +1,9 @@
1
1
  @layer infonomic-base,
2
- infonomic-functional,
3
- infonomic-utilities,
4
- infonomic-theme,
5
- infonomic-typography,
6
- infonomic-components;
2
+ infonomic-functional,
3
+ infonomic-utilities,
4
+ infonomic-theme,
5
+ infonomic-typography,
6
+ infonomic-components;
7
7
 
8
8
  @layer infonomic-components {
9
9
  .day-picker {
@@ -167,19 +167,19 @@ infonomic-components;
167
167
  }
168
168
 
169
169
  /* '[&>button]:bg-primary [&>button]:text-primary-foreground [&>button]:hover:bg-primary [&>button]:hover:text-primary-foreground', */
170
- .day>button {
170
+ .day > button {
171
171
  color: var(--foreground);
172
172
  }
173
173
 
174
174
  /* '[&>button]:bg-accent [&>button]:text-accent-foreground', */
175
- .today>button {
175
+ .today > button {
176
176
  /* background-color: var(--gray-50); */
177
177
  border: solid 1px var(--stroke-primary);
178
178
  color: var(--foreground);
179
179
  }
180
180
 
181
- .day>button:hover,
182
- .day-selected>button {
181
+ .day > button:hover,
182
+ .day-selected > button {
183
183
  background-color: var(--fill-primary-strong);
184
184
  color: white;
185
185
  }
@@ -206,12 +206,12 @@ infonomic-components;
206
206
  color: var(--foreground);
207
207
  }
208
208
 
209
- .button-range>button {
209
+ .button-range > button {
210
210
  background-color: var(--fill-primary-strong);
211
211
  color: white;
212
212
  }
213
213
 
214
- .button-range>button:hover {
214
+ .button-range > button:hover {
215
215
  background-color: var(--fill-primary-strong);
216
216
  color: var(--foreground);
217
217
  }
@@ -232,8 +232,8 @@ infonomic-components;
232
232
  color: var(--foreground);
233
233
  }
234
234
 
235
- .range-middle>button,
236
- .range-middle>button:hover {
235
+ .range-middle > button,
236
+ .range-middle > button:hover {
237
237
  background-color: transparent;
238
238
  color: var(--foreground);
239
239
  }
@@ -271,4 +271,4 @@ infonomic-components;
271
271
  opacity: 0.7;
272
272
  }
273
273
  }
274
- }
274
+ }
@@ -10,7 +10,7 @@ import { Checkbox } from './checkbox.js'
10
10
  export interface CheckboxGroupProps {
11
11
  groupName: string
12
12
  className?: string
13
- checkBoxClasses?: string,
13
+ checkBoxClasses?: string
14
14
  checkBoxes: { id: string; label: string }[]
15
15
  defaultValues?: string[]
16
16
  controlledValue?: string
@@ -63,9 +63,17 @@ infonomic-components;
63
63
  width: 20px;
64
64
  height: 20px;
65
65
  color: var(--checkbox-icon-color);
66
+ /* Hidden by default — prevents flash on initial render before data-state is applied */
67
+ opacity: 0;
68
+ transform: scale(0.8);
69
+ /* Transition handles the unchecked→unchecked no-op and the checked→unchecked exit.
70
+ It only fires on state changes, never on initial mount, so no flash. */
71
+ transition:
72
+ opacity 0.2s ease-in,
73
+ transform 0.2s ease-in;
66
74
  }
67
75
 
68
- /* Style for the "checked" state */
76
+ /* Style for the "checked" state — animation overrides the transition for bouncy entry */
69
77
  .indicator[data-state="checked"] .icon,
70
78
  :global(.infonomic-checkbox-indicator)[data-state="checked"] :global(.infonomic-checkbox-icon) {
71
79
  animation: checkBoxIn 0.3s cubic-bezier(0.25, 1.5, 0.5, 1) forwards;
@@ -73,10 +81,9 @@ infonomic-components;
73
81
  transform: scale(1);
74
82
  }
75
83
 
76
- /* Style for the "unchecked" state */
84
+ /* Style for the "unchecked" state — no animation, let the CSS transition handle the exit */
77
85
  .indicator[data-state="unchecked"] .icon,
78
86
  :global(.infonomic-checkbox-indicator)[data-state="unchecked"] :global(.infonomic-checkbox-icon) {
79
- animation: checkBoxOut 0.2s ease-in;
80
87
  opacity: 0;
81
88
  transform: scale(0.8);
82
89
  }
@@ -91,8 +98,8 @@ infonomic-components;
91
98
 
92
99
  .checkbox:disabled~.label,
93
100
  .checkbox[disabled]~.label,
94
- :global(.infonomic-checkbox):disabled~:global(.infonomic-checkbox-label),
95
- :global(.infonomic-checkbox)[disabled]~:global(.infonomic-checkbox-label) {
101
+ :global(.infonomic-checkbox):disabled~ :global(.infonomic-checkbox-label),
102
+ :global(.infonomic-checkbox)[disabled]~ :global(.infonomic-checkbox-label) {
96
103
  pointer-events: none;
97
104
  }
98
105
 
@@ -270,16 +277,4 @@ infonomic-components;
270
277
  }
271
278
  }
272
279
 
273
- /* Define keyframes for the "unchecked" state */
274
- @keyframes checkBoxOut {
275
- from {
276
- opacity: 1;
277
- transform: scale(1);
278
- }
279
-
280
- to {
281
- opacity: 0;
282
- transform: scale(0.8);
283
- }
284
- }
285
280
  }
@@ -86,7 +86,10 @@ export const Checkbox = function Checkbox({
86
86
  </CheckboxPrimitive.Root>
87
87
 
88
88
  {label != null && (
89
- <LabelPrimitive.Label htmlFor={id} className={cx('infonomic-checkbox-label', styles.label, labelClasses)}>
89
+ <LabelPrimitive.Label
90
+ htmlFor={id}
91
+ className={cx('infonomic-checkbox-label', styles.label, labelClasses)}
92
+ >
90
93
  {label}
91
94
  </LabelPrimitive.Label>
92
95
  )}
@@ -1,12 +1,11 @@
1
1
  @layer infonomic-base,
2
- infonomic-functional,
3
- infonomic-utilities,
4
- infonomic-theme,
5
- infonomic-typography,
6
- infonomic-components;
2
+ infonomic-functional,
3
+ infonomic-utilities,
4
+ infonomic-theme,
5
+ infonomic-typography,
6
+ infonomic-components;
7
7
 
8
8
  @layer infonomic-components {
9
-
10
9
  .text,
11
10
  :global(.infonomic-error-text) {
12
11
  font-size: 0.875rem;
@@ -27,4 +26,4 @@ infonomic-components;
27
26
  :global(.infonomic-error-text-lg) {
28
27
  font-size: 0.9rem;
29
28
  }
30
- }
29
+ }
@@ -1,12 +1,11 @@
1
1
  @layer infonomic-base,
2
- infonomic-functional,
3
- infonomic-utilities,
4
- infonomic-theme,
5
- infonomic-typography,
6
- infonomic-components;
2
+ infonomic-functional,
3
+ infonomic-utilities,
4
+ infonomic-theme,
5
+ infonomic-typography,
6
+ infonomic-components;
7
7
 
8
8
  @layer infonomic-components {
9
-
10
9
  .text,
11
10
  :global(.infonomic-help-text) {
12
11
  font-size: 0.875rem;
@@ -27,4 +26,4 @@ infonomic-components;
27
26
  :global(.infonomic-help-text-lg) {
28
27
  font-size: 0.9rem;
29
28
  }
30
- }
29
+ }