@scripso-homepad/ui 0.4.8 → 0.4.10

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 (39) hide show
  1. package/dist/{chunk-DAOLVE64.js → chunk-YSDLHEJ7.js} +204 -14
  2. package/dist/chunk-YSDLHEJ7.js.map +1 -0
  3. package/dist/index.cjs +130 -87
  4. package/dist/index.cjs.map +1 -1
  5. package/dist/index.d.cts +2 -0
  6. package/dist/index.d.ts +2 -0
  7. package/dist/index.js +176 -323
  8. package/dist/index.js.map +1 -1
  9. package/dist/web/index.cjs +882 -30
  10. package/dist/web/index.cjs.map +1 -1
  11. package/dist/web/index.css +161 -0
  12. package/dist/web/index.css.map +1 -1
  13. package/dist/web/index.d.cts +90 -3
  14. package/dist/web/index.d.ts +90 -3
  15. package/dist/web/index.js +645 -19
  16. package/dist/web/index.js.map +1 -1
  17. package/package.json +9 -3
  18. package/src/components/Button.tsx +10 -3
  19. package/src/components/DatePicker.tsx +37 -3
  20. package/src/components/Select.tsx +1 -1
  21. package/src/web/components/ConfirmModal.stories.tsx +55 -0
  22. package/src/web/components/ConfirmModal.tsx +116 -0
  23. package/src/web/components/Drawer.stories.tsx +234 -0
  24. package/src/web/components/Drawer.tsx +169 -0
  25. package/src/web/components/HistoryTimeline.tsx +46 -0
  26. package/src/web/components/Modal.stories.tsx +130 -0
  27. package/src/web/components/Modal.tsx +162 -0
  28. package/src/web/components/TableActionButton.tsx +9 -4
  29. package/src/web/components/Toaster.stories.tsx +106 -0
  30. package/src/web/components/Toaster.tsx +92 -0
  31. package/src/web/components/ToasterProvider.tsx +6 -0
  32. package/src/web/components/drawer-scroll.css +41 -0
  33. package/src/web/components/sonner-toast.css +141 -0
  34. package/src/web/icons/TimelineCheckIcon.tsx +24 -0
  35. package/src/web/icons/ToastIcons.tsx +119 -0
  36. package/src/web/index.ts +26 -0
  37. package/src/web/mutation-toast.ts +33 -0
  38. package/src/web/toast.ts +1 -0
  39. package/dist/chunk-DAOLVE64.js.map +0 -1
@@ -75,4 +75,165 @@
75
75
  .table-scroll-has-overflow:not(.table-scroll-at-end) .table-sticky-right-head {
76
76
  background-color: #fff;
77
77
  }
78
+
79
+ /* src/web/components/drawer-scroll.css */
80
+ .drawer-scroll-area {
81
+ scrollbar-color: var(--color-storm-gray-200, #d5d9dd) transparent;
82
+ scrollbar-width: thin;
83
+ }
84
+ .drawer-scroll-area::-webkit-scrollbar {
85
+ width: 8px;
86
+ -webkit-appearance: none;
87
+ appearance: none;
88
+ }
89
+ .drawer-scroll-area::-webkit-scrollbar-button,
90
+ .drawer-scroll-area::-webkit-scrollbar-button:single-button,
91
+ .drawer-scroll-area::-webkit-scrollbar-button:double-button,
92
+ .drawer-scroll-area::-webkit-scrollbar-button:vertical:decrement,
93
+ .drawer-scroll-area::-webkit-scrollbar-button:vertical:increment,
94
+ .drawer-scroll-area::-webkit-scrollbar-button:vertical:start:decrement,
95
+ .drawer-scroll-area::-webkit-scrollbar-button:vertical:end:increment,
96
+ .drawer-scroll-area::-webkit-scrollbar-button:start:decrement,
97
+ .drawer-scroll-area::-webkit-scrollbar-button:end:increment,
98
+ .drawer-scroll-area::-webkit-scrollbar-button:decrement,
99
+ .drawer-scroll-area::-webkit-scrollbar-button:increment {
100
+ display: none;
101
+ width: 0;
102
+ height: 0;
103
+ }
104
+ .drawer-scroll-area::-webkit-scrollbar-track {
105
+ background: transparent;
106
+ }
107
+ .drawer-scroll-area::-webkit-scrollbar-thumb {
108
+ background-color: var(--color-storm-gray-200, #d5d9dd);
109
+ border-radius: 9999px;
110
+ }
111
+ @media (max-width: 767px) {
112
+ .drawer-scroll-area::-webkit-scrollbar {
113
+ width: 4px;
114
+ }
115
+ }
116
+
117
+ /* src/web/components/sonner-toast.css */
118
+ .homepad-toaster {
119
+ --width: 409px;
120
+ --gap: 12px;
121
+ --border-radius: 20px;
122
+ font-family: var(--font-sans, "Noto Sans Armenian", ui-sans-serif, system-ui, sans-serif);
123
+ }
124
+ .homepad-toaster [data-sonner-toast][data-styled=true] {
125
+ align-items: center;
126
+ gap: 16px;
127
+ width: 409px;
128
+ min-height: 72px;
129
+ height: auto;
130
+ padding: 12px 44px 12px 12px;
131
+ background: #fff;
132
+ border: 1px solid var(--color-storm-gray-50, #eceef0);
133
+ border-radius: 20px;
134
+ box-shadow: 0 0 20px 0 #0000000d;
135
+ color: var(--color-slate-blue, #182e3c);
136
+ overflow: visible;
137
+ }
138
+ .homepad-toaster [data-sonner-toast][data-styled=true][data-front=true] {
139
+ height: auto !important;
140
+ }
141
+ .homepad-toaster [data-sonner-toast][data-styled=true][data-mounted=true][data-expanded=true] {
142
+ height: auto !important;
143
+ }
144
+ .homepad-toaster [data-sonner-toast][data-styled=true] [data-icon] {
145
+ width: auto;
146
+ height: auto;
147
+ margin: 0;
148
+ }
149
+ .homepad-toaster [data-sonner-toast][data-styled=true] [data-content] {
150
+ gap: 2px;
151
+ min-width: 0;
152
+ flex: 1;
153
+ align-self: center;
154
+ overflow: visible;
155
+ }
156
+ .homepad-toaster .homepad-toast__title {
157
+ font-family: var(--font-sans, "Noto Sans Armenian", ui-sans-serif, system-ui, sans-serif);
158
+ font-size: 14px;
159
+ font-weight: 700;
160
+ line-height: 22px;
161
+ letter-spacing: 0;
162
+ color: var(--color-slate-blue, #182e3c);
163
+ }
164
+ .homepad-toaster .homepad-toast__description {
165
+ font-family: var(--font-sans, "Noto Sans Armenian", ui-sans-serif, system-ui, sans-serif);
166
+ font-size: 12px;
167
+ font-weight: 400;
168
+ line-height: 1.4;
169
+ letter-spacing: 0;
170
+ color: var(--color-slate-blue, #182e3c);
171
+ }
172
+ .homepad-toaster .homepad-toast__icon-badge {
173
+ display: flex;
174
+ width: 48px;
175
+ height: 48px;
176
+ flex-shrink: 0;
177
+ align-items: center;
178
+ justify-content: center;
179
+ padding: 12px;
180
+ border-radius: 12px;
181
+ box-sizing: border-box;
182
+ }
183
+ .homepad-toaster .homepad-toast__icon-badge svg {
184
+ width: 24px;
185
+ height: 24px;
186
+ margin: 0;
187
+ flex-shrink: 0;
188
+ }
189
+ .homepad-toaster .homepad-toast__icon-badge--success {
190
+ background: var(--color-emerald-green-0, #f0fbf5);
191
+ }
192
+ .homepad-toaster .homepad-toast__icon-badge--error {
193
+ background: var(--color-ruby-red-0, #fff5f6);
194
+ }
195
+ .homepad-toaster .homepad-toast__icon-badge--warning {
196
+ background: #f2a8001a;
197
+ }
198
+ .homepad-toaster .homepad-toast__icon-badge--info,
199
+ .homepad-toaster .homepad-toast__icon-badge--default {
200
+ background: #0f52c71a;
201
+ }
202
+ .homepad-toaster [data-sonner-toast][data-styled=true] [data-close-button] {
203
+ top: 50%;
204
+ right: 12px;
205
+ left: auto;
206
+ width: 20px;
207
+ height: 20px;
208
+ transform: translateY(-50%);
209
+ border: 0;
210
+ background: transparent;
211
+ box-shadow: none;
212
+ cursor: pointer;
213
+ }
214
+ .homepad-toaster [data-sonner-toast][data-styled=true]:hover [data-close-button]:hover {
215
+ background: transparent;
216
+ border-color: transparent;
217
+ cursor: pointer;
218
+ }
219
+ .homepad-toaster [data-sonner-toast][data-styled=true] [data-close-button] svg {
220
+ width: 20px;
221
+ height: 20px;
222
+ }
223
+ @media (max-width: 767px) {
224
+ .homepad-toaster {
225
+ --width: calc(100vw - 16px);
226
+ }
227
+ .homepad-toaster[data-sonner-toaster] {
228
+ right: var(--mobile-offset-right, 8px);
229
+ left: var(--mobile-offset-left, 8px);
230
+ width: calc(100vw - 16px);
231
+ max-width: calc(100vw - 16px);
232
+ }
233
+ .homepad-toaster [data-sonner-toast][data-styled=true] {
234
+ right: 0;
235
+ left: 0;
236
+ width: 100%;
237
+ }
238
+ }
78
239
  /*# sourceMappingURL=index.css.map */
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/web/components/table-scroll.css"],"sourcesContent":[".table-scroll-area {\n scrollbar-color: var(--color-storm-gray-50, #eceef0) transparent;\n scrollbar-width: thin;\n}\n\n.table-scroll-area::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n -webkit-appearance: none;\n appearance: none;\n}\n\n.table-scroll-area::-webkit-scrollbar-button,\n.table-scroll-area::-webkit-scrollbar-button:single-button,\n.table-scroll-area::-webkit-scrollbar-button:double-button,\n.table-scroll-area::-webkit-scrollbar-button:horizontal:decrement,\n.table-scroll-area::-webkit-scrollbar-button:horizontal:increment,\n.table-scroll-area::-webkit-scrollbar-button:horizontal:start:decrement,\n.table-scroll-area::-webkit-scrollbar-button:horizontal:end:increment,\n.table-scroll-area::-webkit-scrollbar-button:vertical:decrement,\n.table-scroll-area::-webkit-scrollbar-button:vertical:increment,\n.table-scroll-area::-webkit-scrollbar-button:vertical:start:decrement,\n.table-scroll-area::-webkit-scrollbar-button:vertical:end:increment,\n.table-scroll-area::-webkit-scrollbar-button:start:decrement,\n.table-scroll-area::-webkit-scrollbar-button:end:increment,\n.table-scroll-area::-webkit-scrollbar-button:decrement,\n.table-scroll-area::-webkit-scrollbar-button:increment {\n display: none;\n width: 0;\n height: 0;\n max-width: 0;\n max-height: 0;\n min-width: 0;\n min-height: 0;\n padding: 0;\n margin: 0;\n border: 0;\n background: transparent;\n -webkit-appearance: none;\n appearance: none;\n}\n\n.table-scroll-area::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.table-scroll-area::-webkit-scrollbar-thumb {\n background-color: var(--color-storm-gray-50, #eceef0);\n border-radius: 51px;\n}\n\n.table-scroll-area::-webkit-scrollbar-corner {\n background: transparent;\n}\n\n.table-sticky-right-shadow::before {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n z-index: 0;\n width: 12px;\n transform: translateX(-100%);\n background: linear-gradient(90deg, rgba(21, 26, 30, 0) 0%, rgba(21, 26, 30, 0.08) 100%);\n pointer-events: none;\n opacity: 0;\n transition: opacity 150ms ease;\n}\n\n.table-scroll-has-overflow:not(.table-scroll-at-end) .table-sticky-right-shadow::before {\n opacity: 1;\n}\n\n.table-sticky-right-head {\n background-color: var(--color-storm-gray-0, #fbfcfc);\n}\n\n.table-scroll-has-overflow:not(.table-scroll-at-end) .table-sticky-right-head {\n background-color: #fff;\n}\n"],"mappings":";AAAA,CAAC;AACC,mBAAiB,IAAI,qBAAqB,EAAE,SAAS;AACrD,mBAAiB;AACnB;AAEA,CALC,iBAKiB;AAChB,SAAO;AACP,UAAQ;AACR,sBAAoB;AACpB,cAAY;AACd;AAEA,CAZC,iBAYiB;AAClB,CAbC,iBAaiB,0BAA0B;AAC5C,CAdC,iBAciB,0BAA0B;AAC5C,CAfC,iBAeiB,0BAA0B,WAAW;AACvD,CAhBC,iBAgBiB,0BAA0B,WAAW;AACvD,CAjBC,iBAiBiB,0BAA0B,WAAW,MAAM;AAC7D,CAlBC,iBAkBiB,0BAA0B,WAAW,IAAI;AAC3D,CAnBC,iBAmBiB,0BAA0B,SAAS;AACrD,CApBC,iBAoBiB,0BAA0B,SAAS;AACrD,CArBC,iBAqBiB,0BAA0B,SAAS,MAAM;AAC3D,CAtBC,iBAsBiB,0BAA0B,SAAS,IAAI;AACzD,CAvBC,iBAuBiB,0BAA0B,MAAM;AAClD,CAxBC,iBAwBiB,0BAA0B,IAAI;AAChD,CAzBC,iBAyBiB,0BAA0B;AAC5C,CA1BC,iBA0BiB,0BAA0B;AAC1C,WAAS;AACT,SAAO;AACP,UAAQ;AACR,aAAW;AACX,cAAY;AACZ,aAAW;AACX,cAAY;AACZ,WAAS;AACT,UAAQ;AACR,UAAQ;AACR,cAAY;AACZ,sBAAoB;AACpB,cAAY;AACd;AAEA,CA1CC,iBA0CiB;AAChB,cAAY;AACd;AAEA,CA9CC,iBA8CiB;AAChB,oBAAkB,IAAI,qBAAqB,EAAE;AAC7C,iBAAe;AACjB;AAEA,CAnDC,iBAmDiB;AAChB,cAAY;AACd;AAEA,CAAC,yBAAyB;AACxB,WAAS;AACT,YAAU;AACV,OAAK;AACL,UAAQ;AACR,QAAM;AACN,WAAS;AACT,SAAO;AACP,aAAW,WAAW;AACtB;AAAA,IAAY;AAAA,MAAgB,KAAhB;AAAA,MAAuB,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAA3C;AAAA,MAA+C,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM;AAClF,kBAAgB;AAChB,WAAS;AACT,cAAY,QAAQ,MAAM;AAC5B;AAEA,CAAC,yBAAyB,KAAK,CAAC,qBAAqB,CAfpD,yBAe8E;AAC7E,WAAS;AACX;AAEA,CAAC;AACC,oBAAkB,IAAI,oBAAoB,EAAE;AAC9C;AAEA,CARC,yBAQyB,KAAK,CARC,qBAQqB,CAJpD;AAKC,oBAAkB;AACpB;","names":[]}
1
+ {"version":3,"sources":["../../src/web/components/table-scroll.css","../../src/web/components/drawer-scroll.css","../../src/web/components/sonner-toast.css"],"sourcesContent":[".table-scroll-area {\n scrollbar-color: var(--color-storm-gray-50, #eceef0) transparent;\n scrollbar-width: thin;\n}\n\n.table-scroll-area::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n -webkit-appearance: none;\n appearance: none;\n}\n\n.table-scroll-area::-webkit-scrollbar-button,\n.table-scroll-area::-webkit-scrollbar-button:single-button,\n.table-scroll-area::-webkit-scrollbar-button:double-button,\n.table-scroll-area::-webkit-scrollbar-button:horizontal:decrement,\n.table-scroll-area::-webkit-scrollbar-button:horizontal:increment,\n.table-scroll-area::-webkit-scrollbar-button:horizontal:start:decrement,\n.table-scroll-area::-webkit-scrollbar-button:horizontal:end:increment,\n.table-scroll-area::-webkit-scrollbar-button:vertical:decrement,\n.table-scroll-area::-webkit-scrollbar-button:vertical:increment,\n.table-scroll-area::-webkit-scrollbar-button:vertical:start:decrement,\n.table-scroll-area::-webkit-scrollbar-button:vertical:end:increment,\n.table-scroll-area::-webkit-scrollbar-button:start:decrement,\n.table-scroll-area::-webkit-scrollbar-button:end:increment,\n.table-scroll-area::-webkit-scrollbar-button:decrement,\n.table-scroll-area::-webkit-scrollbar-button:increment {\n display: none;\n width: 0;\n height: 0;\n max-width: 0;\n max-height: 0;\n min-width: 0;\n min-height: 0;\n padding: 0;\n margin: 0;\n border: 0;\n background: transparent;\n -webkit-appearance: none;\n appearance: none;\n}\n\n.table-scroll-area::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.table-scroll-area::-webkit-scrollbar-thumb {\n background-color: var(--color-storm-gray-50, #eceef0);\n border-radius: 51px;\n}\n\n.table-scroll-area::-webkit-scrollbar-corner {\n background: transparent;\n}\n\n.table-sticky-right-shadow::before {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n z-index: 0;\n width: 12px;\n transform: translateX(-100%);\n background: linear-gradient(90deg, rgba(21, 26, 30, 0) 0%, rgba(21, 26, 30, 0.08) 100%);\n pointer-events: none;\n opacity: 0;\n transition: opacity 150ms ease;\n}\n\n.table-scroll-has-overflow:not(.table-scroll-at-end) .table-sticky-right-shadow::before {\n opacity: 1;\n}\n\n.table-sticky-right-head {\n background-color: var(--color-storm-gray-0, #fbfcfc);\n}\n\n.table-scroll-has-overflow:not(.table-scroll-at-end) .table-sticky-right-head {\n background-color: #fff;\n}\n",".drawer-scroll-area {\n scrollbar-color: var(--color-storm-gray-200, #d5d9dd) transparent;\n scrollbar-width: thin;\n}\n\n.drawer-scroll-area::-webkit-scrollbar {\n width: 8px;\n -webkit-appearance: none;\n appearance: none;\n}\n\n.drawer-scroll-area::-webkit-scrollbar-button,\n.drawer-scroll-area::-webkit-scrollbar-button:single-button,\n.drawer-scroll-area::-webkit-scrollbar-button:double-button,\n.drawer-scroll-area::-webkit-scrollbar-button:vertical:decrement,\n.drawer-scroll-area::-webkit-scrollbar-button:vertical:increment,\n.drawer-scroll-area::-webkit-scrollbar-button:vertical:start:decrement,\n.drawer-scroll-area::-webkit-scrollbar-button:vertical:end:increment,\n.drawer-scroll-area::-webkit-scrollbar-button:start:decrement,\n.drawer-scroll-area::-webkit-scrollbar-button:end:increment,\n.drawer-scroll-area::-webkit-scrollbar-button:decrement,\n.drawer-scroll-area::-webkit-scrollbar-button:increment {\n display: none;\n width: 0;\n height: 0;\n}\n\n.drawer-scroll-area::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.drawer-scroll-area::-webkit-scrollbar-thumb {\n background-color: var(--color-storm-gray-200, #d5d9dd);\n border-radius: 9999px;\n}\n\n@media (max-width: 767px) {\n .drawer-scroll-area::-webkit-scrollbar {\n width: 4px;\n }\n}\n",".homepad-toaster {\n --width: 409px;\n --gap: 12px;\n --border-radius: 20px;\n font-family: var(--font-sans, 'Noto Sans Armenian', ui-sans-serif, system-ui, sans-serif);\n}\n\n.homepad-toaster [data-sonner-toast][data-styled='true'] {\n align-items: center;\n gap: 16px;\n width: 409px;\n min-height: 72px;\n height: auto;\n padding: 12px 44px 12px 12px;\n background: #fff;\n border: 1px solid var(--color-storm-gray-50, #eceef0);\n border-radius: 20px;\n box-shadow: 0 0 20px 0 #0000000d;\n color: var(--color-slate-blue, #182e3c);\n overflow: visible;\n}\n\n.homepad-toaster [data-sonner-toast][data-styled='true'][data-front='true'] {\n height: auto !important;\n}\n\n.homepad-toaster\n [data-sonner-toast][data-styled='true'][data-mounted='true'][data-expanded='true'] {\n height: auto !important;\n}\n\n.homepad-toaster [data-sonner-toast][data-styled='true'] [data-icon] {\n width: auto;\n height: auto;\n margin: 0;\n}\n\n.homepad-toaster [data-sonner-toast][data-styled='true'] [data-content] {\n gap: 2px;\n min-width: 0;\n flex: 1;\n align-self: center;\n overflow: visible;\n}\n\n.homepad-toaster .homepad-toast__title {\n font-family: var(--font-sans, 'Noto Sans Armenian', ui-sans-serif, system-ui, sans-serif);\n font-size: 14px;\n font-weight: 700;\n line-height: 22px;\n letter-spacing: 0;\n color: var(--color-slate-blue, #182e3c);\n}\n\n.homepad-toaster .homepad-toast__description {\n font-family: var(--font-sans, 'Noto Sans Armenian', ui-sans-serif, system-ui, sans-serif);\n font-size: 12px;\n font-weight: 400;\n line-height: 1.4;\n letter-spacing: 0;\n color: var(--color-slate-blue, #182e3c);\n}\n\n.homepad-toaster .homepad-toast__icon-badge {\n display: flex;\n width: 48px;\n height: 48px;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n padding: 12px;\n border-radius: 12px;\n box-sizing: border-box;\n}\n\n.homepad-toaster .homepad-toast__icon-badge svg {\n width: 24px;\n height: 24px;\n margin: 0;\n flex-shrink: 0;\n}\n\n.homepad-toaster .homepad-toast__icon-badge--success {\n background: var(--color-emerald-green-0, #f0fbf5);\n}\n\n.homepad-toaster .homepad-toast__icon-badge--error {\n background: var(--color-ruby-red-0, #fff5f6);\n}\n\n.homepad-toaster .homepad-toast__icon-badge--warning {\n background: #f2a8001a;\n}\n\n.homepad-toaster .homepad-toast__icon-badge--info,\n.homepad-toaster .homepad-toast__icon-badge--default {\n background: #0f52c71a;\n}\n\n.homepad-toaster [data-sonner-toast][data-styled='true'] [data-close-button] {\n top: 50%;\n right: 12px;\n left: auto;\n width: 20px;\n height: 20px;\n transform: translateY(-50%);\n border: 0;\n background: transparent;\n box-shadow: none;\n cursor: pointer;\n}\n\n.homepad-toaster [data-sonner-toast][data-styled='true']:hover [data-close-button]:hover {\n background: transparent;\n border-color: transparent;\n cursor: pointer;\n}\n\n.homepad-toaster [data-sonner-toast][data-styled='true'] [data-close-button] svg {\n width: 20px;\n height: 20px;\n}\n\n@media (max-width: 767px) {\n .homepad-toaster {\n --width: calc(100vw - 16px);\n }\n\n .homepad-toaster[data-sonner-toaster] {\n right: var(--mobile-offset-right, 8px);\n left: var(--mobile-offset-left, 8px);\n width: calc(100vw - 16px);\n max-width: calc(100vw - 16px);\n }\n\n .homepad-toaster [data-sonner-toast][data-styled='true'] {\n right: 0;\n left: 0;\n width: 100%;\n }\n}\n"],"mappings":"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","names":[]}
@@ -1,6 +1,8 @@
1
1
  import * as react from 'react';
2
2
  import { ReactNode, TdHTMLAttributes, HTMLAttributes, ThHTMLAttributes, ButtonHTMLAttributes, RefObject } from 'react';
3
3
  import { StyleProp, ViewStyle } from 'react-native';
4
+ import { ToasterProps } from 'sonner';
5
+ export { toast } from 'sonner';
4
6
  import { ClassValue } from 'clsx';
5
7
 
6
8
  type AdminNavItem = {
@@ -390,7 +392,7 @@ type TableActionButtonProps = {
390
392
  ariaLabel?: string;
391
393
  className?: string;
392
394
  disabled?: boolean;
393
- } & Pick<ButtonHTMLAttributes<HTMLButtonElement>, 'onClick' | 'aria-expanded' | 'aria-haspopup' | 'aria-controls'>;
395
+ } & Pick<ButtonHTMLAttributes<HTMLButtonElement>, 'onClick' | 'title' | 'aria-expanded' | 'aria-haspopup' | 'aria-controls'>;
394
396
  declare const TableActionButton: react.ForwardRefExoticComponent<{
395
397
  variant: TableActionButtonVariant;
396
398
  children?: ReactNode;
@@ -398,7 +400,7 @@ declare const TableActionButton: react.ForwardRefExoticComponent<{
398
400
  ariaLabel?: string;
399
401
  className?: string;
400
402
  disabled?: boolean;
401
- } & Pick<ButtonHTMLAttributes<HTMLButtonElement>, "aria-expanded" | "onClick" | "aria-controls" | "aria-haspopup"> & react.RefAttributes<HTMLButtonElement>>;
403
+ } & Pick<ButtonHTMLAttributes<HTMLButtonElement>, "aria-expanded" | "title" | "onClick" | "aria-controls" | "aria-haspopup"> & react.RefAttributes<HTMLButtonElement>>;
402
404
 
403
405
  type TableIconTextProps = {
404
406
  icon: ReactNode;
@@ -407,6 +409,91 @@ type TableIconTextProps = {
407
409
  };
408
410
  declare function TableIconText({ icon, children, className }: TableIconTextProps): react.JSX.Element;
409
411
 
412
+ type ModalFooterAlign = 'left' | 'center' | 'right';
413
+ type ModalFooterLayout = 'inline' | 'split';
414
+ type ModalProps = {
415
+ open: boolean;
416
+ title: string;
417
+ subtitle?: string;
418
+ icon?: ReactNode;
419
+ iconContainerClassName?: string;
420
+ children: ReactNode;
421
+ cancelText: string;
422
+ confirmText: string;
423
+ onCancel: () => void;
424
+ onConfirm: () => void;
425
+ footerAlign?: ModalFooterAlign;
426
+ footerLayout?: ModalFooterLayout;
427
+ cancelDisabled?: boolean;
428
+ confirmDisabled?: boolean;
429
+ closeOnBackdrop?: boolean;
430
+ containerClassName?: string;
431
+ contentClassName?: string;
432
+ buttonClassName?: string;
433
+ };
434
+ declare function Modal({ open, title, subtitle, icon, iconContainerClassName, children, cancelText, confirmText, onCancel, onConfirm, footerAlign, footerLayout, cancelDisabled, confirmDisabled, closeOnBackdrop, containerClassName, contentClassName, buttonClassName, }: ModalProps): react.JSX.Element | null;
435
+
436
+ type DrawerProps = {
437
+ open: boolean;
438
+ title: string;
439
+ subtitle?: string;
440
+ children: ReactNode;
441
+ footer?: ReactNode;
442
+ onClose: () => void;
443
+ closeAriaLabel?: string;
444
+ widthClassName?: string;
445
+ className?: string;
446
+ headerClassName?: string;
447
+ contentClassName?: string;
448
+ footerClassName?: string;
449
+ };
450
+ declare function Drawer({ open, title, subtitle, children, footer, onClose, closeAriaLabel, widthClassName, className, headerClassName, contentClassName, footerClassName, }: DrawerProps): react.JSX.Element | null;
451
+
452
+ type HistoryTimelineItem = {
453
+ id: string;
454
+ title: string;
455
+ timestamp: string;
456
+ };
457
+ type HistoryTimelineProps = {
458
+ events: HistoryTimelineItem[];
459
+ };
460
+ declare function HistoryTimeline({ events }: HistoryTimelineProps): react.JSX.Element;
461
+
462
+ type HomepadToasterProps = Omit<ToasterProps, 'richColors'>;
463
+ declare function Toaster({ className, position, theme, closeButton, gap, offset, toastOptions, icons, ...props }: HomepadToasterProps): react.JSX.Element;
464
+
465
+ /** Global toast outlet styled to match the HomePad design system. */
466
+ declare function ToasterProvider(): react.JSX.Element;
467
+
468
+ type MutationToastMessages = {
469
+ success: string;
470
+ error: string;
471
+ };
472
+ type MutationToastResult = {
473
+ success: boolean;
474
+ errorMessage?: string;
475
+ };
476
+ type RunMutationWithToastOptions = {
477
+ getErrorMessage?: (error: unknown) => string;
478
+ };
479
+ declare function runMutationWithToast(action: () => Promise<unknown>, messages: MutationToastMessages, options?: RunMutationWithToastOptions): Promise<MutationToastResult>;
480
+
481
+ type ConfirmModalProps = {
482
+ open: boolean;
483
+ title: string;
484
+ description: ReactNode;
485
+ cancelText: string;
486
+ confirmText: string;
487
+ onCancel: () => void;
488
+ onConfirm: () => void;
489
+ cancelDisabled?: boolean;
490
+ confirmDisabled?: boolean;
491
+ closeOnBackdrop?: boolean;
492
+ containerClassName?: string;
493
+ buttonClassName?: string;
494
+ };
495
+ declare function ConfirmModal({ open, title, description, cancelText, confirmText, onCancel, onConfirm, cancelDisabled, confirmDisabled, closeOnBackdrop, containerClassName, buttonClassName, }: ConfirmModalProps): react.JSX.Element | null;
496
+
410
497
  declare function useMediaQuery(query: string): boolean;
411
498
 
412
499
  type OutsideTarget<T extends HTMLElement> = RefObject<T | null> | Array<RefObject<T | null>>;
@@ -414,4 +501,4 @@ declare function useOnClickOutside<T extends HTMLElement>(ref: OutsideTarget<T>,
414
501
 
415
502
  declare function cn(...inputs: ClassValue[]): string;
416
503
 
417
- export { type AdminBuildingOption, type AdminHeaderLabels, type AdminLayoutLabels, type AdminNavItem, type AdminSidebarBranding, type AdminSidebarLabels, type AdminSidebarUser, AppHeader, type AppHeaderProps, Badge, type BadgeProps, type BadgeVariant, BellIcon, BuildingIcon, BuildingSelect, type BuildingSelectProps, DEFAULT_TABLE_BODY_MIN_HEIGHT, DashboardLayout, type DashboardLayoutProps, DataTable, type DataTableClassNames, type DataTableProps, Pagination, type PaginationLabels, type PaginationProps, type PaginationVariant, Sidebar, SidebarMobileHeader, type SidebarMobileHeaderProps, SidebarNavItem, type SidebarNavItemProps, type SidebarProps, SidebarUserCard, type SidebarUserCardProps, StatusBadge, type StatusBadgeProps, type StatusBadgeTone, Table, TableActionButton, type TableActionButtonProps, type TableActionButtonVariant, TableActionsCell, type TableActionsCellProps, TableActionsMenu, type TableActionsMenuItem, type TableActionsMenuItemTone, type TableActionsMenuProps, TableBody, type TableBodyProps, TableCell, type TableCellProps, type TableCellVariant, TableHead, type TableHeadProps, TableHeader, type TableHeaderProps, TableIconText, type TableIconTextProps, TableMenuActivateIcon, TableMenuCheckIcon, TableMenuCloseIcon, TableMenuEditIcon, TableMenuInfoIcon, TableMenuRefreshIcon, TableMenuSuspendIcon, TableMenuTrashIcon, TableMoreIcon, type TableProps, TableRow, type TableRowActionsConfig, type TableRowProps, TableRowStatusActions, type TableRowStatusActionsProps, TableScrollArea, type TableScrollAreaProps, type TableSortDirection, TableSortIcon, TableStatusActionsCell, type TableStatusActionsCellProps, cn, getPaginationRange, getTotalPages, getVisiblePageNumbers, tableRowDisabledCellClassName, useMediaQuery, useOnClickOutside };
504
+ export { type AdminBuildingOption, type AdminHeaderLabels, type AdminLayoutLabels, type AdminNavItem, type AdminSidebarBranding, type AdminSidebarLabels, type AdminSidebarUser, AppHeader, type AppHeaderProps, Badge, type BadgeProps, type BadgeVariant, BellIcon, BuildingIcon, BuildingSelect, type BuildingSelectProps, ConfirmModal, type ConfirmModalProps, DEFAULT_TABLE_BODY_MIN_HEIGHT, DashboardLayout, type DashboardLayoutProps, DataTable, type DataTableClassNames, type DataTableProps, Drawer, type DrawerProps, HistoryTimeline, type HistoryTimelineItem, type HistoryTimelineProps, type HomepadToasterProps, Modal, type ModalFooterAlign, type ModalFooterLayout, type ModalProps, type MutationToastMessages, type MutationToastResult, Pagination, type PaginationLabels, type PaginationProps, type PaginationVariant, type RunMutationWithToastOptions, Sidebar, SidebarMobileHeader, type SidebarMobileHeaderProps, SidebarNavItem, type SidebarNavItemProps, type SidebarProps, SidebarUserCard, type SidebarUserCardProps, StatusBadge, type StatusBadgeProps, type StatusBadgeTone, Table, TableActionButton, type TableActionButtonProps, type TableActionButtonVariant, TableActionsCell, type TableActionsCellProps, TableActionsMenu, type TableActionsMenuItem, type TableActionsMenuItemTone, type TableActionsMenuProps, TableBody, type TableBodyProps, TableCell, type TableCellProps, type TableCellVariant, TableHead, type TableHeadProps, TableHeader, type TableHeaderProps, TableIconText, type TableIconTextProps, TableMenuActivateIcon, TableMenuCheckIcon, TableMenuCloseIcon, TableMenuEditIcon, TableMenuInfoIcon, TableMenuRefreshIcon, TableMenuSuspendIcon, TableMenuTrashIcon, TableMoreIcon, type TableProps, TableRow, type TableRowActionsConfig, type TableRowProps, TableRowStatusActions, type TableRowStatusActionsProps, TableScrollArea, type TableScrollAreaProps, type TableSortDirection, TableSortIcon, TableStatusActionsCell, type TableStatusActionsCellProps, Toaster, ToasterProvider, cn, getPaginationRange, getTotalPages, getVisiblePageNumbers, runMutationWithToast, tableRowDisabledCellClassName, useMediaQuery, useOnClickOutside };
@@ -1,6 +1,8 @@
1
1
  import * as react from 'react';
2
2
  import { ReactNode, TdHTMLAttributes, HTMLAttributes, ThHTMLAttributes, ButtonHTMLAttributes, RefObject } from 'react';
3
3
  import { StyleProp, ViewStyle } from 'react-native';
4
+ import { ToasterProps } from 'sonner';
5
+ export { toast } from 'sonner';
4
6
  import { ClassValue } from 'clsx';
5
7
 
6
8
  type AdminNavItem = {
@@ -390,7 +392,7 @@ type TableActionButtonProps = {
390
392
  ariaLabel?: string;
391
393
  className?: string;
392
394
  disabled?: boolean;
393
- } & Pick<ButtonHTMLAttributes<HTMLButtonElement>, 'onClick' | 'aria-expanded' | 'aria-haspopup' | 'aria-controls'>;
395
+ } & Pick<ButtonHTMLAttributes<HTMLButtonElement>, 'onClick' | 'title' | 'aria-expanded' | 'aria-haspopup' | 'aria-controls'>;
394
396
  declare const TableActionButton: react.ForwardRefExoticComponent<{
395
397
  variant: TableActionButtonVariant;
396
398
  children?: ReactNode;
@@ -398,7 +400,7 @@ declare const TableActionButton: react.ForwardRefExoticComponent<{
398
400
  ariaLabel?: string;
399
401
  className?: string;
400
402
  disabled?: boolean;
401
- } & Pick<ButtonHTMLAttributes<HTMLButtonElement>, "aria-expanded" | "onClick" | "aria-controls" | "aria-haspopup"> & react.RefAttributes<HTMLButtonElement>>;
403
+ } & Pick<ButtonHTMLAttributes<HTMLButtonElement>, "aria-expanded" | "title" | "onClick" | "aria-controls" | "aria-haspopup"> & react.RefAttributes<HTMLButtonElement>>;
402
404
 
403
405
  type TableIconTextProps = {
404
406
  icon: ReactNode;
@@ -407,6 +409,91 @@ type TableIconTextProps = {
407
409
  };
408
410
  declare function TableIconText({ icon, children, className }: TableIconTextProps): react.JSX.Element;
409
411
 
412
+ type ModalFooterAlign = 'left' | 'center' | 'right';
413
+ type ModalFooterLayout = 'inline' | 'split';
414
+ type ModalProps = {
415
+ open: boolean;
416
+ title: string;
417
+ subtitle?: string;
418
+ icon?: ReactNode;
419
+ iconContainerClassName?: string;
420
+ children: ReactNode;
421
+ cancelText: string;
422
+ confirmText: string;
423
+ onCancel: () => void;
424
+ onConfirm: () => void;
425
+ footerAlign?: ModalFooterAlign;
426
+ footerLayout?: ModalFooterLayout;
427
+ cancelDisabled?: boolean;
428
+ confirmDisabled?: boolean;
429
+ closeOnBackdrop?: boolean;
430
+ containerClassName?: string;
431
+ contentClassName?: string;
432
+ buttonClassName?: string;
433
+ };
434
+ declare function Modal({ open, title, subtitle, icon, iconContainerClassName, children, cancelText, confirmText, onCancel, onConfirm, footerAlign, footerLayout, cancelDisabled, confirmDisabled, closeOnBackdrop, containerClassName, contentClassName, buttonClassName, }: ModalProps): react.JSX.Element | null;
435
+
436
+ type DrawerProps = {
437
+ open: boolean;
438
+ title: string;
439
+ subtitle?: string;
440
+ children: ReactNode;
441
+ footer?: ReactNode;
442
+ onClose: () => void;
443
+ closeAriaLabel?: string;
444
+ widthClassName?: string;
445
+ className?: string;
446
+ headerClassName?: string;
447
+ contentClassName?: string;
448
+ footerClassName?: string;
449
+ };
450
+ declare function Drawer({ open, title, subtitle, children, footer, onClose, closeAriaLabel, widthClassName, className, headerClassName, contentClassName, footerClassName, }: DrawerProps): react.JSX.Element | null;
451
+
452
+ type HistoryTimelineItem = {
453
+ id: string;
454
+ title: string;
455
+ timestamp: string;
456
+ };
457
+ type HistoryTimelineProps = {
458
+ events: HistoryTimelineItem[];
459
+ };
460
+ declare function HistoryTimeline({ events }: HistoryTimelineProps): react.JSX.Element;
461
+
462
+ type HomepadToasterProps = Omit<ToasterProps, 'richColors'>;
463
+ declare function Toaster({ className, position, theme, closeButton, gap, offset, toastOptions, icons, ...props }: HomepadToasterProps): react.JSX.Element;
464
+
465
+ /** Global toast outlet styled to match the HomePad design system. */
466
+ declare function ToasterProvider(): react.JSX.Element;
467
+
468
+ type MutationToastMessages = {
469
+ success: string;
470
+ error: string;
471
+ };
472
+ type MutationToastResult = {
473
+ success: boolean;
474
+ errorMessage?: string;
475
+ };
476
+ type RunMutationWithToastOptions = {
477
+ getErrorMessage?: (error: unknown) => string;
478
+ };
479
+ declare function runMutationWithToast(action: () => Promise<unknown>, messages: MutationToastMessages, options?: RunMutationWithToastOptions): Promise<MutationToastResult>;
480
+
481
+ type ConfirmModalProps = {
482
+ open: boolean;
483
+ title: string;
484
+ description: ReactNode;
485
+ cancelText: string;
486
+ confirmText: string;
487
+ onCancel: () => void;
488
+ onConfirm: () => void;
489
+ cancelDisabled?: boolean;
490
+ confirmDisabled?: boolean;
491
+ closeOnBackdrop?: boolean;
492
+ containerClassName?: string;
493
+ buttonClassName?: string;
494
+ };
495
+ declare function ConfirmModal({ open, title, description, cancelText, confirmText, onCancel, onConfirm, cancelDisabled, confirmDisabled, closeOnBackdrop, containerClassName, buttonClassName, }: ConfirmModalProps): react.JSX.Element | null;
496
+
410
497
  declare function useMediaQuery(query: string): boolean;
411
498
 
412
499
  type OutsideTarget<T extends HTMLElement> = RefObject<T | null> | Array<RefObject<T | null>>;
@@ -414,4 +501,4 @@ declare function useOnClickOutside<T extends HTMLElement>(ref: OutsideTarget<T>,
414
501
 
415
502
  declare function cn(...inputs: ClassValue[]): string;
416
503
 
417
- export { type AdminBuildingOption, type AdminHeaderLabels, type AdminLayoutLabels, type AdminNavItem, type AdminSidebarBranding, type AdminSidebarLabels, type AdminSidebarUser, AppHeader, type AppHeaderProps, Badge, type BadgeProps, type BadgeVariant, BellIcon, BuildingIcon, BuildingSelect, type BuildingSelectProps, DEFAULT_TABLE_BODY_MIN_HEIGHT, DashboardLayout, type DashboardLayoutProps, DataTable, type DataTableClassNames, type DataTableProps, Pagination, type PaginationLabels, type PaginationProps, type PaginationVariant, Sidebar, SidebarMobileHeader, type SidebarMobileHeaderProps, SidebarNavItem, type SidebarNavItemProps, type SidebarProps, SidebarUserCard, type SidebarUserCardProps, StatusBadge, type StatusBadgeProps, type StatusBadgeTone, Table, TableActionButton, type TableActionButtonProps, type TableActionButtonVariant, TableActionsCell, type TableActionsCellProps, TableActionsMenu, type TableActionsMenuItem, type TableActionsMenuItemTone, type TableActionsMenuProps, TableBody, type TableBodyProps, TableCell, type TableCellProps, type TableCellVariant, TableHead, type TableHeadProps, TableHeader, type TableHeaderProps, TableIconText, type TableIconTextProps, TableMenuActivateIcon, TableMenuCheckIcon, TableMenuCloseIcon, TableMenuEditIcon, TableMenuInfoIcon, TableMenuRefreshIcon, TableMenuSuspendIcon, TableMenuTrashIcon, TableMoreIcon, type TableProps, TableRow, type TableRowActionsConfig, type TableRowProps, TableRowStatusActions, type TableRowStatusActionsProps, TableScrollArea, type TableScrollAreaProps, type TableSortDirection, TableSortIcon, TableStatusActionsCell, type TableStatusActionsCellProps, cn, getPaginationRange, getTotalPages, getVisiblePageNumbers, tableRowDisabledCellClassName, useMediaQuery, useOnClickOutside };
504
+ export { type AdminBuildingOption, type AdminHeaderLabels, type AdminLayoutLabels, type AdminNavItem, type AdminSidebarBranding, type AdminSidebarLabels, type AdminSidebarUser, AppHeader, type AppHeaderProps, Badge, type BadgeProps, type BadgeVariant, BellIcon, BuildingIcon, BuildingSelect, type BuildingSelectProps, ConfirmModal, type ConfirmModalProps, DEFAULT_TABLE_BODY_MIN_HEIGHT, DashboardLayout, type DashboardLayoutProps, DataTable, type DataTableClassNames, type DataTableProps, Drawer, type DrawerProps, HistoryTimeline, type HistoryTimelineItem, type HistoryTimelineProps, type HomepadToasterProps, Modal, type ModalFooterAlign, type ModalFooterLayout, type ModalProps, type MutationToastMessages, type MutationToastResult, Pagination, type PaginationLabels, type PaginationProps, type PaginationVariant, type RunMutationWithToastOptions, Sidebar, SidebarMobileHeader, type SidebarMobileHeaderProps, SidebarNavItem, type SidebarNavItemProps, type SidebarProps, SidebarUserCard, type SidebarUserCardProps, StatusBadge, type StatusBadgeProps, type StatusBadgeTone, Table, TableActionButton, type TableActionButtonProps, type TableActionButtonVariant, TableActionsCell, type TableActionsCellProps, TableActionsMenu, type TableActionsMenuItem, type TableActionsMenuItemTone, type TableActionsMenuProps, TableBody, type TableBodyProps, TableCell, type TableCellProps, type TableCellVariant, TableHead, type TableHeadProps, TableHeader, type TableHeaderProps, TableIconText, type TableIconTextProps, TableMenuActivateIcon, TableMenuCheckIcon, TableMenuCloseIcon, TableMenuEditIcon, TableMenuInfoIcon, TableMenuRefreshIcon, TableMenuSuspendIcon, TableMenuTrashIcon, TableMoreIcon, type TableProps, TableRow, type TableRowActionsConfig, type TableRowProps, TableRowStatusActions, type TableRowStatusActionsProps, TableScrollArea, type TableScrollAreaProps, type TableSortDirection, TableSortIcon, TableStatusActionsCell, type TableStatusActionsCellProps, Toaster, ToasterProvider, cn, getPaginationRange, getTotalPages, getVisiblePageNumbers, runMutationWithToast, tableRowDisabledCellClassName, useMediaQuery, useOnClickOutside };