@lerianstudio/sindarian-ui 1.0.0-beta.7 → 1.1.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 (210) hide show
  1. package/dist/components/breadcrumb/index.js +2 -2
  2. package/dist/components/card/account-card/index.d.ts +32 -0
  3. package/dist/components/card/account-card/index.d.ts.map +1 -0
  4. package/dist/components/card/account-card/index.js +69 -0
  5. package/dist/components/card/basic-card/index.d.ts +6 -0
  6. package/dist/components/card/basic-card/index.d.ts.map +1 -0
  7. package/dist/components/card/basic-card/index.js +20 -0
  8. package/dist/components/card/dashboard-card/index.d.ts +5 -0
  9. package/dist/components/card/dashboard-card/index.d.ts.map +1 -0
  10. package/dist/components/card/dashboard-card/index.js +20 -0
  11. package/dist/components/card/entity-card/index.d.ts +22 -0
  12. package/dist/components/card/entity-card/index.d.ts.map +1 -0
  13. package/dist/components/card/entity-card/index.js +64 -0
  14. package/dist/components/card/index.d.ts +5 -0
  15. package/dist/components/card/index.d.ts.map +1 -0
  16. package/dist/components/card/index.js +20 -0
  17. package/dist/components/dialog/confirmation-dialog/index.d.ts +15 -0
  18. package/dist/components/dialog/confirmation-dialog/index.d.ts.map +1 -0
  19. package/dist/components/dialog/confirmation-dialog/index.js +28 -0
  20. package/dist/components/dialog/confirmation-dialog/use-confirm-dialog.d.ts +31 -0
  21. package/dist/components/dialog/confirmation-dialog/use-confirm-dialog.d.ts.map +1 -0
  22. package/dist/components/dialog/confirmation-dialog/use-confirm-dialog.js +55 -0
  23. package/dist/components/dialog/index.d.ts +4 -0
  24. package/dist/components/dialog/index.d.ts.map +1 -0
  25. package/dist/components/dialog/index.js +19 -0
  26. package/dist/components/dialog/large-dialog/index.d.ts +11 -0
  27. package/dist/components/dialog/large-dialog/index.d.ts.map +1 -0
  28. package/dist/components/dialog/large-dialog/index.js +21 -0
  29. package/dist/components/entity-box/index.js +3 -3
  30. package/dist/components/form/combo-box-field/index.js +1 -1
  31. package/dist/components/form/date-picker-field/index.d.ts +20 -0
  32. package/dist/components/form/date-picker-field/index.d.ts.map +1 -0
  33. package/dist/components/form/date-picker-field/index.js +43 -0
  34. package/dist/components/form/date-range-field/index.d.ts +20 -0
  35. package/dist/components/form/date-range-field/index.d.ts.map +1 -0
  36. package/dist/components/form/date-range-field/index.js +22 -0
  37. package/dist/components/form/index.d.ts +3 -0
  38. package/dist/components/form/index.d.ts.map +1 -1
  39. package/dist/components/form/index.js +3 -0
  40. package/dist/components/form/input-field/index.d.ts +4 -1
  41. package/dist/components/form/input-field/index.d.ts.map +1 -1
  42. package/dist/components/form/input-field/index.js +3 -3
  43. package/dist/components/form/pagination-limit-field/index.d.ts +2 -1
  44. package/dist/components/form/pagination-limit-field/index.d.ts.map +1 -1
  45. package/dist/components/form/pagination-limit-field/index.js +2 -2
  46. package/dist/components/form/password-field/index.d.ts +5 -4
  47. package/dist/components/form/password-field/index.d.ts.map +1 -1
  48. package/dist/components/form/password-field/index.js +8 -7
  49. package/dist/components/form/select-field/index.d.ts +3 -1
  50. package/dist/components/form/select-field/index.d.ts.map +1 -1
  51. package/dist/components/form/select-field/index.js +8 -2
  52. package/dist/components/form/state-field/index.js +1 -1
  53. package/dist/components/form/switch-field/index.d.ts +2 -1
  54. package/dist/components/form/switch-field/index.d.ts.map +1 -1
  55. package/dist/components/form/switch-field/index.js +2 -2
  56. package/dist/components/page/index.d.ts.map +1 -1
  57. package/dist/components/page/index.js +3 -3
  58. package/dist/components/page-header/index.d.ts.map +1 -1
  59. package/dist/components/page-header/index.js +8 -6
  60. package/dist/components/pagination/index.js +1 -1
  61. package/dist/components/table/id-table-cell.d.ts +3 -2
  62. package/dist/components/table/id-table-cell.d.ts.map +1 -1
  63. package/dist/components/table/id-table-cell.js +2 -2
  64. package/dist/components/table/locked-table-actions.js +1 -1
  65. package/dist/components/ui/alert/index.d.ts +5 -1
  66. package/dist/components/ui/alert/index.d.ts.map +1 -1
  67. package/dist/components/ui/alert/index.js +22 -8
  68. package/dist/components/ui/alert/styles.css +68 -0
  69. package/dist/components/ui/autocomplete/index.js +8 -8
  70. package/dist/components/ui/autosize-textarea/index.js +1 -1
  71. package/dist/components/ui/badge/index.d.ts +1 -1
  72. package/dist/components/ui/badge/index.d.ts.map +1 -1
  73. package/dist/components/ui/badge/index.js +11 -7
  74. package/dist/components/ui/breadcrumb/index.d.ts.map +1 -1
  75. package/dist/components/ui/breadcrumb/index.js +5 -5
  76. package/dist/components/ui/breadcrumb/styles.css +27 -0
  77. package/dist/components/ui/button/index.d.ts +8 -3
  78. package/dist/components/ui/button/index.d.ts.map +1 -1
  79. package/dist/components/ui/button/index.js +22 -30
  80. package/dist/components/ui/button/styles.css +64 -0
  81. package/dist/components/ui/calendar/index.d.ts +9 -0
  82. package/dist/components/ui/calendar/index.d.ts.map +1 -0
  83. package/dist/components/ui/calendar/index.js +115 -0
  84. package/dist/components/ui/card/index.js +1 -1
  85. package/dist/components/ui/checkbox/index.js +1 -1
  86. package/dist/components/ui/command/index.d.ts +1 -1
  87. package/dist/components/ui/command/index.d.ts.map +1 -1
  88. package/dist/components/ui/command/index.js +59 -9
  89. package/dist/components/ui/dialog/index.d.ts.map +1 -1
  90. package/dist/components/ui/dialog/index.js +6 -6
  91. package/dist/components/ui/dialog/styles.css +34 -0
  92. package/dist/components/ui/dropdown-menu/index.js +6 -6
  93. package/dist/components/ui/field/index.d.ts +25 -0
  94. package/dist/components/ui/field/index.d.ts.map +1 -0
  95. package/dist/components/ui/field/index.js +79 -0
  96. package/dist/components/ui/form.d.ts.map +1 -1
  97. package/dist/components/ui/form.js +3 -2
  98. package/dist/components/ui/icon-button/index.d.ts +13 -0
  99. package/dist/components/ui/icon-button/index.d.ts.map +1 -0
  100. package/dist/components/ui/icon-button/index.js +35 -0
  101. package/dist/components/ui/icon-button/styles.css +33 -0
  102. package/dist/components/ui/input/adornment.d.ts +9 -0
  103. package/dist/components/ui/input/adornment.d.ts.map +1 -0
  104. package/dist/components/ui/input/adornment.js +21 -0
  105. package/dist/components/ui/input/index.d.ts +16 -2
  106. package/dist/components/ui/input/index.d.ts.map +1 -1
  107. package/dist/components/ui/input/index.js +90 -2
  108. package/dist/components/ui/input/styles.css +68 -0
  109. package/dist/components/ui/multiple-select/index.d.ts +6 -6
  110. package/dist/components/ui/multiple-select/index.d.ts.map +1 -1
  111. package/dist/components/ui/multiple-select/index.js +14 -12
  112. package/dist/components/ui/paper/index.js +1 -1
  113. package/dist/components/ui/paper-collapsible/index.d.ts +9 -0
  114. package/dist/components/ui/paper-collapsible/index.d.ts.map +1 -0
  115. package/dist/components/ui/paper-collapsible/index.js +24 -0
  116. package/dist/components/ui/progress/index.d.ts +1 -1
  117. package/dist/components/ui/progress/index.d.ts.map +1 -1
  118. package/dist/components/ui/select/index.d.ts +1 -2
  119. package/dist/components/ui/select/index.d.ts.map +1 -1
  120. package/dist/components/ui/select/index.js +9 -18
  121. package/dist/components/ui/select/styles.css +57 -0
  122. package/dist/components/ui/separator/index.js +1 -1
  123. package/dist/components/ui/sheet/index.d.ts +1 -1
  124. package/dist/components/ui/sheet/index.d.ts.map +1 -1
  125. package/dist/components/ui/sheet/index.js +12 -3
  126. package/dist/components/ui/sidebar/index.d.ts +10 -0
  127. package/dist/components/ui/sidebar/index.d.ts.map +1 -0
  128. package/dist/components/ui/sidebar/index.js +25 -0
  129. package/dist/components/ui/sidebar/sidebar-back-button.d.ts +3 -0
  130. package/dist/components/ui/sidebar/sidebar-back-button.d.ts.map +1 -0
  131. package/dist/components/ui/sidebar/sidebar-back-button.js +8 -0
  132. package/dist/components/ui/sidebar/sidebar-components.d.ts +23 -0
  133. package/dist/components/ui/sidebar/sidebar-components.d.ts.map +1 -0
  134. package/dist/components/ui/sidebar/sidebar-components.js +23 -0
  135. package/dist/components/ui/sidebar/sidebar-expand-button.d.ts +6 -0
  136. package/dist/components/ui/sidebar/sidebar-expand-button.d.ts.map +1 -0
  137. package/dist/components/ui/sidebar/sidebar-expand-button.js +19 -0
  138. package/dist/components/ui/sidebar/sidebar-item-button.d.ts +12 -0
  139. package/dist/components/ui/sidebar/sidebar-item-button.d.ts.map +1 -0
  140. package/dist/components/ui/sidebar/sidebar-item-button.js +23 -0
  141. package/dist/components/ui/sidebar/sidebar-item-collapsible.d.ts +12 -0
  142. package/dist/components/ui/sidebar/sidebar-item-collapsible.d.ts.map +1 -0
  143. package/dist/components/ui/sidebar/sidebar-item-collapsible.js +52 -0
  144. package/dist/components/ui/sidebar/sidebar-item-icon-button.d.ts +12 -0
  145. package/dist/components/ui/sidebar/sidebar-item-icon-button.d.ts.map +1 -0
  146. package/dist/components/ui/sidebar/sidebar-item-icon-button.js +20 -0
  147. package/dist/components/ui/sidebar/sidebar-item.d.ts +13 -0
  148. package/dist/components/ui/sidebar/sidebar-item.d.ts.map +1 -0
  149. package/dist/components/ui/sidebar/sidebar-item.js +19 -0
  150. package/dist/components/ui/sidebar/sidebar-provider.d.ts +12 -0
  151. package/dist/components/ui/sidebar/sidebar-provider.d.ts.map +1 -0
  152. package/dist/components/ui/sidebar/sidebar-provider.js +59 -0
  153. package/dist/components/ui/sidebar/sidebar-provider.test.d.ts +2 -0
  154. package/dist/components/ui/sidebar/sidebar-provider.test.d.ts.map +1 -0
  155. package/dist/components/ui/sidebar/sidebar-provider.test.js +167 -0
  156. package/dist/components/ui/sidebar/sidebar-root.d.ts +3 -0
  157. package/dist/components/ui/sidebar/sidebar-root.d.ts.map +1 -0
  158. package/dist/components/ui/sidebar/sidebar-root.js +24 -0
  159. package/dist/components/ui/stepper/index.d.ts.map +1 -1
  160. package/dist/components/ui/stepper/index.js +5 -5
  161. package/dist/components/ui/stepper/styles.css +41 -0
  162. package/dist/components/ui/switch/index.js +1 -1
  163. package/dist/components/ui/table/index.js +4 -4
  164. package/dist/components/ui/tabs/index.d.ts.map +1 -1
  165. package/dist/components/ui/tabs/index.js +4 -4
  166. package/dist/components/ui/tabs/styles.css +31 -0
  167. package/dist/components/ui/textarea/index.js +1 -1
  168. package/dist/components/ui/toast/index.d.ts +16 -15
  169. package/dist/components/ui/toast/index.d.ts.map +1 -1
  170. package/dist/components/ui/toast/index.js +0 -77
  171. package/dist/components/ui/toast/toaster.d.ts +5 -1
  172. package/dist/components/ui/toast/toaster.d.ts.map +1 -1
  173. package/dist/components/ui/toast/toaster.js +5 -7
  174. package/dist/globals.css +472 -0
  175. package/dist/hooks/use-time.d.ts +6 -0
  176. package/dist/hooks/use-time.d.ts.map +1 -0
  177. package/dist/hooks/use-time.js +20 -0
  178. package/dist/hooks/use-toast.d.ts +19 -33
  179. package/dist/hooks/use-toast.d.ts.map +1 -1
  180. package/dist/hooks/use-toast.js +49 -150
  181. package/dist/index.d.ts +7 -1
  182. package/dist/index.d.ts.map +1 -1
  183. package/dist/index.js +8 -1
  184. package/dist/lib/storage/get-storage-object.d.ts +2 -0
  185. package/dist/lib/storage/get-storage-object.d.ts.map +1 -0
  186. package/dist/lib/storage/get-storage-object.js +19 -0
  187. package/dist/lib/storage/get-storage.d.ts +2 -0
  188. package/dist/lib/storage/get-storage.d.ts.map +1 -0
  189. package/dist/lib/storage/get-storage.js +17 -0
  190. package/dist/lib/storage/index.d.ts +3 -0
  191. package/dist/lib/storage/index.d.ts.map +1 -0
  192. package/dist/lib/storage/index.js +18 -0
  193. package/dist/public/arm.gif +0 -0
  194. package/dist/public/clap.gif +0 -0
  195. package/dist/public/confetti-ball.gif +0 -0
  196. package/dist/public/countries.json +21200 -21200
  197. package/dist/public/dizzy.gif +0 -0
  198. package/dist/public/electricity.gif +0 -0
  199. package/dist/public/gear.gif +0 -0
  200. package/dist/public/gem.gif +0 -0
  201. package/dist/public/pencil.gif +0 -0
  202. package/dist/public/robot.gif +0 -0
  203. package/dist/public/rocket.gif +0 -0
  204. package/dist/public/software.gif +0 -0
  205. package/dist/public/solar-system.gif +0 -0
  206. package/dist/public/unicorn.gif +0 -0
  207. package/package.json +32 -29
  208. package/dist/components/ui/input-with-icon/index.d.ts +0 -12
  209. package/dist/components/ui/input-with-icon/index.d.ts.map +0 -1
  210. package/dist/components/ui/input-with-icon/index.js +0 -57
@@ -0,0 +1,472 @@
1
+ @import 'tailwindcss';
2
+ @import 'tw-animate-css';
3
+
4
+ @import './components/ui/button/styles.css';
5
+ @import './components/ui/icon-button/styles.css';
6
+ @import './components/ui/input/styles.css';
7
+ @import './components/ui/select/styles.css';
8
+ @import './components/ui/breadcrumb/styles.css';
9
+ @import './components/ui/alert/styles.css';
10
+ @import './components/ui/stepper/styles.css';
11
+ @import './components/ui/tabs/styles.css';
12
+ @import './components/ui/dialog/styles.css';
13
+ @custom-variant dark (&:is(.dark *));
14
+
15
+ @theme inline {
16
+ --font-sans: var(--font-inter), Inter, ui-sans-serif, system-ui, sans-serif;
17
+
18
+ --shadow-sidebar: 5px 0px 15px -3px hsl(var(--shadow-color) / 0.05);
19
+ --shadow-data-table:
20
+ 0px 1px 2px 0px hsl(var(--shadow-color) / 0.1),
21
+ 0px 10px 20px 0px hsl(var(--shadow-color) / 0.05);
22
+ --shadow-sheet-bottom:
23
+ 0px -1px 2px 0px hsl(var(--shadow-color) / 0.1),
24
+ 0px -10px 20px 0px hsl(var(--shadow-color) / 0.05);
25
+ --shadow-drawer:
26
+ 0px 4px 8px 0px hsl(var(--shadow-color) / 0.2),
27
+ 0px -1px 16px 0px hsl(var(--shadow-color) / 0.1),
28
+ 0px 0px 32px 0px hsl(var(--shadow-color) / 0.05);
29
+ --shadow-entity-box:
30
+ 0px 10px 20px hsl(var(--shadow-color) / 0.05),
31
+ 0px 1px 2px hsl(var(--shadow-color) / 0.1);
32
+
33
+ --color-sunglow-50: #fefbe8;
34
+ --color-sunglow-100: #fff8c2;
35
+ --color-sunglow-200: #ffed89;
36
+ --color-sunglow-300: #ffdc45;
37
+ --color-sunglow-400: #fdcb28;
38
+ --color-sunglow-500: #edac05;
39
+ --color-sunglow-600: #cc8402;
40
+ --color-sunglow-700: #a35d05;
41
+ --color-sunglow-800: #86490d;
42
+ --color-sunglow-900: #723c11;
43
+ --color-sunglow-950: #431e05;
44
+
45
+ --color-de-york-50: #f2fbf5;
46
+ --color-de-york-100: #e0f8e8;
47
+ --color-de-york-200: #c2f0d2;
48
+ --color-de-york-300: #74db9a;
49
+ --color-de-york-400: #5bcd86;
50
+ --color-de-york-500: #35b264;
51
+ --color-de-york-600: #26934f;
52
+ --color-de-york-700: #217441;
53
+ --color-de-york-800: #1f5c36;
54
+ --color-de-york-900: #1b4c2f;
55
+ --color-de-york-950: #0a2917;
56
+
57
+ --color-vivid-tangerine-50: #fef5f2;
58
+ --color-vivid-tangerine-100: #fee9e2;
59
+ --color-vivid-tangerine-200: #fed7ca;
60
+ --color-vivid-tangerine-300: #fdbaa4;
61
+ --color-vivid-tangerine-400: #faa589;
62
+ --color-vivid-tangerine-500: #f06e43;
63
+ --color-vivid-tangerine-600: #dd5325;
64
+ --color-vivid-tangerine-700: #ba421b;
65
+ --color-vivid-tangerine-800: #9a3a1a;
66
+ --color-vivid-tangerine-900: #80351c;
67
+ --color-vivid-tangerine-950: #45190a;
68
+
69
+ --color-cod-gray-50: #f6f5f5;
70
+ --color-cod-gray-100: #e9e4e4;
71
+ --color-cod-gray-200: #d5ccce;
72
+ --color-cod-gray-300: #b7a9ab;
73
+ --color-cod-gray-400: #927e81;
74
+ --color-cod-gray-500: #776366;
75
+ --color-cod-gray-600: #655557;
76
+ --color-cod-gray-700: #55494a;
77
+ --color-cod-gray-800: #4a4040;
78
+ --color-cod-gray-900: #403939;
79
+ --color-cod-gray-950: #070606;
80
+
81
+ --color-shadcn-100: #f4f4f5;
82
+ --color-shadcn-200: #e4e4e7;
83
+ --color-shadcn-300: #d4d4d8;
84
+ --color-shadcn-400: #a1a1aa;
85
+ --color-shadcn-500: #71717a;
86
+ --color-shadcn-600: #27272a;
87
+ --color-shadcn-700: #18181b;
88
+ --color-shadcn-800: #09090b;
89
+
90
+ --color-border: hsl(var(--border));
91
+ --color-input: hsl(var(--input));
92
+ --color-ring: hsl(var(--ring));
93
+ --color-background: hsl(var(--background));
94
+ --color-foreground: hsl(var(--foreground));
95
+
96
+ --color-primary: hsl(var(--primary));
97
+ --color-primary-foreground: hsl(var(--primary-foreground));
98
+
99
+ --color-secondary: hsl(var(--secondary));
100
+ --color-secondary-foreground: hsl(var(--secondary-foreground));
101
+
102
+ --color-destructive: hsl(var(--destructive));
103
+ --color-destructive-foreground: hsl(var(--destructive-foreground));
104
+
105
+ --color-muted: hsl(var(--muted));
106
+ --color-muted-foreground: hsl(var(--muted-foreground));
107
+
108
+ --color-accent: hsl(var(--accent));
109
+ --color-accent-foreground: hsl(var(--accent-foreground));
110
+
111
+ --color-popover: hsl(var(--popover));
112
+ --color-popover-foreground: hsl(var(--popover-foreground));
113
+
114
+ --color-card: hsl(var(--card));
115
+ --color-card-foreground: hsl(var(--card-foreground));
116
+
117
+ /* Application tokens */
118
+ --color-body-surface: hsl(var(--body-surface));
119
+ --color-body-text: hsl(var(--body-text));
120
+ --color-body-title: hsl(var(--body-title));
121
+ --color-container-surface: hsl(var(--container-surface));
122
+ --color-container-text: hsl(var(--container-text));
123
+ --color-container-title: hsl(var(--container-title));
124
+ --color-container-border: hsl(var(--container-border));
125
+ --color-link: hsl(var(--link));
126
+ --color-link-hover: hsl(var(--link-hover) / 0.8);
127
+ --color-link-mute: hsl(var(--link-mute) / 0.4);
128
+ --color-button-primary-surface: hsl(var(--button-primary-surface));
129
+ --color-button-primary-text: hsl(var(--button-primary-text));
130
+
131
+ /* Accent variants */
132
+ --color-accent-hover: hsl(var(--accent-hover) / 0.7);
133
+ --color-accent-mute: hsl(var(--accent-mute) / 0.5);
134
+
135
+ /* System tokens */
136
+ --color-system-error: hsl(var(--system-error));
137
+ --color-system-error-surface: hsl(var(--system-error-surface));
138
+ --color-system-error-h1a: hsl(var(--system-error-h1a));
139
+ --color-system-error-border: hsl(var(--system-error-border));
140
+ --color-system-error-text: hsl(var(--system-error-text) / 0.7);
141
+ --color-system-success: hsl(var(--system-success));
142
+ --color-system-success-surface: hsl(var(--system-success-surface));
143
+ --color-system-success-h1a: hsl(var(--system-success-h1a));
144
+ --color-system-success-border: hsl(var(--system-success-border));
145
+ --color-system-success-text: hsl(var(--system-success-text) / 0.7);
146
+ --color-system-info: hsl(var(--system-info));
147
+ --color-system-info-surface: hsl(var(--system-info-surface));
148
+ --color-system-info-h1a: hsl(var(--system-info-h1a));
149
+ --color-system-info-border: hsl(var(--system-info-border));
150
+ --color-system-info-text: hsl(var(--system-info-text) / 0.7);
151
+ --color-system-alert: hsl(var(--system-alert));
152
+ --color-system-alert-surface: hsl(var(--system-alert-surface));
153
+ --color-system-alert-h1a: hsl(var(--system-alert-h1a));
154
+ --color-system-alert-border: hsl(var(--system-alert-border));
155
+ --color-system-alert-text: hsl(var(--system-alert-text) / 0.7);
156
+
157
+ --radius-lg: var(--radius);
158
+ --radius-md: calc(var(--radius) - 2px);
159
+ --radius-sm: calc(var(--radius) - 4px);
160
+ }
161
+
162
+ @utility container {
163
+ margin-inline: auto;
164
+ padding-inline: 2rem;
165
+ @media (width >= --theme(--breakpoint-sm)) {
166
+ max-width: none;
167
+ }
168
+ @media (width >= 1400px) {
169
+ max-width: 1400px;
170
+ }
171
+ }
172
+
173
+ /*
174
+ The default border color has changed to `currentcolor` in Tailwind CSS v4,
175
+ so we've added these compatibility styles to make sure everything still
176
+ looks the same as it did with Tailwind CSS v3.
177
+
178
+ If we ever want to remove these styles, we need to add an explicit border
179
+ color utility to any element that depends on these defaults.
180
+ */
181
+ @layer base {
182
+ *,
183
+ ::after,
184
+ ::before,
185
+ ::backdrop,
186
+ ::file-selector-button {
187
+ border-color: var(--color-gray-200, currentcolor);
188
+ }
189
+ }
190
+
191
+ @layer base {
192
+ :root {
193
+ /* Application tokens (from Figma ring-tokens) */
194
+ --body-surface: 240 5% 96%; /* base/100 = #F4F4F5 */
195
+ --body-text: 240 4% 46%; /* base/500 = #71717A */
196
+ --body-title: 240 5% 26%; /* base/700 = #3F3F46 */
197
+ --container-surface: 0 0% 100%; /* base/white = #FFFFFF */
198
+ --container-text: 240 4% 46%; /* base/500 = #71717A */
199
+ --container-title: 240 5% 34%; /* base/600 = #52525B */
200
+ --container-border: 0 0% 100%; /* #FFFFFF */
201
+ --link: 240 4% 16%; /* base/800 = #27272A */
202
+ --link-hover: 240 4% 16%; /* #27272A with 80% opacity via /80 */
203
+ --link-mute: 240 4% 16%; /* #27272A with 40% opacity via /40 */
204
+ --button-primary-surface: 240 4% 16%; /* base/800 = #27272A */
205
+ --button-primary-text: 0 0% 100%; /* base/white */
206
+
207
+ /* Shadcn semantic tokens (aligned with Figma) */
208
+ --background: 0 0% 100%; /* base/white = #FFFFFF */
209
+ --foreground: 240 5% 26%; /* base/700 = #3F3F46 */
210
+ --card: 0 0% 100%; /* = container-surface (white) */
211
+ --card-foreground: 240 4% 46%; /* = container-text (base/500) */
212
+ --popover: 0 0% 100%; /* base/white */
213
+ --popover-foreground: 240 5% 34%; /* base/600 = #52525B */
214
+ --primary: 240 4% 16%; /* base/800 = #27272A */
215
+ --primary-foreground: 0 0% 100%; /* base/white */
216
+ --secondary: 0 0% 100%; /* base/white */
217
+ --secondary-foreground: 240 5% 34%; /* base/600 = #52525B */
218
+ --muted: 240 5% 90%; /* base/200 = #E4E4E7 */
219
+ --muted-foreground: 240 5% 34%; /* base/600 = #52525B */
220
+ --accent: 56 99% 50%; /* #FEED02 (sunglow) */
221
+ --accent-foreground: 240 10% 4%; /* base/800 for contrast on yellow */
222
+ --destructive: 0 84% 60%; /* red/500 = #EF4444 */
223
+ --destructive-foreground: 0 0% 100%; /* white */
224
+ --border: 240 5% 90%; /* base/200 = #E4E4E7 */
225
+ --input: 0 0% 100%; /* base/white */
226
+ --ring: 240 5% 65%; /* focus ring */
227
+ --radius: 0.5rem;
228
+
229
+ /* Accent variants */
230
+ --accent-hover: 56 99% 50%; /* #FEED02 - opacity handled via /70 */
231
+ --accent-mute: 56 99% 50%; /* #FEED02 - opacity handled via /50 */
232
+
233
+ /* System tokens (light mode — dark overrides in .dark) */
234
+ --system-error: 0 84% 60%; /* red/500 = #EF4444 */
235
+ --system-error-surface: 0 86% 97%; /* red/50 = #FEF2F2 */
236
+ --system-error-h1a: 0 74% 35%; /* red/800 = #991B1B */
237
+ --system-error-border: 0 84% 60% / 0.5; /* #EF4444 50% */
238
+ --system-error-text: 0 74% 35%; /* #991B1B - opacity via /70 */
239
+ --system-success: 142 76% 36%; /* green/600 = #16A34A */
240
+ --system-success-surface: 139 76% 97%; /* green/50 = #F0FDF4 */
241
+ --system-success-h1a: 143 64% 24%; /* green/800 = #166534 */
242
+ --system-success-border: 142 76% 36% / 0.5; /* #16A34A 50% */
243
+ --system-success-text: 143 64% 24%; /* #166534 - opacity via /70 */
244
+ --system-info: 221 83% 53%; /* blue/600 = #2563EB */
245
+ --system-info-surface: 214 100% 97%; /* blue/50 = #EFF6FF */
246
+ --system-info-h1a: 224 76% 40%; /* blue/800 = #1E40AF */
247
+ --system-info-border: 221 83% 53% / 0.5; /* #2563EB 50% */
248
+ --system-info-text: 224 76% 40%; /* #1E40AF - opacity via /70 */
249
+ --system-alert: 48 96% 47%; /* yellow/500 = #EAB308 */
250
+ --system-alert-surface: 55 92% 95%; /* yellow/50 = #FEFCE8 */
251
+ --system-alert-h1a: 36 92% 29%; /* yellow/800 = #854D0E */
252
+ --system-alert-border: 48 96% 47% / 0.5; /* #EAB308 50% */
253
+ --system-alert-text: 36 92% 29%; /* #854D0E - opacity via /70 */
254
+
255
+ /* Shadow color token for dark mode adaptation */
256
+ --shadow-color: 0 0% 0%;
257
+ }
258
+
259
+ .dark {
260
+ /* Custom — Layout */
261
+ --link-hover: 240 5% 96%; /* #F4F4F5 80% (opacity via /80) */
262
+ --link-mute: 240 5% 96%; /* #F4F4F5 40% (opacity via /40) */
263
+ --container-surface: 240 5% 26%; /* base/700 = #3F3F46 */
264
+ --container-text: 240 5% 96%; /* base/100 = #F4F4F5 */
265
+ --container-title: 0 0% 100%; /* base/white */
266
+ --body-surface: 240 4% 16%; /* base/800 = #27272A */
267
+ --body-text: 240 5% 84%; /* base/300 = #D4D4D8 */
268
+ --body-title: 0 0% 100%; /* base/white */
269
+ --link: 240 5% 96%; /* base/100 = #F4F4F5 */
270
+ --button-primary-surface: 240 5% 96%; /* base/100 = #F4F4F5 */
271
+ --button-primary-text: 240 4% 16%; /* base/800 = #27272A */
272
+ --container-border: var(--border); /* shadcn/--border */
273
+
274
+ /* Shadcn — Core */
275
+ --background: 240 4% 16%; /* base/800 = #27272A */
276
+ --foreground: 240 5% 96%; /* base/100 = #F4F4F5 */
277
+ --muted: 240 5% 34%; /* base/600 = #52525B */
278
+ --muted-foreground: 240 5% 65%; /* base/400 = #A1A1AA */
279
+ --card: var(--container-surface);
280
+ --card-foreground: var(--container-text);
281
+ --popover: 240 4% 16%; /* base/800 = #27272A */
282
+ --popover-foreground: 240 5% 96%; /* base/100 = #F4F4F5 */
283
+ --border: 240 5% 34%; /* base/600 = #52525B */
284
+ --input: 240 4% 16%; /* base/800 = #27272A */
285
+ --primary: 240 5% 96%; /* base/100 = #F4F4F5 */
286
+ --primary-foreground: 240 4% 16%; /* base/800 = #27272A */
287
+ --secondary: 240 4% 16%; /* base/800 = #27272A */
288
+ --secondary-foreground: 240 5% 96%; /* base/100 = #F4F4F5 */
289
+
290
+ /* Shadcn — Accent (Brand Lerian) */
291
+ --accent: 47 92% 51%; /* sunglow = #F5C211 */
292
+ --accent-hover: 46 98% 57%; /* sunglow/400 = #FDCB28 - opacity via /70 */
293
+ --accent-mute: 46 98% 57%; /* sunglow/400 = #FDCB28 - opacity via /50 */
294
+
295
+ /* Shadcn — System Error */
296
+ --system-error: 0 91% 71%; /* red/400 = #F87171 */
297
+ --system-error-surface: 0 75% 15%; /* red/950 = #450A0A */
298
+ --system-error-text: 0 94% 82%; /* red/300 = #FCA5A5 - opacity via /70 */
299
+ --system-error-h1a: 0 96% 89%; /* red/200 = #FECACA */
300
+ --system-error-border: 0 94% 82% / 0.3; /* #FCA5A5 30% */
301
+
302
+ /* Shadcn — System Success */
303
+ --system-success: 142 69% 58%; /* green/400 = #4ADE80 */
304
+ --system-success-surface: 145 80% 10%; /* green/950 = #052E16 */
305
+ --system-success-text: 142 77% 73%; /* green/300 = #86EFAC - opacity via /70 */
306
+ --system-success-h1a: 141 79% 85%; /* green/200 = #BBF7D0 */
307
+ --system-success-border: 142 69% 58% / 0.3; /* #4ADE80 30% */
308
+
309
+ /* Shadcn — System Info */
310
+ --system-info: 213 94% 68%; /* blue/400 = #60A5FA */
311
+ --system-info-surface: 226 57% 21%; /* blue/950 = #172554 */
312
+ --system-info-text: 212 96% 78%; /* blue/300 = #93C5FD - opacity via /70 */
313
+ --system-info-h1a: 213 97% 87%; /* blue/200 = #BFDBFE */
314
+ --system-info-border: 213 94% 68% / 0.3; /* #60A5FA 30% */
315
+
316
+ /* Shadcn — System Alert */
317
+ --system-alert: 48 96% 53%; /* yellow/400 = #FACC15 */
318
+ --system-alert-surface: 26 83% 14%; /* yellow/950 = #422006 */
319
+ --system-alert-text: 48 97% 77%; /* yellow/300 = #FDE68A - opacity via /70 */
320
+ --system-alert-h1a: 53 98% 77%; /* yellow/200 = #FEF08A */
321
+ --system-alert-border: 48 96% 53% / 0.3; /* #FACC15 30% */
322
+
323
+ /* Shadow color for dark mode */
324
+ --shadow-color: 0 0% 100%;
325
+ }
326
+ }
327
+
328
+ /* Sonner toast overrides — solid bold backgrounds (Radix parity) */
329
+ [data-sonner-toaster] {
330
+ --width: 420px;
331
+ pointer-events: auto !important;
332
+ }
333
+
334
+ [data-sonner-toast] {
335
+ --normal-bg: hsl(var(--card));
336
+ --normal-text: hsl(var(--foreground));
337
+ --normal-border: hsl(var(--border));
338
+ padding: 24px 32px 24px 24px !important;
339
+ border-radius: var(--radius);
340
+ box-shadow:
341
+ 0 10px 15px -3px rgba(0, 0, 0, 0.1),
342
+ 0 4px 6px -4px rgba(0, 0, 0, 0.1);
343
+ }
344
+
345
+ [data-sonner-toast][data-type='success'] {
346
+ --normal-bg: #22c55e;
347
+ --normal-text: #ffffff;
348
+ --normal-border: transparent;
349
+ }
350
+
351
+ [data-sonner-toast][data-type='error'] {
352
+ --normal-bg: #ef4444;
353
+ --normal-text: #ffffff;
354
+ --normal-border: transparent;
355
+ }
356
+
357
+ [data-sonner-toast][data-type='warning'] {
358
+ --normal-bg: #f59e0b;
359
+ --normal-text: #422006;
360
+ --normal-border: transparent;
361
+ }
362
+
363
+ [data-sonner-toast][data-type='info'] {
364
+ --normal-bg: hsl(var(--card));
365
+ --normal-text: hsl(var(--foreground));
366
+ --normal-border: hsl(var(--border));
367
+ }
368
+
369
+ [data-sonner-toast] [data-title] {
370
+ font-weight: 600;
371
+ font-size: 0.875rem;
372
+ line-height: 1.25rem;
373
+ }
374
+
375
+ [data-sonner-toast] [data-description],
376
+ [data-sonner-toast][data-styled='true'] [data-description] {
377
+ font-size: 0.875rem;
378
+ font-weight: 600 !important;
379
+ line-height: 1.25rem;
380
+ color: var(--normal-text) !important;
381
+ }
382
+
383
+ /* Hide icons from all sonner toast variants */
384
+ [data-sonner-toast] [data-icon] {
385
+ display: none !important;
386
+ }
387
+
388
+ [data-sonner-toast] [data-close-button] {
389
+ color: hsl(var(--foreground) / 0.5);
390
+ }
391
+
392
+ [data-sonner-toast] [data-close-button]:hover {
393
+ color: #ffffff !important;
394
+ background-color: hsl(var(--foreground)) !important;
395
+ border-color: hsl(var(--foreground)) !important;
396
+ }
397
+
398
+ .dark [data-sonner-toast] [data-close-button]:hover {
399
+ color: #ffffff !important;
400
+ background-color: hsl(240 5% 26%) !important;
401
+ border-color: hsl(240 5% 26%) !important;
402
+ }
403
+
404
+ [data-sonner-toast][data-type='success'] [data-close-button],
405
+ [data-sonner-toast][data-type='error'] [data-close-button] {
406
+ color: rgba(255, 255, 255, 0.6);
407
+ }
408
+
409
+ [data-sonner-toast][data-type='success'] [data-close-button]:hover,
410
+ [data-sonner-toast][data-type='error'] [data-close-button]:hover {
411
+ color: #ffffff !important;
412
+ background-color: hsl(var(--foreground)) !important;
413
+ border-color: hsl(var(--foreground)) !important;
414
+ }
415
+
416
+ [data-sonner-toast][data-type='warning'] [data-close-button] {
417
+ color: rgba(66, 32, 6, 0.5);
418
+ }
419
+
420
+ [data-sonner-toast][data-type='warning'] [data-close-button]:hover {
421
+ color: #422006 !important;
422
+ background-color: rgba(66, 32, 6, 0.15) !important;
423
+ border-color: rgba(66, 32, 6, 0.15) !important;
424
+ }
425
+
426
+ .dark [data-sonner-toast] {
427
+ box-shadow:
428
+ 0 10px 15px -3px rgba(0, 0, 0, 0.3),
429
+ 0 4px 6px -4px rgba(0, 0, 0, 0.2);
430
+ }
431
+
432
+ /* Autofill — remove browser default blue/white background */
433
+ @layer base {
434
+ input:-webkit-autofill,
435
+ input:-webkit-autofill:hover,
436
+ input:-webkit-autofill:focus,
437
+ input:-webkit-autofill:active {
438
+ -webkit-box-shadow: 0 0 0 1000px var(--color-background) inset !important;
439
+ -webkit-text-fill-color: var(--color-foreground) !important;
440
+ transition: background-color 5000s ease-in-out 0s;
441
+ }
442
+ }
443
+
444
+ /* Scrollbar — thin translucent thumb for scrollable layout containers */
445
+ @layer base {
446
+ * {
447
+ scrollbar-width: thin;
448
+ scrollbar-color: var(--color-shadcn-300) transparent;
449
+ }
450
+
451
+ *::-webkit-scrollbar {
452
+ width: 4px;
453
+ }
454
+
455
+ *::-webkit-scrollbar-track {
456
+ background: transparent;
457
+ }
458
+
459
+ *::-webkit-scrollbar-thumb {
460
+ background-color: var(--color-shadcn-300);
461
+ border-radius: 9999px;
462
+ }
463
+
464
+ *::-webkit-scrollbar-thumb:hover {
465
+ background-color: var(--color-shadcn-400);
466
+ }
467
+ }
468
+
469
+ .ticket {
470
+ mask: radial-gradient(21px 13px at 50% 102%, #0000 98%, #000) 50%
471
+ calc(100% - 16px) / 64px 100% repeat-x;
472
+ }
@@ -0,0 +1,6 @@
1
+ export type UseTimeProps = {
2
+ interval?: number;
3
+ onUpdate?: (time: Date) => void;
4
+ };
5
+ export declare const useTime: ({ interval, onUpdate }: UseTimeProps) => Date;
6
+ //# sourceMappingURL=use-time.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-time.d.ts","sourceRoot":"","sources":["../../src/hooks/use-time.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAA;CAChC,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,wBAA+B,YAAY,SAclE,CAAA"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.useTime = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const useTime = ({ interval = 1000, onUpdate }) => {
9
+ const [time, setTime] = react_1.default.useState(new Date());
10
+ react_1.default.useEffect(() => {
11
+ const timer = setInterval(() => {
12
+ const newTime = new Date();
13
+ setTime(newTime);
14
+ onUpdate?.(newTime);
15
+ }, interval);
16
+ return () => clearInterval(timer);
17
+ }, [interval, onUpdate]);
18
+ return time;
19
+ };
20
+ exports.useTime = useTime;
@@ -1,45 +1,31 @@
1
- import * as React from 'react';
2
- import type { ToastActionElement, ToastProps } from '../components/ui/toast';
3
- type ToasterToast = ToastProps & {
4
- id: string;
1
+ import type { ToastActionElement } from '../components/ui/toast';
2
+ type ToastVariant = 'default' | 'success' | 'destructive';
3
+ type ToasterToast = {
4
+ id: string | number;
5
5
  title?: React.ReactNode;
6
6
  description?: React.ReactNode;
7
+ variant?: ToastVariant;
7
8
  action?: ToastActionElement;
8
9
  };
9
- declare const actionTypes: {
10
- readonly ADD_TOAST: "ADD_TOAST";
11
- readonly UPDATE_TOAST: "UPDATE_TOAST";
12
- readonly DISMISS_TOAST: "DISMISS_TOAST";
13
- readonly REMOVE_TOAST: "REMOVE_TOAST";
14
- };
15
- type ActionType = typeof actionTypes;
16
- type Action = {
17
- type: ActionType['ADD_TOAST'];
18
- toast: ToasterToast;
19
- } | {
20
- type: ActionType['UPDATE_TOAST'];
21
- toast: Partial<ToasterToast>;
22
- } | {
23
- type: ActionType['DISMISS_TOAST'];
24
- toastId?: ToasterToast['id'];
25
- } | {
26
- type: ActionType['REMOVE_TOAST'];
27
- toastId?: ToasterToast['id'];
28
- };
29
- interface State {
30
- toasts: ToasterToast[];
31
- }
32
- export declare const reducer: (state: State, action: Action) => State;
33
10
  type Toast = Omit<ToasterToast, 'id'>;
34
- declare function toast({ ...props }: Toast): {
35
- id: string;
36
- dismiss: () => void;
37
- update: (props: ToasterToast) => void;
11
+ declare function toast({ title, description, variant, ...rest }: Toast): {
12
+ id: string | number;
13
+ dismiss: () => string | number;
14
+ update: (props: Partial<ToasterToast>) => void;
38
15
  };
16
+ /**
17
+ * Backward-compatible hook that wraps Sonner's toast API.
18
+ *
19
+ * Returns the same shape as the original Radix-based useToast:
20
+ * - `toast()` to create a toast
21
+ * - `dismiss()` to dismiss a toast by id (or all if no id)
22
+ * - `toasts` array (always empty -- Sonner manages its own state internally)
23
+ */
39
24
  declare function useToast(): {
40
25
  toast: typeof toast;
41
- dismiss: (toastId?: string) => void;
26
+ dismiss: (toastId?: string | number) => void;
42
27
  toasts: ToasterToast[];
43
28
  };
44
29
  export { useToast, toast };
30
+ export type { ToasterToast, Toast, ToastVariant };
45
31
  //# sourceMappingURL=use-toast.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-toast.d.ts","sourceRoot":"","sources":["../../src/hooks/use-toast.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAK3E,KAAK,YAAY,GAAG,UAAU,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,MAAM,CAAC,EAAE,kBAAkB,CAAA;CAC5B,CAAA;AAED,QAAA,MAAM,WAAW;;;;;CAKP,CAAA;AASV,KAAK,UAAU,GAAG,OAAO,WAAW,CAAA;AAEpC,KAAK,MAAM,GACP;IACE,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,CAAA;IAC7B,KAAK,EAAE,YAAY,CAAA;CACpB,GACD;IACE,IAAI,EAAE,UAAU,CAAC,cAAc,CAAC,CAAA;IAChC,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;CAC7B,GACD;IACE,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,CAAA;IACjC,OAAO,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,CAAA;CAC7B,GACD;IACE,IAAI,EAAE,UAAU,CAAC,cAAc,CAAC,CAAA;IAChC,OAAO,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,CAAA;CAC7B,CAAA;AAEL,UAAU,KAAK;IACb,MAAM,EAAE,YAAY,EAAE,CAAA;CACvB;AAoBD,eAAO,MAAM,OAAO,GAAI,OAAO,KAAK,EAAE,QAAQ,MAAM,KAAG,KAoDtD,CAAA;AAaD,KAAK,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;AAErC,iBAAS,KAAK,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK;;;oBAGT,YAAY;EAwBpC;AAED,iBAAS,QAAQ;;wBAgBO,MAAM;YArIpB,YAAY,EAAE;EAuIvB;AAED,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA"}
1
+ {"version":3,"file":"use-toast.d.ts","sourceRoot":"","sources":["../../src/hooks/use-toast.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAK/D,KAAK,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,aAAa,CAAA;AAEzD,KAAK,YAAY,GAAG;IAClB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB,MAAM,CAAC,EAAE,kBAAkB,CAAA;CAC5B,CAAA;AAED,KAAK,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;AAErC,iBAAS,KAAK,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,KAAK;;;oBA2B1C,OAAO,CAAC,YAAY,CAAC;EAQxC;AAED;;;;;;;GAOG;AACH,iBAAS,QAAQ;;wBAGO,MAAM,GAAG,MAAM;YAOrB,YAAY,EAAE;EAE/B;AAED,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;AAC1B,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,CAAA"}