@techsio/ui-kit 0.0.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 (183) hide show
  1. package/README.md +165 -0
  2. package/dist/atoms/badge.js +66 -0
  3. package/dist/atoms/button.js +275 -0
  4. package/dist/atoms/error-text.js +38 -0
  5. package/dist/atoms/extra-text.js +27 -0
  6. package/dist/atoms/icon.js +42 -0
  7. package/dist/atoms/image.js +11 -0
  8. package/dist/atoms/input.js +83 -0
  9. package/dist/atoms/label.js +43 -0
  10. package/dist/atoms/link-button.js +51 -0
  11. package/dist/atoms/link.js +23 -0
  12. package/dist/atoms/numeric-input.js +221 -0
  13. package/dist/atoms/rating.js +117 -0
  14. package/dist/atoms/textarea.js +81 -0
  15. package/dist/atoms/tooltip.js +119 -0
  16. package/dist/molecules/accordion.js +245 -0
  17. package/dist/molecules/breadcrumb.js +168 -0
  18. package/dist/molecules/carousel.js +333 -0
  19. package/dist/molecules/checkbox.js +92 -0
  20. package/dist/molecules/color-select.js +159 -0
  21. package/dist/molecules/combobox.js +253 -0
  22. package/dist/molecules/dialog.js +313 -0
  23. package/dist/molecules/form-checkbox.js +59 -0
  24. package/dist/molecules/form-input.js +55 -0
  25. package/dist/molecules/form-numeric-input.js +47 -0
  26. package/dist/molecules/form-textarea.js +54 -0
  27. package/dist/molecules/menu.js +302 -0
  28. package/dist/molecules/pagination.js +184 -0
  29. package/dist/molecules/popover.js +152 -0
  30. package/dist/molecules/product-card.js +194 -0
  31. package/dist/molecules/search-form.js +106 -0
  32. package/dist/molecules/select.js +217 -0
  33. package/dist/molecules/slider.js +249 -0
  34. package/dist/molecules/steps.js +178 -0
  35. package/dist/molecules/switch.js +109 -0
  36. package/dist/molecules/tabs.js +211 -0
  37. package/dist/molecules/toast.js +126 -0
  38. package/dist/molecules/tree-view.js +451 -0
  39. package/dist/organisms/footer.js +209 -0
  40. package/dist/organisms/header.js +245 -0
  41. package/dist/organisms/table.js +233 -0
  42. package/dist/src/atoms/badge.d.ts +59 -0
  43. package/dist/src/atoms/badge.d.ts.map +1 -0
  44. package/dist/src/atoms/button.d.ts +97 -0
  45. package/dist/src/atoms/button.d.ts.map +1 -0
  46. package/dist/src/atoms/error-text.d.ts +29 -0
  47. package/dist/src/atoms/error-text.d.ts.map +1 -0
  48. package/dist/src/atoms/extra-text.d.ts +27 -0
  49. package/dist/src/atoms/extra-text.d.ts.map +1 -0
  50. package/dist/src/atoms/icon.d.ts +65 -0
  51. package/dist/src/atoms/icon.d.ts.map +1 -0
  52. package/dist/src/atoms/image.d.ts +17 -0
  53. package/dist/src/atoms/image.d.ts.map +1 -0
  54. package/dist/src/atoms/input.d.ts +78 -0
  55. package/dist/src/atoms/input.d.ts.map +1 -0
  56. package/dist/src/atoms/label.d.ts +41 -0
  57. package/dist/src/atoms/label.d.ts.map +1 -0
  58. package/dist/src/atoms/link-button.d.ts +129 -0
  59. package/dist/src/atoms/link-button.d.ts.map +1 -0
  60. package/dist/src/atoms/link.d.ts +17 -0
  61. package/dist/src/atoms/link.d.ts.map +1 -0
  62. package/dist/src/atoms/numeric-input.d.ts +64 -0
  63. package/dist/src/atoms/numeric-input.d.ts.map +1 -0
  64. package/dist/src/atoms/rating.d.ts +108 -0
  65. package/dist/src/atoms/rating.d.ts.map +1 -0
  66. package/dist/src/atoms/textarea.d.ts +81 -0
  67. package/dist/src/atoms/textarea.d.ts.map +1 -0
  68. package/dist/src/atoms/tooltip.d.ts +88 -0
  69. package/dist/src/atoms/tooltip.d.ts.map +1 -0
  70. package/dist/src/molecules/accordion.d.ts +182 -0
  71. package/dist/src/molecules/accordion.d.ts.map +1 -0
  72. package/dist/src/molecules/breadcrumb.d.ts +117 -0
  73. package/dist/src/molecules/breadcrumb.d.ts.map +1 -0
  74. package/dist/src/molecules/carousel.d.ts +261 -0
  75. package/dist/src/molecules/carousel.d.ts.map +1 -0
  76. package/dist/src/molecules/checkbox.d.ts +19 -0
  77. package/dist/src/molecules/checkbox.d.ts.map +1 -0
  78. package/dist/src/molecules/color-select.d.ts +20 -0
  79. package/dist/src/molecules/color-select.d.ts.map +1 -0
  80. package/dist/src/molecules/combobox.d.ts +141 -0
  81. package/dist/src/molecules/combobox.d.ts.map +1 -0
  82. package/dist/src/molecules/dialog.d.ts +234 -0
  83. package/dist/src/molecules/dialog.d.ts.map +1 -0
  84. package/dist/src/molecules/form-checkbox.d.ts +15 -0
  85. package/dist/src/molecules/form-checkbox.d.ts.map +1 -0
  86. package/dist/src/molecules/form-input.d.ts +14 -0
  87. package/dist/src/molecules/form-input.d.ts.map +1 -0
  88. package/dist/src/molecules/form-numeric-input.d.ts +14 -0
  89. package/dist/src/molecules/form-numeric-input.d.ts.map +1 -0
  90. package/dist/src/molecules/form-textarea.d.ts +14 -0
  91. package/dist/src/molecules/form-textarea.d.ts.map +1 -0
  92. package/dist/src/molecules/menu.d.ts +153 -0
  93. package/dist/src/molecules/menu.d.ts.map +1 -0
  94. package/dist/src/molecules/pagination.d.ts +123 -0
  95. package/dist/src/molecules/pagination.d.ts.map +1 -0
  96. package/dist/src/molecules/popover.d.ts +124 -0
  97. package/dist/src/molecules/popover.d.ts.map +1 -0
  98. package/dist/src/molecules/product-card.d.ts +160 -0
  99. package/dist/src/molecules/product-card.d.ts.map +1 -0
  100. package/dist/src/molecules/search-form.d.ts +39 -0
  101. package/dist/src/molecules/search-form.d.ts.map +1 -0
  102. package/dist/src/molecules/select.d.ts +126 -0
  103. package/dist/src/molecules/select.d.ts.map +1 -0
  104. package/dist/src/molecules/slider.d.ts +120 -0
  105. package/dist/src/molecules/slider.d.ts.map +1 -0
  106. package/dist/src/molecules/steps.d.ts +96 -0
  107. package/dist/src/molecules/steps.d.ts.map +1 -0
  108. package/dist/src/molecules/switch.d.ts +71 -0
  109. package/dist/src/molecules/switch.d.ts.map +1 -0
  110. package/dist/src/molecules/tabs.d.ts +207 -0
  111. package/dist/src/molecules/tabs.d.ts.map +1 -0
  112. package/dist/src/molecules/toast.d.ts +83 -0
  113. package/dist/src/molecules/toast.d.ts.map +1 -0
  114. package/dist/src/molecules/tree-view.d.ts +202 -0
  115. package/dist/src/molecules/tree-view.d.ts.map +1 -0
  116. package/dist/src/organisms/footer.d.ts +254 -0
  117. package/dist/src/organisms/footer.d.ts.map +1 -0
  118. package/dist/src/organisms/header.d.ts +186 -0
  119. package/dist/src/organisms/header.d.ts.map +1 -0
  120. package/dist/src/organisms/table.d.ts +250 -0
  121. package/dist/src/organisms/table.d.ts.map +1 -0
  122. package/dist/src/templates/accordion.d.ts +15 -0
  123. package/dist/src/templates/accordion.d.ts.map +1 -0
  124. package/dist/src/templates/carousel.d.ts +13 -0
  125. package/dist/src/templates/carousel.d.ts.map +1 -0
  126. package/dist/src/templates/numeric-input.d.ts +14 -0
  127. package/dist/src/templates/numeric-input.d.ts.map +1 -0
  128. package/dist/src/templates/product-card.d.ts +33 -0
  129. package/dist/src/templates/product-card.d.ts.map +1 -0
  130. package/dist/src/templates/tabs.d.ts +16 -0
  131. package/dist/src/templates/tabs.d.ts.map +1 -0
  132. package/dist/src/types/zag.d.ts +19 -0
  133. package/dist/src/types/zag.d.ts.map +1 -0
  134. package/dist/src/utils.d.ts +4 -0
  135. package/dist/src/utils.d.ts.map +1 -0
  136. package/dist/templates/accordion.js +37 -0
  137. package/dist/templates/carousel.js +55 -0
  138. package/dist/templates/numeric-input.js +49 -0
  139. package/dist/templates/product-card.js +92 -0
  140. package/dist/templates/tabs.js +34 -0
  141. package/dist/types/zag.js +0 -0
  142. package/dist/utils.js +20 -0
  143. package/package.json +126 -0
  144. package/src/tokens/_base.css +25 -0
  145. package/src/tokens/_colors.css +5 -0
  146. package/src/tokens/_layout.css +34 -0
  147. package/src/tokens/_semantic.css +360 -0
  148. package/src/tokens/_spacing.css +22 -0
  149. package/src/tokens/_typography.css +17 -0
  150. package/src/tokens/components/atoms/_badge.css +61 -0
  151. package/src/tokens/components/atoms/_button.css +215 -0
  152. package/src/tokens/components/atoms/_icon.css +122 -0
  153. package/src/tokens/components/atoms/_input.css +125 -0
  154. package/src/tokens/components/atoms/_numeric-input.css +57 -0
  155. package/src/tokens/components/atoms/_rating.css +33 -0
  156. package/src/tokens/components/atoms/_textarea.css +93 -0
  157. package/src/tokens/components/atoms/_tooltip.css +21 -0
  158. package/src/tokens/components/components.css +32 -0
  159. package/src/tokens/components/molecules/_accordion.css +85 -0
  160. package/src/tokens/components/molecules/_breadcrumb.css +44 -0
  161. package/src/tokens/components/molecules/_carousel.css +72 -0
  162. package/src/tokens/components/molecules/_checkbox.css +29 -0
  163. package/src/tokens/components/molecules/_color-select.css +61 -0
  164. package/src/tokens/components/molecules/_combobox.css +116 -0
  165. package/src/tokens/components/molecules/_dialog.css +75 -0
  166. package/src/tokens/components/molecules/_menu.css +48 -0
  167. package/src/tokens/components/molecules/_pagination.css +75 -0
  168. package/src/tokens/components/molecules/_popover.css +39 -0
  169. package/src/tokens/components/molecules/_product-card.css +85 -0
  170. package/src/tokens/components/molecules/_search-form.css +10 -0
  171. package/src/tokens/components/molecules/_select.css +88 -0
  172. package/src/tokens/components/molecules/_slider.css +75 -0
  173. package/src/tokens/components/molecules/_steps.css +54 -0
  174. package/src/tokens/components/molecules/_switch.css +62 -0
  175. package/src/tokens/components/molecules/_tabs.css +69 -0
  176. package/src/tokens/components/molecules/_toast.css +77 -0
  177. package/src/tokens/components/molecules/_tree-view.css +80 -0
  178. package/src/tokens/components/molecules/index.css +2 -0
  179. package/src/tokens/components/organisms/_footer.css +90 -0
  180. package/src/tokens/components/organisms/_header.css +86 -0
  181. package/src/tokens/components/organisms/_table.css +63 -0
  182. package/src/tokens/index.css +67 -0
  183. package/src/tokens/tokens-only.css +66 -0
@@ -0,0 +1,245 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { createContext, useContext, useState } from "react";
3
+ import { Button } from "../atoms/button.js";
4
+ import { tv } from "../utils.js";
5
+ const headerVariants = tv({
6
+ slots: {
7
+ root: [
8
+ 'w-full @container bg-header-bg',
9
+ 'flex justify-between',
10
+ 'max-w-header-max',
11
+ 'relative'
12
+ ],
13
+ desktop: 'flex @max-header-desktop:hidden w-full',
14
+ mobile: [
15
+ 'data-[open=false]:hidden @header-desktop:hidden *:flex *:flex-col absolute top-full data-[position=left]:left-0 data-[position=right]:right-0'
16
+ ],
17
+ container: [
18
+ 'grid gap-header-container w-full',
19
+ 'data-[position=start]:justify-items-start-safe',
20
+ 'data-[position=center]:justify-items-center-safe',
21
+ 'data-[position=end]:justify-items-end-safe'
22
+ ],
23
+ nav: [
24
+ 'flex items-center flex-1',
25
+ '@max-header-desktop:bg-header-bg'
26
+ ],
27
+ navItem: [
28
+ 'bg-header-nav-item-bg hover:bg-header-nav-item-bg-hover',
29
+ 'data-[active=true]:text-header-nav-fg-active',
30
+ 'data-[active=true]:font-header-nav-active',
31
+ 'min-w-max'
32
+ ],
33
+ actions: [
34
+ 'flex items-center',
35
+ 'shrink-0'
36
+ ],
37
+ actionItem: [
38
+ 'text-header-actions-fg',
39
+ 'hover:text-header-actions-fg-hover'
40
+ ],
41
+ hamburger: [
42
+ '@header-desktop:hidden',
43
+ 'items-center',
44
+ 'text-header-hamburger-fg hover:text-header-hamburger-fg-hover',
45
+ 'transition-colors duration-header',
46
+ 'cursor-pointer'
47
+ ]
48
+ },
49
+ compoundSlots: [
50
+ {
51
+ slots: [
52
+ 'navItem'
53
+ ],
54
+ class: [
55
+ 'justify-start font-header-nav text-header-nav-fg hover:text-header-nav-fg-hover',
56
+ 'cursor-pointer'
57
+ ]
58
+ }
59
+ ],
60
+ variants: {
61
+ direction: {
62
+ vertical: {
63
+ root: [
64
+ 'flex-col'
65
+ ]
66
+ },
67
+ horizontal: {
68
+ root: [
69
+ 'flex-row'
70
+ ]
71
+ }
72
+ },
73
+ size: {
74
+ sm: {
75
+ nav: 'gap-header-nav-sm',
76
+ navItem: 'p-header-item-sm text-header-item-sm',
77
+ actions: 'gap-header-actions-sm',
78
+ actionItem: 'text-header-item-sm p-header-item-sm',
79
+ hamburger: 'text-header-hamburger-sm p-header-hamburger-sm'
80
+ },
81
+ md: {
82
+ nav: 'gap-header-nav-md',
83
+ navItem: 'p-header-item-md text-header-item-md',
84
+ actions: 'gap-header-actions-md',
85
+ actionItem: 'text-header-item-md p-header-item-md',
86
+ hamburger: 'text-header-hamburger-md p-header-hamburger-md'
87
+ },
88
+ lg: {
89
+ nav: 'gap-header-nav-lg',
90
+ navItem: 'p-header-item-lg text-header-item-lg',
91
+ actions: 'gap-header-actions-lg',
92
+ actionItem: 'text-header-item-lg p-header-item-lg',
93
+ hamburger: 'text-header-hamburger-lg p-header-hamburger-lg'
94
+ }
95
+ }
96
+ },
97
+ defaultVariants: {
98
+ size: 'md',
99
+ direction: 'horizontal'
100
+ }
101
+ });
102
+ const HeaderContext = /*#__PURE__*/ createContext({
103
+ isMobileMenuOpen: false,
104
+ setIsMobileMenuOpen: ()=>{},
105
+ toggleMobileMenu: ()=>{}
106
+ });
107
+ function Header({ size = 'md', direction = 'horizontal', className, children, ref, ...props }) {
108
+ const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false);
109
+ const toggleMobileMenu = ()=>setIsMobileMenuOpen((prev)=>!prev);
110
+ const { root } = headerVariants({
111
+ size,
112
+ direction
113
+ });
114
+ return /*#__PURE__*/ jsx(HeaderContext.Provider, {
115
+ value: {
116
+ size,
117
+ isMobileMenuOpen,
118
+ setIsMobileMenuOpen,
119
+ toggleMobileMenu
120
+ },
121
+ children: /*#__PURE__*/ jsx("header", {
122
+ ref: ref,
123
+ className: root({
124
+ className
125
+ }),
126
+ ...props,
127
+ children: children
128
+ })
129
+ });
130
+ }
131
+ Header.Desktop = function({ className, children, ref, ...props }) {
132
+ const { desktop } = headerVariants();
133
+ return /*#__PURE__*/ jsx("section", {
134
+ ref: ref,
135
+ className: desktop({
136
+ className
137
+ }),
138
+ ...props,
139
+ children: children
140
+ });
141
+ };
142
+ Header.Mobile = function({ className, children, ref, position = 'right', ...props }) {
143
+ const { isMobileMenuOpen } = useContext(HeaderContext);
144
+ const { mobile } = headerVariants();
145
+ return /*#__PURE__*/ jsx("section", {
146
+ ref: ref,
147
+ className: mobile({
148
+ className
149
+ }),
150
+ "data-open": isMobileMenuOpen,
151
+ "data-position": position,
152
+ ...props,
153
+ children: children
154
+ });
155
+ };
156
+ Header.Container = function({ className, children, ref, position, ...props }) {
157
+ const { container } = headerVariants();
158
+ return /*#__PURE__*/ jsx("section", {
159
+ ref: ref,
160
+ className: container({
161
+ className
162
+ }),
163
+ "data-position": position,
164
+ ...props,
165
+ children: children
166
+ });
167
+ };
168
+ Header.Nav = function({ className, children, ref, size: overrideSize, ...props }) {
169
+ const { size: contextSize } = useContext(HeaderContext);
170
+ const size = overrideSize ?? contextSize ?? 'md';
171
+ const { nav } = headerVariants({
172
+ size
173
+ });
174
+ return /*#__PURE__*/ jsx("nav", {
175
+ ref: ref,
176
+ className: nav({
177
+ className
178
+ }),
179
+ ...props,
180
+ children: children
181
+ });
182
+ };
183
+ Header.NavItem = function({ active = false, className, children, ref, size: overrideSize, ...props }) {
184
+ const context = useContext(HeaderContext);
185
+ const size = overrideSize ?? context.size ?? 'md';
186
+ const { navItem } = headerVariants({
187
+ size
188
+ });
189
+ return /*#__PURE__*/ jsx("div", {
190
+ ref: ref,
191
+ className: navItem({
192
+ className
193
+ }),
194
+ "data-active": active || void 0,
195
+ ...props,
196
+ children: children
197
+ });
198
+ };
199
+ Header.Actions = function({ className, children, ref, size: overrideSize, ...props }) {
200
+ const context = useContext(HeaderContext);
201
+ const size = overrideSize ?? context.size ?? 'md';
202
+ const { actions } = headerVariants({
203
+ size
204
+ });
205
+ return /*#__PURE__*/ jsx("div", {
206
+ ref: ref,
207
+ className: actions({
208
+ className
209
+ }),
210
+ ...props,
211
+ children: children
212
+ });
213
+ };
214
+ Header.ActionItem = function({ className, children, ref, size: overrideSize, ...props }) {
215
+ const context = useContext(HeaderContext);
216
+ const size = overrideSize ?? context.size ?? 'md';
217
+ const { actionItem } = headerVariants({
218
+ size
219
+ });
220
+ return /*#__PURE__*/ jsx("div", {
221
+ ref: ref,
222
+ className: actionItem({
223
+ className
224
+ }),
225
+ ...props,
226
+ children: children
227
+ });
228
+ };
229
+ Header.Hamburger = function({ className }) {
230
+ const { toggleMobileMenu, isMobileMenuOpen } = useContext(HeaderContext);
231
+ const { hamburger } = headerVariants();
232
+ return /*#__PURE__*/ jsx(Button, {
233
+ theme: "unstyled",
234
+ type: "button",
235
+ "aria-expanded": isMobileMenuOpen,
236
+ "aria-label": "Toggle mobile menu",
237
+ onClick: toggleMobileMenu,
238
+ size: "current",
239
+ className: hamburger({
240
+ className
241
+ }),
242
+ icon: isMobileMenuOpen ? 'icon-[mdi--close]' : 'icon-[mdi--menu]'
243
+ });
244
+ };
245
+ export { Header, HeaderContext };
@@ -0,0 +1,233 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { createContext, useContext } from "react";
3
+ import { tv } from "../utils.js";
4
+ const tableVariants = tv({
5
+ slots: {
6
+ root: [
7
+ 'w-full border-collapse',
8
+ 'bg-table-bg text-table-fg'
9
+ ],
10
+ caption: [
11
+ 'text-table-caption-fg',
12
+ 'text-start font-table-caption'
13
+ ],
14
+ header: [
15
+ 'bg-table-header-bg',
16
+ 'text-table-header-fg font-table-header'
17
+ ],
18
+ body: '',
19
+ footer: [
20
+ 'bg-table-footer-bg',
21
+ 'text-table-footer-fg font-table-footer'
22
+ ],
23
+ row: [
24
+ 'border-b-(length:--border-width-table) border-table-border',
25
+ 'data-[selected=true]:bg-table-row-bg-selected',
26
+ 'transition-colors duration-200'
27
+ ],
28
+ columnHeader: [
29
+ 'text-start data-[numeric=true]:text-end',
30
+ 'font-table-header'
31
+ ],
32
+ cell: [
33
+ 'text-start data-[numeric=true]:text-end'
34
+ ]
35
+ },
36
+ variants: {
37
+ variant: {
38
+ line: {
39
+ root: '',
40
+ row: 'border-b-(length:--border-width-table) border-table-border'
41
+ },
42
+ outline: {
43
+ root: 'border-(length:--border-width-table) border-table-border rounded-table shadow-table-outline'
44
+ },
45
+ striped: {
46
+ row: 'odd:bg-table-row-striped-bg-primary even:bg-table-row-striped-bg-secondary'
47
+ }
48
+ },
49
+ interactive: {
50
+ true: {
51
+ row: 'hover:bg-table-row-bg-hover cursor-pointer'
52
+ }
53
+ },
54
+ size: {
55
+ sm: {
56
+ cell: 'text-table-sm p-table-cell-sm',
57
+ columnHeader: 'text-table-sm p-table-cell-sm',
58
+ caption: 'text-table-caption-sm p-table-caption-sm'
59
+ },
60
+ md: {
61
+ cell: 'text-table-md p-table-cell-md',
62
+ columnHeader: 'text-table-md p-table-cell-md',
63
+ caption: 'text-table-caption-md p-table-caption-md'
64
+ },
65
+ lg: {
66
+ cell: 'text-table-lg p-table-cell-lg',
67
+ columnHeader: 'text-table-lg p-table-cell-lg',
68
+ caption: 'text-table-caption-lg p-table-caption-lg'
69
+ }
70
+ },
71
+ stickyHeader: {
72
+ true: {
73
+ columnHeader: 'sticky top-0 z-10 bg-table-header-bg'
74
+ }
75
+ },
76
+ stickyFirstColumn: {
77
+ true: {
78
+ columnHeader: [
79
+ 'first:sticky first:start-0 first:z-20',
80
+ 'bg-table-header-bg'
81
+ ],
82
+ cell: [
83
+ 'first:sticky first:start-0 first:z-10',
84
+ 'bg-table-bg'
85
+ ]
86
+ }
87
+ },
88
+ showColumnBorder: {
89
+ true: {
90
+ columnHeader: 'border-r-(length:--border-width-table) border-table-border',
91
+ cell: 'border-r-(length:--border-width-table) border-table-border'
92
+ }
93
+ },
94
+ captionPlacement: {
95
+ top: {
96
+ caption: 'caption-top'
97
+ },
98
+ bottom: {
99
+ caption: 'caption-bottom'
100
+ }
101
+ }
102
+ },
103
+ defaultVariants: {
104
+ variant: 'line',
105
+ size: 'md',
106
+ interactive: false,
107
+ stickyHeader: false,
108
+ stickyFirstColumn: false,
109
+ showColumnBorder: false,
110
+ captionPlacement: 'top'
111
+ }
112
+ });
113
+ const TableContext = /*#__PURE__*/ createContext(null);
114
+ function useTableContext() {
115
+ const context = useContext(TableContext);
116
+ if (!context) throw new Error('Table components must be used within Table');
117
+ return context;
118
+ }
119
+ function Table({ variant, size, interactive, stickyHeader, stickyFirstColumn, showColumnBorder, captionPlacement, children, ref, className, ...props }) {
120
+ const styles = tableVariants({
121
+ variant,
122
+ size,
123
+ interactive,
124
+ stickyHeader,
125
+ stickyFirstColumn,
126
+ showColumnBorder,
127
+ captionPlacement
128
+ });
129
+ return /*#__PURE__*/ jsx(TableContext.Provider, {
130
+ value: {
131
+ variant,
132
+ size,
133
+ interactive,
134
+ stickyHeader,
135
+ stickyFirstColumn,
136
+ showColumnBorder,
137
+ captionPlacement,
138
+ styles
139
+ },
140
+ children: /*#__PURE__*/ jsx("table", {
141
+ ref: ref,
142
+ className: styles.root({
143
+ className
144
+ }),
145
+ ...props,
146
+ children: children
147
+ })
148
+ });
149
+ }
150
+ Table.Caption = function({ children, ref, className, ...props }) {
151
+ const { styles } = useTableContext();
152
+ return /*#__PURE__*/ jsx("caption", {
153
+ ref: ref,
154
+ className: styles.caption({
155
+ className
156
+ }),
157
+ ...props,
158
+ children: children
159
+ });
160
+ };
161
+ Table.Header = function({ children, ref, className, ...props }) {
162
+ const { styles } = useTableContext();
163
+ return /*#__PURE__*/ jsx("thead", {
164
+ ref: ref,
165
+ className: styles.header({
166
+ className
167
+ }),
168
+ ...props,
169
+ children: children
170
+ });
171
+ };
172
+ Table.Body = function({ children, ref, className, ...props }) {
173
+ const { styles } = useTableContext();
174
+ return /*#__PURE__*/ jsx("tbody", {
175
+ ref: ref,
176
+ className: styles.body({
177
+ className
178
+ }),
179
+ ...props,
180
+ children: children
181
+ });
182
+ };
183
+ Table.Footer = function({ children, ref, className, ...props }) {
184
+ const { styles } = useTableContext();
185
+ return /*#__PURE__*/ jsx("tfoot", {
186
+ ref: ref,
187
+ className: styles.footer({
188
+ className
189
+ }),
190
+ ...props,
191
+ children: children
192
+ });
193
+ };
194
+ Table.Row = function({ children, ref, className, selected, ...props }) {
195
+ const { styles } = useTableContext();
196
+ return /*#__PURE__*/ jsx("tr", {
197
+ ref: ref,
198
+ className: styles.row({
199
+ className
200
+ }),
201
+ "data-selected": selected,
202
+ ...props,
203
+ children: children
204
+ });
205
+ };
206
+ Table.ColumnHeader = function({ children, ref, className, numeric, ...props }) {
207
+ const { styles } = useTableContext();
208
+ return /*#__PURE__*/ jsx("th", {
209
+ ref: ref,
210
+ scope: "col",
211
+ className: styles.columnHeader({
212
+ className
213
+ }),
214
+ "data-numeric": numeric,
215
+ ...props,
216
+ children: children
217
+ });
218
+ };
219
+ Table.Cell = function({ children, ref, className, numeric, ...props }) {
220
+ const { styles, stickyFirstColumn } = useTableContext();
221
+ return /*#__PURE__*/ jsx("td", {
222
+ ref: ref,
223
+ className: styles.cell({
224
+ className,
225
+ stickyFirstColumn
226
+ }),
227
+ "data-numeric": numeric,
228
+ ...props,
229
+ children: children
230
+ });
231
+ };
232
+ Table.displayName = 'Table';
233
+ export { Table };
@@ -0,0 +1,59 @@
1
+ import type { HTMLAttributes } from 'react';
2
+ import type { VariantProps } from 'tailwind-variants';
3
+ declare const badgeVariants: import("tailwind-variants").TVReturnType<{
4
+ variant: {
5
+ primary: string[];
6
+ secondary: string[];
7
+ tertiary: string[];
8
+ discount: string[];
9
+ info: string[];
10
+ success: string[];
11
+ warning: string[];
12
+ danger: string[];
13
+ outline: string[];
14
+ dynamic: never[];
15
+ };
16
+ }, undefined, string[], {
17
+ variant: {
18
+ primary: string[];
19
+ secondary: string[];
20
+ tertiary: string[];
21
+ discount: string[];
22
+ info: string[];
23
+ success: string[];
24
+ warning: string[];
25
+ danger: string[];
26
+ outline: string[];
27
+ dynamic: never[];
28
+ };
29
+ }, undefined, import("tailwind-variants").TVReturnType<{
30
+ variant: {
31
+ primary: string[];
32
+ secondary: string[];
33
+ tertiary: string[];
34
+ discount: string[];
35
+ info: string[];
36
+ success: string[];
37
+ warning: string[];
38
+ danger: string[];
39
+ outline: string[];
40
+ dynamic: never[];
41
+ };
42
+ }, undefined, string[], unknown, unknown, undefined>>;
43
+ type BadgeVariant = NonNullable<VariantProps<typeof badgeVariants>['variant']>;
44
+ type BaseBadgeProps = Omit<HTMLAttributes<HTMLSpanElement>, 'color' | 'children'> & {
45
+ children: string;
46
+ };
47
+ type DefaultBadgeProps = BaseBadgeProps & {
48
+ variant?: Exclude<BadgeVariant, 'dynamic'>;
49
+ };
50
+ type DynamicBadgeProps = BaseBadgeProps & {
51
+ variant: 'dynamic';
52
+ bgColor: string;
53
+ fgColor: string;
54
+ borderColor: string;
55
+ };
56
+ export type BadgeProps = DefaultBadgeProps | DynamicBadgeProps;
57
+ export declare function Badge({ variant, className, children, style, ...props }: BadgeProps): import("react/jsx-runtime").JSX.Element;
58
+ export {};
59
+ //# sourceMappingURL=badge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badge.d.ts","sourceRoot":"","sources":["../../../src/atoms/badge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGrD,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qDAyCjB,CAAA;AAEF,KAAK,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC,OAAO,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;AAE9E,KAAK,cAAc,GAAG,IAAI,CACxB,cAAc,CAAC,eAAe,CAAC,EAC/B,OAAO,GAAG,UAAU,CACrB,GAAG;IACF,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,KAAK,iBAAiB,GAAG,cAAc,GAAG;IACxC,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;CAC3C,CAAA;AAED,KAAK,iBAAiB,GAAG,cAAc,GAAG;IACxC,OAAO,EAAE,SAAS,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,iBAAiB,GAAG,iBAAiB,CAAA;AAE9D,wBAAgB,KAAK,CAAC,EACpB,OAAO,EACP,SAAS,EACT,QAAQ,EACR,KAAK,EACL,GAAG,KAAK,EACT,EAAE,UAAU,2CAwBZ"}
@@ -0,0 +1,97 @@
1
+ import type { ButtonHTMLAttributes, ReactNode, Ref } from 'react';
2
+ import type { VariantProps } from 'tailwind-variants';
3
+ import { type IconType } from './icon';
4
+ export declare const buttonVariants: import("tailwind-variants").TVReturnType<{
5
+ variant: {
6
+ primary: string;
7
+ secondary: string;
8
+ tertiary: string;
9
+ danger: string;
10
+ warning: string;
11
+ };
12
+ theme: {
13
+ solid: string;
14
+ light: string;
15
+ borderless: string;
16
+ outlined: string;
17
+ unstyled: string;
18
+ };
19
+ uppercase: {
20
+ true: string;
21
+ };
22
+ size: {
23
+ sm: string;
24
+ md: string;
25
+ lg: string;
26
+ current: string;
27
+ };
28
+ block: {
29
+ true: string;
30
+ };
31
+ }, undefined, string[], {
32
+ variant: {
33
+ primary: string;
34
+ secondary: string;
35
+ tertiary: string;
36
+ danger: string;
37
+ warning: string;
38
+ };
39
+ theme: {
40
+ solid: string;
41
+ light: string;
42
+ borderless: string;
43
+ outlined: string;
44
+ unstyled: string;
45
+ };
46
+ uppercase: {
47
+ true: string;
48
+ };
49
+ size: {
50
+ sm: string;
51
+ md: string;
52
+ lg: string;
53
+ current: string;
54
+ };
55
+ block: {
56
+ true: string;
57
+ };
58
+ }, undefined, import("tailwind-variants").TVReturnType<{
59
+ variant: {
60
+ primary: string;
61
+ secondary: string;
62
+ tertiary: string;
63
+ danger: string;
64
+ warning: string;
65
+ };
66
+ theme: {
67
+ solid: string;
68
+ light: string;
69
+ borderless: string;
70
+ outlined: string;
71
+ unstyled: string;
72
+ };
73
+ uppercase: {
74
+ true: string;
75
+ };
76
+ size: {
77
+ sm: string;
78
+ md: string;
79
+ lg: string;
80
+ current: string;
81
+ };
82
+ block: {
83
+ true: string;
84
+ };
85
+ }, undefined, string[], unknown, unknown, undefined>>;
86
+ export interface ButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'>, VariantProps<typeof buttonVariants> {
87
+ icon?: IconType;
88
+ iconPosition?: 'left' | 'right';
89
+ uppercase?: boolean;
90
+ isLoading?: boolean;
91
+ loadingText?: string;
92
+ children?: ReactNode;
93
+ }
94
+ export declare function Button({ variant, theme, size, block, isLoading, icon, iconPosition, uppercase, children, className, ...props }: ButtonProps & {
95
+ ref?: Ref<HTMLButtonElement>;
96
+ }): import("react/jsx-runtime").JSX.Element;
97
+ //# sourceMappingURL=button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../src/atoms/button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAErD,OAAO,EAAQ,KAAK,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAE5C,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qDA8OzB,CAAA;AAEF,MAAM,WAAW,WACf,SAAQ,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC,EAC/D,YAAY,CAAC,OAAO,cAAc,CAAC;IACrC,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB;AAED,wBAAgB,MAAM,CAAC,EACrB,OAAO,EACP,KAAK,EACL,IAAI,EACJ,KAAK,EACL,SAAS,EACT,IAAI,EACJ,YAAqB,EACrB,SAAiB,EACjB,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,WAAW,GAAG;IAAE,GAAG,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAA;CAAE,2CAmBhD"}
@@ -0,0 +1,29 @@
1
+ import type { HTMLAttributes, ReactNode, Ref } from 'react';
2
+ import type { VariantProps } from 'tailwind-variants';
3
+ declare const errorVariants: import("tailwind-variants").TVReturnType<{
4
+ size: {
5
+ sm: string;
6
+ md: string;
7
+ lg: string;
8
+ };
9
+ }, undefined, string[], {
10
+ size: {
11
+ sm: string;
12
+ md: string;
13
+ lg: string;
14
+ };
15
+ }, undefined, import("tailwind-variants").TVReturnType<{
16
+ size: {
17
+ sm: string;
18
+ md: string;
19
+ lg: string;
20
+ };
21
+ }, undefined, string[], unknown, unknown, undefined>>;
22
+ export interface ErrorProps extends HTMLAttributes<HTMLDivElement>, VariantProps<typeof errorVariants> {
23
+ ref?: Ref<HTMLDivElement>;
24
+ showIcon?: boolean;
25
+ children: ReactNode;
26
+ }
27
+ export declare function ErrorText({ className, showIcon, children, ref, size, ...props }: ErrorProps): import("react/jsx-runtime").JSX.Element;
28
+ export {};
29
+ //# sourceMappingURL=error-text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-text.d.ts","sourceRoot":"","sources":["../../../src/atoms/error-text.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAIrD,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;qDAYjB,CAAA;AAEF,MAAM,WAAW,UACf,SAAQ,cAAc,CAAC,cAAc,CAAC,EACpC,YAAY,CAAC,OAAO,aAAa,CAAC;IACpC,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAA;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED,wBAAgB,SAAS,CAAC,EACxB,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,GAAG,EACH,IAAI,EACJ,GAAG,KAAK,EACT,EAAE,UAAU,2CAcZ"}
@@ -0,0 +1,27 @@
1
+ import type { HTMLAttributes, ReactNode } from 'react';
2
+ import type { VariantProps } from 'tailwind-variants';
3
+ declare const extraTextVariants: import("tailwind-variants").TVReturnType<{
4
+ size: {
5
+ sm: string;
6
+ md: string;
7
+ lg: string;
8
+ };
9
+ }, undefined, string[], {
10
+ size: {
11
+ sm: string;
12
+ md: string;
13
+ lg: string;
14
+ };
15
+ }, undefined, import("tailwind-variants").TVReturnType<{
16
+ size: {
17
+ sm: string;
18
+ md: string;
19
+ lg: string;
20
+ };
21
+ }, undefined, string[], unknown, unknown, undefined>>;
22
+ export interface ExtraTextProps extends HTMLAttributes<HTMLSpanElement>, VariantProps<typeof extraTextVariants> {
23
+ children: ReactNode;
24
+ }
25
+ export declare function ExtraText({ children, size, ...props }: ExtraTextProps): import("react/jsx-runtime").JSX.Element;
26
+ export {};
27
+ //# sourceMappingURL=extra-text.d.ts.map