@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.
- package/dist/{chunk-DAOLVE64.js → chunk-YSDLHEJ7.js} +204 -14
- package/dist/chunk-YSDLHEJ7.js.map +1 -0
- package/dist/index.cjs +130 -87
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +176 -323
- package/dist/index.js.map +1 -1
- package/dist/web/index.cjs +882 -30
- package/dist/web/index.cjs.map +1 -1
- package/dist/web/index.css +161 -0
- package/dist/web/index.css.map +1 -1
- package/dist/web/index.d.cts +90 -3
- package/dist/web/index.d.ts +90 -3
- package/dist/web/index.js +645 -19
- package/dist/web/index.js.map +1 -1
- package/package.json +9 -3
- package/src/components/Button.tsx +10 -3
- package/src/components/DatePicker.tsx +37 -3
- package/src/components/Select.tsx +1 -1
- package/src/web/components/ConfirmModal.stories.tsx +55 -0
- package/src/web/components/ConfirmModal.tsx +116 -0
- package/src/web/components/Drawer.stories.tsx +234 -0
- package/src/web/components/Drawer.tsx +169 -0
- package/src/web/components/HistoryTimeline.tsx +46 -0
- package/src/web/components/Modal.stories.tsx +130 -0
- package/src/web/components/Modal.tsx +162 -0
- package/src/web/components/TableActionButton.tsx +9 -4
- package/src/web/components/Toaster.stories.tsx +106 -0
- package/src/web/components/Toaster.tsx +92 -0
- package/src/web/components/ToasterProvider.tsx +6 -0
- package/src/web/components/drawer-scroll.css +41 -0
- package/src/web/components/sonner-toast.css +141 -0
- package/src/web/icons/TimelineCheckIcon.tsx +24 -0
- package/src/web/icons/ToastIcons.tsx +119 -0
- package/src/web/index.ts +26 -0
- package/src/web/mutation-toast.ts +33 -0
- package/src/web/toast.ts +1 -0
- package/dist/chunk-DAOLVE64.js.map +0 -1
package/dist/web/index.css
CHANGED
|
@@ -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 */
|
package/dist/web/index.css.map
CHANGED
|
@@ -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":";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;;;AChFA,CAAC;AACC,mBAAiB,IAAI,sBAAsB,EAAE,SAAS;AACtD,mBAAiB;AACnB;AAEA,CALC,kBAKkB;AACjB,SAAO;AACP,sBAAoB;AACpB,cAAY;AACd;AAEA,CAXC,kBAWkB;AACnB,CAZC,kBAYkB,0BAA0B;AAC7C,CAbC,kBAakB,0BAA0B;AAC7C,CAdC,kBAckB,0BAA0B,SAAS;AACtD,CAfC,kBAekB,0BAA0B,SAAS;AACtD,CAhBC,kBAgBkB,0BAA0B,SAAS,MAAM;AAC5D,CAjBC,kBAiBkB,0BAA0B,SAAS,IAAI;AAC1D,CAlBC,kBAkBkB,0BAA0B,MAAM;AACnD,CAnBC,kBAmBkB,0BAA0B,IAAI;AACjD,CApBC,kBAoBkB,0BAA0B;AAC7C,CArBC,kBAqBkB,0BAA0B;AAC3C,WAAS;AACT,SAAO;AACP,UAAQ;AACV;AAEA,CA3BC,kBA2BkB;AACjB,cAAY;AACd;AAEA,CA/BC,kBA+BkB;AACjB,oBAAkB,IAAI,sBAAsB,EAAE;AAC9C,iBAAe;AACjB;AAEA,QAAO,WAAY;AACjB,GArCD,kBAqCoB;AACjB,WAAO;AACT;AACF;;;ACxCA,CAAC;AACC,WAAS;AACT,SAAO;AACP,mBAAiB;AACjB,eAAa,IAAI,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,SAAS,EAAE;AAChF;AAEA,CAPC,gBAOgB,CAAC,kBAAkB,CAAC;AACnC,eAAa;AACb,OAAK;AACL,SAAO;AACP,cAAY;AACZ,UAAQ;AACR,WAAS,KAAK,KAAK,KAAK;AACxB,cAAY;AACZ,UAAQ,IAAI,MAAM,IAAI,qBAAqB,EAAE;AAC7C,iBAAe;AACf,cAAY,EAAE,EAAE,KAAK,EAAE;AACvB,SAAO,IAAI,kBAAkB,EAAE;AAC/B,YAAU;AACZ;AAEA,CAtBC,gBAsBgB,CAAC,kBAAkB,CAAC,iBAAmB,CAAC;AACvD,UAAQ;AACV;AAEA,CA1BC,gBA2BC,CAAC,kBAAkB,CAAC,iBAAmB,CAAC,kBAAoB,CAAC;AAC7D,UAAQ;AACV;AAEA,CA/BC,gBA+BgB,CAAC,kBAAkB,CAAC,kBAAoB,CAAC;AACxD,SAAO;AACP,UAAQ;AACR,UAAQ;AACV;AAEA,CArCC,gBAqCgB,CAAC,kBAAkB,CAAC,kBAAoB,CAAC;AACxD,OAAK;AACL,aAAW;AACX,QAAM;AACN,cAAY;AACZ,YAAU;AACZ;AAEA,CA7CC,gBA6CgB,CAAC;AAChB,eAAa,IAAI,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,SAAS,EAAE;AAC9E,aAAW;AACX,eAAa;AACb,eAAa;AACb,kBAAgB;AAChB,SAAO,IAAI,kBAAkB,EAAE;AACjC;AAEA,CAtDC,gBAsDgB,CAAC;AAChB,eAAa,IAAI,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,SAAS,EAAE;AAC9E,aAAW;AACX,eAAa;AACb,eAAa;AACb,kBAAgB;AAChB,SAAO,IAAI,kBAAkB,EAAE;AACjC;AAEA,CA/DC,gBA+DgB,CAAC;AAChB,WAAS;AACT,SAAO;AACP,UAAQ;AACR,eAAa;AACb,eAAa;AACb,mBAAiB;AACjB,WAAS;AACT,iBAAe;AACf,cAAY;AACd;AAEA,CA3EC,gBA2EgB,CAZC,0BAY0B;AAC1C,SAAO;AACP,UAAQ;AACR,UAAQ;AACR,eAAa;AACf;AAEA,CAlFC,gBAkFgB,CAAC;AAChB,cAAY,IAAI,uBAAuB,EAAE;AAC3C;AAEA,CAtFC,gBAsFgB,CAAC;AAChB,cAAY,IAAI,kBAAkB,EAAE;AACtC;AAEA,CA1FC,gBA0FgB,CAAC;AAChB,cAAY;AACd;AAEA,CA9FC,gBA8FgB,CAAC;AAClB,CA/FC,gBA+FgB,CAAC;AAChB,cAAY;AACd;AAEA,CAnGC,gBAmGgB,CAAC,kBAAkB,CAAC,kBAAoB,CAAC;AACxD,OAAK;AACL,SAAO;AACP,QAAM;AACN,SAAO;AACP,UAAQ;AACR,aAAW,WAAW;AACtB,UAAQ;AACR,cAAY;AACZ,cAAY;AACZ,UAAQ;AACV;AAEA,CAhHC,gBAgHgB,CAAC,kBAAkB,CAAC,iBAAmB,OAAO,CAAC,kBAAkB;AAChF,cAAY;AACZ,gBAAc;AACd,UAAQ;AACV;AAEA,CAtHC,gBAsHgB,CAAC,kBAAkB,CAAC,kBAAoB,CAAC,mBAAmB;AAC3E,SAAO;AACP,UAAQ;AACV;AAEA,QAAO,WAAY;AACjB,GA5HD;AA6HG,aAAS,KAAK,MAAM,EAAE;AACxB;AAEA,GAhID,eAgIiB,CAAC;AACf,WAAO,IAAI,qBAAqB,EAAE;AAClC,UAAM,IAAI,oBAAoB,EAAE;AAChC,WAAO,KAAK,MAAM,EAAE;AACpB,eAAW,KAAK,MAAM,EAAE;AAC1B;AAEA,GAvID,gBAuIkB,CAAC,kBAAkB,CAAC;AACnC,WAAO;AACP,UAAM;AACN,WAAO;AACT;AACF;","names":[]}
|
package/dist/web/index.d.cts
CHANGED
|
@@ -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 };
|
package/dist/web/index.d.ts
CHANGED
|
@@ -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 };
|