@byline/ui 1.10.2 → 1.10.3

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 (182) hide show
  1. package/dist/components/accordion/accordion.js +5 -5
  2. package/dist/components/accordion/accordion_module.css +6 -6
  3. package/dist/components/avatar/avatar.js +4 -4
  4. package/dist/components/avatar/avatar_module.css +4 -4
  5. package/dist/components/badge/badge.js +1 -1
  6. package/dist/components/badge/badge_module.css +8 -8
  7. package/dist/components/button/button-group_module.css +2 -2
  8. package/dist/components/button/button.js +1 -1
  9. package/dist/components/button/button_module.css +46 -42
  10. package/dist/components/button/combo-button_module.css +6 -6
  11. package/dist/components/button/control-buttons.js +1 -1
  12. package/dist/components/button/control-buttons_module.css +1 -1
  13. package/dist/components/button/copy-button.js +2 -2
  14. package/dist/components/button/copy-button_module.css +7 -7
  15. package/dist/components/card/card.js +6 -6
  16. package/dist/components/card/card_module.css +9 -9
  17. package/dist/components/chips/chip.js +5 -5
  18. package/dist/components/chips/chip_module.css +41 -38
  19. package/dist/components/container/container.js +1 -1
  20. package/dist/components/container/container_module.css +4 -4
  21. package/dist/components/dropdown/dropdown.js +8 -8
  22. package/dist/components/dropdown/dropdown_module.css +8 -8
  23. package/dist/components/hamburger/hamburger.js +3 -3
  24. package/dist/components/hamburger/hamburger_module.css +16 -16
  25. package/dist/components/inputs/autocomplete.js +9 -9
  26. package/dist/components/inputs/autocomplete_module.css +36 -36
  27. package/dist/components/inputs/checkbox-group.js +1 -1
  28. package/dist/components/inputs/checkbox-group_module.css +1 -1
  29. package/dist/components/inputs/checkbox.js +5 -5
  30. package/dist/components/inputs/checkbox_module.css +31 -31
  31. package/dist/components/inputs/error-text_module.css +4 -4
  32. package/dist/components/inputs/help-text.js +1 -1
  33. package/dist/components/inputs/help-text_module.css +4 -4
  34. package/dist/components/inputs/input-adornment.js +1 -1
  35. package/dist/components/inputs/input-adornment_module.css +3 -3
  36. package/dist/components/inputs/input.js +5 -5
  37. package/dist/components/inputs/input_module.css +38 -38
  38. package/dist/components/inputs/label_module.css +2 -2
  39. package/dist/components/inputs/radio-group.js +1 -1
  40. package/dist/components/inputs/radio-group_module.css +18 -18
  41. package/dist/components/inputs/select.js +3 -3
  42. package/dist/components/inputs/select_module.css +8 -8
  43. package/dist/components/inputs/text-area.js +1 -1
  44. package/dist/components/inputs/text-area_module.css +3 -3
  45. package/dist/components/notifications/alert.js +10 -10
  46. package/dist/components/notifications/alert_module.css +16 -16
  47. package/dist/components/notifications/toast.js +7 -7
  48. package/dist/components/notifications/toast_module.css +25 -24
  49. package/dist/components/pager/pagination.js +2 -2
  50. package/dist/components/pager/pagination_module.css +6 -6
  51. package/dist/components/scroll-area/scroll-area.js +7 -7
  52. package/dist/components/scroll-area/scroll-area_module.css +9 -9
  53. package/dist/components/scroll-to-top/scroll-to-top.js +2 -2
  54. package/dist/components/scroll-to-top/scroll-to-top_module.css +9 -9
  55. package/dist/components/section/section.js +1 -1
  56. package/dist/components/section/section_module.css +1 -1
  57. package/dist/components/shimmer/shimmer_module.css +6 -6
  58. package/dist/components/table/table.js +8 -8
  59. package/dist/components/table/table_module.css +15 -15
  60. package/dist/components/tabs/tabs.js +4 -4
  61. package/dist/components/tabs/tabs_module.css +9 -9
  62. package/dist/components/tooltip/tooltip.js +2 -2
  63. package/dist/components/tooltip/tooltip_module.css +6 -6
  64. package/dist/fields/checkbox/checkbox-field.js +2 -1
  65. package/dist/fields/checkbox/checkbox-field.module.js +6 -0
  66. package/dist/fields/checkbox/checkbox-field_module.css +4 -0
  67. package/dist/forms/form-context.d.ts +1 -0
  68. package/dist/forms/form-context.js +3 -2
  69. package/dist/loaders/ellipses.js +2 -2
  70. package/dist/loaders/ellipses_module.css +2 -2
  71. package/dist/loaders/ring.js +2 -2
  72. package/dist/loaders/ring_module.css +2 -2
  73. package/dist/loaders/spinner.js +3 -3
  74. package/dist/loaders/spinner_module.css +3 -3
  75. package/dist/styles/styles.css +12 -0
  76. package/dist/widgets/datepicker/datepicker.js +11 -11
  77. package/dist/widgets/datepicker/datepicker_module.css +21 -21
  78. package/dist/widgets/drawer/drawer-container.js +1 -1
  79. package/dist/widgets/drawer/drawer-content.js +1 -1
  80. package/dist/widgets/drawer/drawer-header.js +1 -1
  81. package/dist/widgets/drawer/drawer-top-actions.js +1 -1
  82. package/dist/widgets/drawer/drawer.js +2 -2
  83. package/dist/widgets/drawer/drawer_module.css +11 -11
  84. package/dist/widgets/modal/modal-actions.js +1 -1
  85. package/dist/widgets/modal/modal-container.js +1 -1
  86. package/dist/widgets/modal/modal-content.js +1 -1
  87. package/dist/widgets/modal/modal-header.js +1 -1
  88. package/dist/widgets/modal/modal.js +2 -2
  89. package/dist/widgets/modal/modal_module.css +12 -12
  90. package/dist/widgets/search/search.js +6 -0
  91. package/dist/widgets/timeline/timeline_module.css +10 -10
  92. package/package.json +4 -4
  93. package/src/components/accordion/accordion.module.css +4 -4
  94. package/src/components/accordion/accordion.tsx +5 -5
  95. package/src/components/avatar/avatar.module.css +4 -4
  96. package/src/components/avatar/avatar.tsx +4 -4
  97. package/src/components/badge/badge.module.css +8 -8
  98. package/src/components/badge/badge.tsx +2 -2
  99. package/src/components/button/button-group.module.css +2 -2
  100. package/src/components/button/button.module.css +162 -86
  101. package/src/components/button/button.tsx +4 -4
  102. package/src/components/button/combo-button.module.css +7 -7
  103. package/src/components/button/control-buttons.module.css +5 -5
  104. package/src/components/button/control-buttons.tsx +1 -1
  105. package/src/components/button/copy-button.module.css +7 -7
  106. package/src/components/button/copy-button.tsx +5 -5
  107. package/src/components/card/card.module.css +9 -9
  108. package/src/components/card/card.tsx +6 -6
  109. package/src/components/chips/chip.module.css +126 -71
  110. package/src/components/chips/chip.tsx +8 -12
  111. package/src/components/container/container.module.css +4 -4
  112. package/src/components/container/container.tsx +1 -1
  113. package/src/components/dropdown/dropdown.module.css +7 -7
  114. package/src/components/dropdown/dropdown.tsx +8 -8
  115. package/src/components/hamburger/hamburger.module.css +16 -16
  116. package/src/components/hamburger/hamburger.tsx +3 -3
  117. package/src/components/inputs/autocomplete.module.css +42 -42
  118. package/src/components/inputs/autocomplete.tsx +12 -14
  119. package/src/components/inputs/checkbox-group.module.css +1 -1
  120. package/src/components/inputs/checkbox-group.tsx +1 -1
  121. package/src/components/inputs/checkbox.module.css +38 -34
  122. package/src/components/inputs/checkbox.tsx +8 -11
  123. package/src/components/inputs/error-text.module.css +4 -4
  124. package/src/components/inputs/help-text.module.css +4 -4
  125. package/src/components/inputs/help-text.tsx +1 -3
  126. package/src/components/inputs/input-adornment.module.css +3 -3
  127. package/src/components/inputs/input-adornment.tsx +2 -2
  128. package/src/components/inputs/input.module.css +45 -45
  129. package/src/components/inputs/input.tsx +8 -12
  130. package/src/components/inputs/label.module.css +2 -2
  131. package/src/components/inputs/radio-group.module.css +17 -17
  132. package/src/components/inputs/radio-group.tsx +1 -1
  133. package/src/components/inputs/select.module.css +8 -8
  134. package/src/components/inputs/select.tsx +3 -3
  135. package/src/components/inputs/text-area.module.css +4 -4
  136. package/src/components/inputs/text-area.tsx +3 -3
  137. package/src/components/notifications/alert.module.css +16 -16
  138. package/src/components/notifications/alert.tsx +11 -11
  139. package/src/components/notifications/toast.module.css +41 -28
  140. package/src/components/notifications/toast.tsx +7 -9
  141. package/src/components/pager/pagination.module.css +6 -6
  142. package/src/components/pager/pagination.tsx +2 -2
  143. package/src/components/scroll-area/scroll-area.module.css +5 -5
  144. package/src/components/scroll-area/scroll-area.tsx +7 -7
  145. package/src/components/scroll-to-top/scroll-to-top.module.css +9 -9
  146. package/src/components/scroll-to-top/scroll-to-top.tsx +2 -2
  147. package/src/components/section/section.module.css +1 -1
  148. package/src/components/section/section.tsx +1 -1
  149. package/src/components/shimmer/shimmer.module.css +18 -8
  150. package/src/components/table/table.module.css +15 -15
  151. package/src/components/table/table.tsx +8 -8
  152. package/src/components/tabs/tabs.module.css +4 -4
  153. package/src/components/tabs/tabs.tsx +4 -4
  154. package/src/components/tooltip/tooltip.module.css +2 -2
  155. package/src/components/tooltip/tooltip.tsx +2 -2
  156. package/src/fields/checkbox/checkbox-field.module.css +4 -0
  157. package/src/fields/checkbox/checkbox-field.tsx +2 -1
  158. package/src/forms/form-context.tsx +10 -2
  159. package/src/icons/source/icon-infonomic.svg +2 -2
  160. package/src/loaders/ellipses.module.css +2 -2
  161. package/src/loaders/ellipses.tsx +2 -2
  162. package/src/loaders/ring.module.css +2 -2
  163. package/src/loaders/ring.tsx +2 -2
  164. package/src/loaders/spinner.module.css +3 -3
  165. package/src/loaders/spinner.tsx +3 -6
  166. package/src/styles/styles.css +12 -0
  167. package/src/widgets/datepicker/datepicker.module.css +15 -15
  168. package/src/widgets/datepicker/datepicker.tsx +11 -21
  169. package/src/widgets/drawer/drawer-container.tsx +1 -1
  170. package/src/widgets/drawer/drawer-content.tsx +1 -1
  171. package/src/widgets/drawer/drawer-header.tsx +1 -1
  172. package/src/widgets/drawer/drawer-top-actions.tsx +1 -1
  173. package/src/widgets/drawer/drawer.module.css +11 -11
  174. package/src/widgets/drawer/drawer.tsx +2 -2
  175. package/src/widgets/modal/modal-actions.tsx +1 -1
  176. package/src/widgets/modal/modal-container.tsx +1 -1
  177. package/src/widgets/modal/modal-content.tsx +1 -1
  178. package/src/widgets/modal/modal-header.tsx +1 -1
  179. package/src/widgets/modal/modal.module.css +12 -12
  180. package/src/widgets/modal/modal.tsx +2 -2
  181. package/src/widgets/search/search.tsx +2 -0
  182. package/src/widgets/timeline/timeline.module.css +10 -10
@@ -12,11 +12,16 @@
12
12
  /* 'border-collapse w-full text-sm text-left text-gray-700 dark:text-gray-400 m-0', */
13
13
  @layer byline-components {
14
14
  .shimmer,
15
- :global(.infonomic-shimmer) {
15
+ :global(.byline-shimmer) {
16
16
  position: relative;
17
17
  overflow: hidden;
18
18
  background-color: #f0f0f0;
19
- background-image: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.6), transparent);
19
+ background-image: linear-gradient(
20
+ 90deg,
21
+ transparent,
22
+ rgba(255, 255, 255, 0.6),
23
+ transparent
24
+ );
20
25
  background-size: 200% 100%;
21
26
  animation: shimmer 1.5s infinite;
22
27
  }
@@ -24,31 +29,36 @@
24
29
  :global(.dark),
25
30
  :global([data-theme="dark"]) {
26
31
  .shimmer,
27
- :global(.infonomic-shimmer) {
32
+ :global(.byline-shimmer) {
28
33
  background-color: #141414;
29
- background-image: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.01), transparent);
34
+ background-image: linear-gradient(
35
+ 90deg,
36
+ transparent,
37
+ rgba(255, 255, 255, 0.01),
38
+ transparent
39
+ );
30
40
  }
31
41
  }
32
42
 
33
43
  .shimmerContainer,
34
- :global(.infonomic-shimmer-container) {
44
+ :global(.byline-shimmer-container) {
35
45
  display: flex;
36
46
  flex-direction: column;
37
47
  }
38
48
 
39
49
  .rectangular,
40
- :global(.infonomic-shimmer-rectangular) {
50
+ :global(.byline-shimmer-rectangular) {
41
51
  border-radius: 0.25rem;
42
52
  }
43
53
 
44
54
  .text,
45
- :global(.infonomic-shimmer-text) {
55
+ :global(.byline-shimmer-text) {
46
56
  border-radius: 0.125rem;
47
57
  height: 1rem;
48
58
  }
49
59
 
50
60
  .circular,
51
- :global(.infonomic-shimmer-circular) {
61
+ :global(.byline-shimmer-circular) {
52
62
  border-radius: 50%;
53
63
  aspect-ratio: 1;
54
64
  }
@@ -13,7 +13,7 @@
13
13
  @layer byline-components {
14
14
  /* 'table--container break-normal overflow-hidden relative shadow-md rounded-md my-[16px] dark:border dark:border-canvas-700', */
15
15
  .table-container,
16
- :global(.infonomic-table-container) {
16
+ :global(.byline-table-container) {
17
17
  display: block;
18
18
  overflow: hidden;
19
19
  word-break: normal;
@@ -24,13 +24,13 @@
24
24
  }
25
25
 
26
26
  .table-scroller,
27
- :global(.infonomic-table-scroller) {
27
+ :global(.byline-table-scroller) {
28
28
  overflow-x: auto;
29
29
  max-width: calc(100vw - 32px);
30
30
  }
31
31
 
32
32
  .table,
33
- :global(.infonomic-table) {
33
+ :global(.byline-table) {
34
34
  width: 100%;
35
35
  border-collapse: collapse;
36
36
  margin: 0;
@@ -40,7 +40,7 @@
40
40
 
41
41
  /* 'text-xs text-gray-700 uppercase bg-canvas-100 dark:bg-canvas-700 dark:text-gray-400', */
42
42
  .table-header,
43
- :global(.infonomic-table-header) {
43
+ :global(.byline-table-header) {
44
44
  font-size: var(--font-size-sm);
45
45
  /* text-transform: uppercase; */
46
46
  background-color: var(--canvas-50);
@@ -48,19 +48,19 @@
48
48
 
49
49
  /* 'border-b border-solid border-canvas-200 bg-white hover:bg-canvas-100/50 dark:border-canvas-700/60 dark:bg-canvas-800/50 dark:hover:bg-canvas-700/50', */
50
50
  .table-row,
51
- :global(.infonomic-table-row) {
51
+ :global(.byline-table-row) {
52
52
  border-bottom: 1px solid var(--canvas-50);
53
53
  background-color: white;
54
54
  }
55
55
 
56
56
  .table-row:hover,
57
- :global(.infonomic-table-row:hover) {
57
+ :global(.byline-table-row:hover) {
58
58
  background-color: var(--canvas-50);
59
59
  }
60
60
 
61
61
  /* 'whitespace-nowrap px-2 py-4 text-sm text-gray-700 uppercase bg-canvas-100/50 dark:bg-canvas-800/50 dark:text-gray-200', */
62
62
  .table-heading-cell,
63
- :global(.infonomic-table-heading-cell) {
63
+ :global(.byline-table-heading-cell) {
64
64
  white-space: nowrap;
65
65
  padding: var(--spacing-8) var(--spacing-8);
66
66
  font-size: 0.975rem;
@@ -71,7 +71,7 @@
71
71
 
72
72
  /* not-prose px-2 py-2 text-sm [&_a]:underline */
73
73
  .table-cell,
74
- :global(.infonomic-table-cell) {
74
+ :global(.byline-table-cell) {
75
75
  padding: var(--spacing-8);
76
76
  font-size: var(--font-size-sm);
77
77
 
@@ -82,13 +82,13 @@
82
82
 
83
83
  /* 'text-xs text-gray-700 uppercase bg-canvas-100 dark:bg-canvas-700 dark:text-gray-400', */
84
84
  .table-footer,
85
- :global(.infonomic-table-footer) {
85
+ :global(.byline-table-footer) {
86
86
  font-size: var(--font-size-sm);
87
87
  /* text-transform: uppercase; */
88
88
  background-color: var(--canvas-100);
89
89
  }
90
90
 
91
- /* 🌙 Dark via `.dark` class. We rely on the
91
+ /* 🌙 Dark via `.dark` class. We rely on the
92
92
  * consuming application to detect a user's preferred
93
93
  * color scheme - either by header or cookie, and set
94
94
  * a root html class accordingly
@@ -96,28 +96,28 @@
96
96
  :global(.dark),
97
97
  :global([data-theme="dark"]) {
98
98
  .table-header,
99
- :global(.infonomic-table-header) {
99
+ :global(.byline-table-header) {
100
100
  background-color: var(--canvas-700);
101
101
  }
102
102
 
103
103
  .table-row,
104
- :global(.infonomic-table-row) {
104
+ :global(.byline-table-row) {
105
105
  border-bottom: 1px solid var(--canvas-700);
106
106
  background-color: var(--canvas-800);
107
107
  }
108
108
 
109
109
  .table-row:hover,
110
- :global(.infonomic-table-row:hover) {
110
+ :global(.byline-table-row:hover) {
111
111
  background-color: oklch(from var(--canvas-800) calc(l * 1.1) c h);
112
112
  }
113
113
 
114
114
  .table-heading-cell,
115
- :global(.infonomic-table-heading-cell) {
115
+ :global(.byline-table-heading-cell) {
116
116
  background-color: oklch(from var(--canvas-800) calc(l * 1.1) c h);
117
117
  }
118
118
 
119
119
  .table-footer,
120
- :global(.infonomic-table-footer) {
120
+ :global(.byline-table-footer) {
121
121
  background-color: var(--canvas-800);
122
122
  }
123
123
  }
@@ -14,7 +14,7 @@ function Table({
14
14
  }: TableProps & {
15
15
  ref?: React.RefObject<HTMLTableElement>
16
16
  }): React.JSX.Element {
17
- const classes = cx(styles.table, 'infonomic-table', className)
17
+ const classes = cx(styles.table, 'byline-table', className)
18
18
 
19
19
  return (
20
20
  <table ref={ref} className={classes} {...rest}>
@@ -33,10 +33,10 @@ function Container({
33
33
  }: TableContainerProps & {
34
34
  ref?: React.RefObject<HTMLDivElement>
35
35
  }) {
36
- const classes = cx(styles['table-container'], 'infonomic-table-container', className)
36
+ const classes = cx(styles['table-container'], 'byline-table-container', className)
37
37
  return (
38
38
  <div ref={ref} className={classes} {...rest}>
39
- <div className={cx('infonomic-table-scroller', styles['table-scroller'])}>{children}</div>
39
+ <div className={cx('byline-table-scroller', styles['table-scroller'])}>{children}</div>
40
40
  </div>
41
41
  )
42
42
  }
@@ -52,7 +52,7 @@ function Body({
52
52
  ref?: React.RefObject<HTMLTableSectionElement>
53
53
  }): React.JSX.Element {
54
54
  return (
55
- <tbody ref={ref} className={cx('infonomic-table-body', className)} {...rest}>
55
+ <tbody ref={ref} className={cx('byline-table-body', className)} {...rest}>
56
56
  {children}
57
57
  </tbody>
58
58
  )
@@ -68,7 +68,7 @@ function Header({
68
68
  }: TableHeaderProps & {
69
69
  ref?: React.RefObject<HTMLTableSectionElement>
70
70
  }): React.JSX.Element {
71
- const classes = cx(styles['table-header'], 'infonomic-table-header', className)
71
+ const classes = cx(styles['table-header'], 'byline-table-header', className)
72
72
 
73
73
  return (
74
74
  <thead ref={ref} className={classes} {...rest}>
@@ -87,7 +87,7 @@ function Row({
87
87
  }: TableRowProps & {
88
88
  ref?: React.RefObject<HTMLTableRowElement>
89
89
  }): React.JSX.Element {
90
- const classes = cx(styles['table-row'], 'infonomic-table-row', className)
90
+ const classes = cx(styles['table-row'], 'byline-table-row', className)
91
91
 
92
92
  return (
93
93
  <tr ref={ref} className={classes} {...rest}>
@@ -108,7 +108,7 @@ function HeadingCell({
108
108
  }): React.JSX.Element {
109
109
  const classes = cx(
110
110
  styles['table-heading-cell'],
111
- 'infonomic-table-heading-cell',
111
+ 'byline-table-heading-cell',
112
112
  'not-prose',
113
113
  className
114
114
  )
@@ -129,7 +129,7 @@ function Cell({
129
129
  }: TableCellProps & {
130
130
  ref?: React.RefObject<HTMLTableCellElement>
131
131
  }): React.JSX.Element {
132
- const classes = cx(styles['table-cell'], 'infonomic-table-cell', className)
132
+ const classes = cx(styles['table-cell'], 'byline-table-cell', className)
133
133
 
134
134
  return (
135
135
  <td ref={ref} className={classes} {...rest}>
@@ -11,7 +11,7 @@
11
11
 
12
12
  @layer byline-components {
13
13
  .tabs-root,
14
- :global(.infonomic-tabs-root) {
14
+ :global(.byline-tabs-root) {
15
15
  display: flex;
16
16
  padding: var(--spacing-8);
17
17
  flex-direction: column;
@@ -21,7 +21,7 @@
21
21
  }
22
22
 
23
23
  .tabs-list,
24
- :global(.infonomic-tabs-list) {
24
+ :global(.byline-tabs-list) {
25
25
  display: flex;
26
26
  width: 100%;
27
27
  gap: var(--gap-2);
@@ -36,7 +36,7 @@
36
36
  }
37
37
 
38
38
  .tabs-trigger,
39
- :global(.infonomic-tabs-trigger) {
39
+ :global(.byline-tabs-trigger) {
40
40
  align-items: center;
41
41
  justify-content: center;
42
42
  white-space: nowrap;
@@ -48,7 +48,7 @@
48
48
  }
49
49
 
50
50
  .tabs-content,
51
- :global(.infonomic-tabs-content) {
51
+ :global(.byline-tabs-content) {
52
52
  margin-top: var(--spacing-8);
53
53
  padding: 6px;
54
54
  outline: none;
@@ -16,7 +16,7 @@ const Tabs = ({
16
16
  }) => (
17
17
  <TabsPrimitive.Root
18
18
  ref={ref}
19
- className={cx(styles['tabs-root'], 'infonomic-tabs-root', className)}
19
+ className={cx(styles['tabs-root'], 'byline-tabs-root', className)}
20
20
  {...props}
21
21
  />
22
22
  )
@@ -31,7 +31,7 @@ const TabsList = ({
31
31
  }) => (
32
32
  <TabsPrimitive.List
33
33
  ref={ref}
34
- className={cx(styles['tabs-list'], 'infonomic-tabs-list', className)}
34
+ className={cx(styles['tabs-list'], 'byline-tabs-list', className)}
35
35
  {...props}
36
36
  />
37
37
  )
@@ -46,7 +46,7 @@ const TabsTrigger = ({
46
46
  }) => (
47
47
  <TabsPrimitive.Tab
48
48
  ref={ref}
49
- className={cx(styles['tabs-trigger'], 'infonomic-tabs-trigger', className)}
49
+ className={cx(styles['tabs-trigger'], 'byline-tabs-trigger', className)}
50
50
  {...props}
51
51
  />
52
52
  )
@@ -63,7 +63,7 @@ const TabsContent = ({
63
63
  <TabsPrimitive.Panel
64
64
  ref={ref}
65
65
  keepMounted={keepMounted}
66
- className={cx(styles['tabs-content'], 'infonomic-tabs-content', className)}
66
+ className={cx(styles['tabs-content'], 'byline-tabs-content', className)}
67
67
  {...props}
68
68
  />
69
69
  )
@@ -11,7 +11,7 @@
11
11
 
12
12
  @layer byline-components {
13
13
  .tooltip,
14
- :global(.infonomic-tooltip) {
14
+ :global(.byline-tooltip) {
15
15
  font-size: 0.75rem;
16
16
  line-height: 1;
17
17
  color: var(--surface-item-text);
@@ -46,7 +46,7 @@
46
46
  }
47
47
 
48
48
  .tooltip-arrow,
49
- :global(.infonomic-tooltip-arrow) {
49
+ :global(.byline-tooltip-arrow) {
50
50
  display: flex;
51
51
 
52
52
  &[data-side="top"] {
@@ -67,9 +67,9 @@ export const Tooltip = function Tooltip({
67
67
  <TooltipPrimitive.Trigger render={children} />
68
68
  <TooltipPrimitive.Portal>
69
69
  <TooltipPrimitive.Positioner ref={ref} side={side} sideOffset={sideOffset}>
70
- <TooltipPrimitive.Popup className={cx(styles.tooltip, 'infonomic-tooltip')}>
70
+ <TooltipPrimitive.Popup className={cx(styles.tooltip, 'byline-tooltip')}>
71
71
  <TooltipPrimitive.Arrow
72
- className={cx(styles['tooltip-arrow'], 'infonomic-tooltip-arrow')}
72
+ className={cx(styles['tooltip-arrow'], 'byline-tooltip-arrow')}
73
73
  >
74
74
  <ArrowSvg />
75
75
  </TooltipPrimitive.Arrow>
@@ -0,0 +1,4 @@
1
+ :global(.byline-field-checkbox),
2
+ .field-checkbox {
3
+ margin: 0;
4
+ }
@@ -10,6 +10,7 @@ import type { CheckboxField as FieldType } from '@byline/core'
10
10
 
11
11
  import { useFieldError, useFieldValue } from '../../forms/form-context'
12
12
  import { Checkbox } from '../../uikit.js'
13
+ import styles from './checkbox-field.module.css'
13
14
 
14
15
  export const CheckboxField = ({
15
16
  field,
@@ -32,7 +33,7 @@ export const CheckboxField = ({
32
33
  const checked = value ?? fieldValue ?? defaultValue ?? false
33
34
 
34
35
  return (
35
- <div className={`byline-field-checkbox ${field.name}`}>
36
+ <div className={`byline-field-checkbox ${field.name} ${styles['field-checkbox']}`}>
36
37
  <Checkbox
37
38
  id={id ?? fieldPath}
38
39
  name={field.name}
@@ -52,6 +52,7 @@ interface FormContextType {
52
52
  runFieldHooks: (fields: Field[]) => Promise<FormError[]>
53
53
  validateForm: (fields: Field[]) => FormError[]
54
54
  errors: FormError[]
55
+ getErrors: () => FormError[]
55
56
  clearErrors: () => void
56
57
  setFieldError: (field: string, message: string) => void
57
58
  clearFieldError: (field: string) => void
@@ -520,6 +521,7 @@ export const FormProvider = ({
520
521
  runFieldHooks,
521
522
  validateForm,
522
523
  errors: errorsRef.current,
524
+ getErrors: () => errorsRef.current,
523
525
  clearErrors,
524
526
  setFieldError,
525
527
  clearFieldError,
@@ -562,9 +564,15 @@ export const useFormStore = () => {
562
564
  }
563
565
 
564
566
  export const useFieldError = (name: string) => {
565
- const { errors, subscribeErrors } = useFormContext()
567
+ const { getErrors, subscribeErrors } = useFormContext()
568
+ // Seed from the live errors ref via getErrors() rather than the context's
569
+ // `errors` snapshot — the snapshot is bound at FormProvider's first render
570
+ // and goes stale as soon as validateForm replaces errorsRef.current. Fields
571
+ // mounted after validation has already run (e.g. switching to a tab whose
572
+ // error badge is non-zero) would otherwise initialise to undefined and miss
573
+ // the existing error until something else fires notifyErrorListeners.
566
574
  const [error, setError] = useState<string | undefined>(
567
- errors.find((e) => e.field === name)?.message
575
+ () => getErrors().find((e) => e.field === name)?.message
568
576
  )
569
577
 
570
578
  useEffect(() => {
@@ -1,4 +1,4 @@
1
- <svg data-name="infonomic-icon"
1
+ <svg data-name="byline-icon"
2
2
  xmlns="http://www.w3.org/2000/svg"
3
3
  xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 512 512">
4
4
  <defs>
@@ -40,4 +40,4 @@
40
40
  <path d="M436.21,178.4c.68-1,4.69-7.09,4.85-7.34.46-.71,4.89-8.17,5.18-8.68,38.11-67.56,27.78-139,18.78-147C451.83,3.74,361.31,40.33,370.19,48.31,411.55,28.15,452,24.85,455.1,27.42c4.63,3.85,12.22,91.46-38.4,152.11-29,34.76-86.92,80-106.27,94.77-4.1,3.13-6,7-5.38,10.37,1.93,11.12,4.74,36.2-6.5,48-14.68,15.45-67,33-70.56,27.84s53.54-49.8,16.51-81.23c-4.91-4.16-9.69-5.83-14.54-8.22l.58-.05.08.86c-31.77-7.59-57.56,40.82-62.5,38.58-5.69-2.58,1.9-57.17,14.47-74.38a25.2,25.2,0,0,1,7.11-6.45h0s-17.83,4.52-25.59,34.08c-5.47,20.86-6.35,47.39-6.39,61.21,0,5.77-7.47,6.32-7.29-3,.21-10.48-1.76-23.93-13.51-34.46-20-17.94-44.4-5.17-51.67-.11-1.55,1.08-3.09-1.63-3.5-3.26-6.14-24.67-21.64-34.24-21.64-34.24C59.73,168.36,125.14,97.53,169.25,75.8A218.31,218.31,0,0,0,25,286.64c29.43,6.51,38.81,32.9,41.79,48.63,1.34,7.06,3,4,4.74.48,5.52-11.33,16.24-23.12,34.35-21.5,25.51,2.29,29.92,26.9,30.78,38.8.28,4,3.25,5.2,5.33,4,22.45-13.36,82.2-65.62,82.2-65.62s3.28-3.29,7.25-3.07a8,8,0,0,1,4.28,1.76c5.59,4.66.73,11.51.73,11.51s-40.77,68-49.88,92.51c-.84,2.26.9,4.77,4.86,4.34.36,0,.71-.26,1.1-.3h0a74.82,74.82,0,0,1,9.47-.1c12.43.51,28,5.08,33.2,23.71,4.87,17.5-4.8,30.19-15,37.66-3.17,2.33-5.87,4.55,1.33,4.59,16.07.09,44.17,4.42,55.85,32.33,10.5-1.64,20.94-3.29,31.4-7.33h0s-.22.12-.18.11c.68-.21,15.14-5,24.25-9.37.12-.05,0-.32.17-.33h0a207.63,207.63,0,0,0,55.56-35.75c29.25-24.79,41.58-41,54.6-74.54A218.22,218.22,0,0,0,436.21,178.4ZM313.13,451.63v.05c-15-9.82-32.77-7.85-41-6.17-2.87.59-2.95-1.67-2.27-3.09,9.28-19.34,1.95-38.85-10.07-46.69-15.18-9.89-37.53-4.54-38.94-6.1-2.62-2.9,3.69-11,3.69-11,24.4-4.56,55-18,77.92-30.55s21.36-43.67,18.56-54.36,5.37-13.79,5.37-13.79c35.34-23,76.85-65.66,97.22-87.62l-.12.21S488,363.72,313.13,451.63Z" fill="url(#e82ad6d9-f6de-470e-9cc8-5c1e25860ae0)"/>
41
41
  <path d="M171.89,307.66s16.44-49.68,27.18-55.37,48.65,7.88,46.05,11c-.65.78-2.63,1.43-5.49,2.1-8.55,2-24.91,4.13-36.35,10.09C188,283.41,171.82,315.53,171.89,307.66Z" fill="url(#a031a507-2f2b-46ac-8fd0-d46923b5cede)"/>
42
42
  <path d="M24.87,286.91C28.47,405.21,124.8,500,243.09,500A219.07,219.07,0,0,0,277,497.36c-12-27.17-39.24-31.58-55.11-31.67-7.2,0-4.49-2.26-1.32-4.61,10.18-7.55,19.87-20.33,15-38-6.87-24.9-31.94-24.79-43.83-23.48-4,.44-5.72-2.28-4.88-4.57,9.12-24.71,49.93-93.46,49.93-93.46s4.87-6.92-.73-11.63-11.54,1.32-11.54,1.32-59.83,52.8-82.31,66.29c-2.08,1.25-5,0-5.34-4-.86-12-5.28-36.88-30.82-39.2-18.14-1.65-28.87,10.26-34.4,21.71-1.73,3.57-3.4,6.65-4.74-.48-3-15.89-12.38-42.57-41.85-49.15Z" fill="url(#a9106638-56d4-4f79-8812-bed67cfca285)"/>
43
- </svg>
43
+ </svg>
@@ -11,7 +11,7 @@
11
11
 
12
12
  @layer byline-components {
13
13
  .loader-ellipsis,
14
- :global(.infonomic-loader-ellipsis) {
14
+ :global(.byline-loader-ellipsis) {
15
15
  --_size: var(--loader-ellipsis-size, 80px);
16
16
  --_color: var(--loader-ellipsis-color, var(--loader-color, currentColor));
17
17
  display: inline-block;
@@ -21,7 +21,7 @@
21
21
  }
22
22
 
23
23
  .loader-ellipsis-dot,
24
- :global(.infonomic-loader-ellipsis-dot) {
24
+ :global(.byline-loader-ellipsis-dot) {
25
25
  position: absolute;
26
26
  top: 41.25%;
27
27
  width: 16.25%;
@@ -27,13 +27,13 @@ export function LoaderEllipsis({
27
27
  <div
28
28
  // biome-ignore lint/suspicious/noArrayIndexKey: <explanation>
29
29
  key={index}
30
- className={cx('infonomic-loader-ellipsis-dot', styles['loader-ellipsis-dot'])}
30
+ className={cx('byline-loader-ellipsis-dot', styles['loader-ellipsis-dot'])}
31
31
  />
32
32
  ))
33
33
 
34
34
  return (
35
35
  <div
36
- className={cx('infonomic-loader-ellipsis', styles['loader-ellipsis'], className)}
36
+ className={cx('byline-loader-ellipsis', styles['loader-ellipsis'], className)}
37
37
  style={ellipsisStyle}
38
38
  {...rest}
39
39
  >
@@ -11,7 +11,7 @@
11
11
 
12
12
  @layer byline-components {
13
13
  .loader-ring,
14
- :global(.infonomic-loader-ring) {
14
+ :global(.byline-loader-ring) {
15
15
  --_size: var(--loader-ring-size, 60px);
16
16
  --_color: var(--loader-ring-color, var(--loader-color, currentColor));
17
17
  display: inline-block;
@@ -21,7 +21,7 @@
21
21
  }
22
22
 
23
23
  .loader-ring-arc,
24
- :global(.infonomic-loader-ring-arc) {
24
+ :global(.byline-loader-ring-arc) {
25
25
  box-sizing: border-box;
26
26
  display: block;
27
27
  position: absolute;
@@ -28,14 +28,14 @@ export function LoaderRing({
28
28
  <div
29
29
  // biome-ignore lint/suspicious/noArrayIndexKey: <explanation>
30
30
  key={index}
31
- className={cx('infonomic-loader-ring-arc', styles['loader-ring-arc'])}
31
+ className={cx('byline-loader-ring-arc', styles['loader-ring-arc'])}
32
32
  />
33
33
  )
34
34
  })
35
35
 
36
36
  return (
37
37
  <div
38
- className={cx('infonomic-loader-ring', styles['loader-ring'], className)}
38
+ className={cx('byline-loader-ring', styles['loader-ring'], className)}
39
39
  style={ringStyle}
40
40
  {...rest}
41
41
  >
@@ -11,7 +11,7 @@
11
11
 
12
12
  @layer byline-components {
13
13
  .loader-spinner,
14
- :global(.infonomic-loader-spinner) {
14
+ :global(.byline-loader-spinner) {
15
15
  --_size: var(--loader-spinner-size, 56px);
16
16
  --_color: var(--loader-spinner-color, var(--loader-color, currentColor));
17
17
  display: inline-block;
@@ -21,13 +21,13 @@
21
21
  }
22
22
 
23
23
  .loader-spinner-blade,
24
- :global(.infonomic-loader-spinner-blade) {
24
+ :global(.byline-loader-spinner-blade) {
25
25
  transform-origin: calc(var(--_size) * 0.5) calc(var(--_size) * 0.5714);
26
26
  animation: loader-spinner 1.2s linear infinite;
27
27
  }
28
28
 
29
29
  .loader-spinner-blade-inner,
30
- :global(.infonomic-loader-spinner-blade-inner) {
30
+ :global(.byline-loader-spinner-blade-inner) {
31
31
  display: block;
32
32
  position: absolute;
33
33
  top: 0;
@@ -18,13 +18,10 @@ export function LoaderSpinner({
18
18
  // biome-ignore lint/suspicious/noArrayIndexKey: <explanation>
19
19
  <div
20
20
  key={index}
21
- className={cx('infonomic-loader-spinner-blade', styles['loader-spinner-blade'])}
21
+ className={cx('byline-loader-spinner-blade', styles['loader-spinner-blade'])}
22
22
  >
23
23
  <div
24
- className={cx(
25
- 'infonomic-loader-spinner-blade-inner',
26
- styles['loader-spinner-blade-inner']
27
- )}
24
+ className={cx('byline-loader-spinner-blade-inner', styles['loader-spinner-blade-inner'])}
28
25
  />
29
26
  </div>
30
27
  )
@@ -42,7 +39,7 @@ export function LoaderSpinner({
42
39
 
43
40
  return (
44
41
  <div
45
- className={cx('infonomic-loader-spinner', styles['loader-spinner'], className)}
42
+ className={cx('byline-loader-spinner', styles['loader-spinner'], className)}
46
43
  style={spinnerStyle}
47
44
  {...rest}
48
45
  >
@@ -17,3 +17,15 @@
17
17
  .byline-ui {
18
18
  isolation: isolate;
19
19
  }
20
+
21
+ .sr-only {
22
+ position: absolute;
23
+ width: 1px;
24
+ height: 1px;
25
+ padding: 0;
26
+ margin: -1px;
27
+ overflow: hidden;
28
+ clip: rect(0, 0, 0, 0);
29
+ white-space: nowrap;
30
+ border-width: 0;
31
+ }
@@ -10,19 +10,19 @@
10
10
  byline-utilities;
11
11
  @layer byline-components {
12
12
  .container,
13
- :global(.infonomic-datepicker-container) {
13
+ :global(.byline-datepicker-container) {
14
14
  position: relative;
15
15
  }
16
16
 
17
17
  .input,
18
18
  .input-wrapper,
19
- :global(.infonomic-datepicker-input),
20
- :global(.infonomic-datepicker-input-wrapper) {
19
+ :global(.byline-datepicker-input),
20
+ :global(.byline-datepicker-input-wrapper) {
21
21
  width: 100%;
22
22
  }
23
23
 
24
24
  .content,
25
- :global(.infonomic-datepicker-content) {
25
+ :global(.byline-datepicker-content) {
26
26
  width: 100%;
27
27
  z-index: 50;
28
28
  border-radius: 4px;
@@ -66,14 +66,14 @@
66
66
  }
67
67
 
68
68
  .content-components,
69
- :global(.infonomic-datepicker-content-components) {
69
+ :global(.byline-datepicker-content-components) {
70
70
  display: flex;
71
71
  width: 100%;
72
72
  gap: var(--spacing-8);
73
73
  }
74
74
 
75
75
  .status-and-actions,
76
- :global(.infonomic-datepicker-status-and-actions) {
76
+ :global(.byline-datepicker-status-and-actions) {
77
77
  display: flex;
78
78
  flex-direction: column;
79
79
  justify-content: space-between;
@@ -82,7 +82,7 @@
82
82
  }
83
83
 
84
84
  .content-status,
85
- :global(.infonomic-datepicker-content-status) {
85
+ :global(.byline-datepicker-content-status) {
86
86
  display: flex;
87
87
  align-items: center;
88
88
  padding-left: var(--spacing-16);
@@ -93,7 +93,7 @@
93
93
  }
94
94
 
95
95
  .content-actions,
96
- :global(.infonomic-datepicker-content-actions) {
96
+ :global(.byline-datepicker-content-actions) {
97
97
  display: flex;
98
98
  flex-direction: row;
99
99
  justify-content: space-between;
@@ -105,18 +105,18 @@
105
105
  }
106
106
 
107
107
  .content-actions-button,
108
- :global(.infonomic-datepicker-content-actions-button) {
108
+ :global(.byline-datepicker-content-actions-button) {
109
109
  /* min-width: 100px; */
110
110
  --ring-color: var(--violet-7);
111
111
  }
112
112
 
113
113
  .arrow,
114
- :global(.infonomic-datepicker-arrow) {
114
+ :global(.byline-datepicker-arrow) {
115
115
  fill: var(--gray-50);
116
116
  }
117
117
 
118
118
  .close,
119
- :global(.infonomic-datepicker-close) {
119
+ :global(.byline-datepicker-close) {
120
120
  all: unset;
121
121
  font-family: inherit;
122
122
  border-radius: 100%;
@@ -140,19 +140,19 @@
140
140
  }
141
141
 
142
142
  .time-picker-container,
143
- :global(.infonomic-datepicker-time-picker-container) {
143
+ :global(.byline-datepicker-time-picker-container) {
144
144
  width: 80px;
145
145
  margin: 0.6rem 0.5rem 1rem 0;
146
146
  }
147
147
 
148
148
  .time-picker-scroll-area,
149
- :global(.infonomic-datepicker-time-picker-scroll-area) {
149
+ :global(.byline-datepicker-time-picker-scroll-area) {
150
150
  height: 280px;
151
151
  padding-right: var(--spacing-16);
152
152
  }
153
153
 
154
154
  .time-picker,
155
- :global(.infonomic-datepicker-time-picker) {
155
+ :global(.byline-datepicker-time-picker) {
156
156
  display: flex;
157
157
  padding-left: var(--spacing-4);
158
158
  padding-right: var(--spacing-4);
@@ -161,7 +161,7 @@
161
161
  }
162
162
 
163
163
  .time-picker-button,
164
- :global(.infonomic-datepicker-time-picker-button) {
164
+ :global(.byline-datepicker-time-picker-button) {
165
165
  width: 100%;
166
166
  }
167
167