aark-react-modalify 1.3.2 → 1.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -11,6 +11,7 @@ A lightweight, flexible React modal and notification library with TypeScript sup
11
11
  - **TypeScript** — full type safety out of the box
12
12
  - **Dual API** — pass raw JSX _or_ a plain props object
13
13
  - **Size presets** — `sm / md / lg / xl / full` with explicit `width` / `maxWidth` override
14
+ - **Body padding control** — `bodyPadding` option lets header/footer borders span edge-to-edge
14
15
  - **Responsive** — adapts automatically on tablet and mobile
15
16
  - **CSS variables** — theme every visual property without touching JS
16
17
  - **Imperative** — call `aark.fire()` / `aark.notification()` anywhere, no context required
@@ -186,17 +187,18 @@ aark.getTheme(); // same as getAarkModalTheme()
186
187
 
187
188
  ### `ModalOptions`
188
189
 
189
- | Option | Type | Default | Description |
190
- | --------------------- | ---------------- | ---------- | ---------------------------------------- |
191
- | `position` | `ModalPosition` | `"center"` | Where the modal appears |
192
- | `size` | `ModalSize` | — | Preset max-width (`sm/md/lg/xl/full`) |
193
- | `width` | `string\|number` | — | Explicit width, overrides `size` |
194
- | `maxWidth` | `string\|number` | — | Explicit max-width, overrides `size` |
195
- | `showCloseIcon` | `boolean` | `true` | Render the × close button |
196
- | `className` | `string` | | Extra class on the modal container |
197
- | `overlayClassName` | `string` | — | Extra class on the backdrop |
198
- | `preventOverlayClose` | `boolean` | `false` | Disable close on backdrop click |
199
- | `preventEscClose` | `boolean` | `false` | Disable close on ESC key |
190
+ | Option | Type | Default | Description |
191
+ | --------------------- | ----------------------------- | ---------- | --------------------------------------------------------------------------- |
192
+ | `position` | `ModalPosition` | `"center"` | Where the modal appears |
193
+ | `size` | `ModalSize` | — | Preset max-width (`sm/md/lg/xl/full`) |
194
+ | `width` | `string\|number` | — | Explicit width, overrides `size` |
195
+ | `maxWidth` | `string\|number` | — | Explicit max-width, overrides `size` |
196
+ | `bodyPadding` | `boolean\|string\|number` | `true` | Body card padding see [bodyPadding](#bodypaddingcontrolling-body-padding) |
197
+ | `showCloseIcon` | `boolean` | `true` | Render the × close button |
198
+ | `className` | `string` | — | Extra class on the modal container |
199
+ | `overlayClassName` | `string` | | Extra class on the backdrop |
200
+ | `preventOverlayClose` | `boolean` | `false` | Disable close on backdrop click |
201
+ | `preventEscClose` | `boolean` | `false` | Disable close on ESC key |
200
202
 
201
203
  ### `NotificationOptions`
202
204
 
@@ -249,6 +251,48 @@ type NotificationPosition =
249
251
 
250
252
  ## Customization
251
253
 
254
+ ### `bodyPadding` — controlling body padding
255
+
256
+ By default the modal body card has `padding: var(--aark-modal-pad)` (16 px) on all sides. This means any `border-top` or `border-bottom` you add to a header or footer **inside** your content will be indented — it won't reach the card edges.
257
+
258
+ Use `bodyPadding` to control this:
259
+
260
+ | Value | Result |
261
+ | --------------- | ----------------------------------------- |
262
+ | `true` (default)| Default CSS variable padding (`16px`) |
263
+ | `false` or `0` | No padding — borders span edge-to-edge |
264
+ | `number` | Exact px value, e.g. `24` → `24px` |
265
+ | `string` | Any CSS value, e.g. `'8px 20px'` |
266
+
267
+ **Pattern — full-width header/footer borders with padded content:**
268
+
269
+ ```tsx
270
+ aark.fire(
271
+ <div>
272
+ {/* Header — border goes edge-to-edge */}
273
+ <div style={{ padding: "12px 16px", borderBottom: "1px solid #e5e7eb" }}>
274
+ <h3 style={{ margin: 0 }}>Modal Title</h3>
275
+ </div>
276
+
277
+ {/* Content — add padding back only here */}
278
+ <div className="aark-body-pad">
279
+ <p>Body content with standard padding.</p>
280
+ </div>
281
+
282
+ {/* Footer — border goes edge-to-edge */}
283
+ <div style={{ padding: "12px 16px", borderTop: "1px solid #e5e7eb", display: "flex", justifyContent: "flex-end", gap: "8px" }}>
284
+ <button onClick={() => aark.close()}>Cancel</button>
285
+ <button onClick={() => aark.close()}>Confirm</button>
286
+ </div>
287
+ </div>,
288
+ { bodyPadding: false }
289
+ );
290
+ ```
291
+
292
+ > **`aark-body-pad`** is a CSS utility class provided by the library. It applies `padding: var(--aark-modal-pad)` — the same value as the body default — so your content section looks identical to a normally-padded modal while header/footer remain flush.
293
+
294
+ ---
295
+
252
296
  ### CSS variables (full list with defaults)
253
297
 
254
298
  Override any of these in your global CSS to theme the library without touching JS:
@@ -473,6 +517,26 @@ aark.fire(<MyForm />, {
473
517
  });
474
518
  ```
475
519
 
520
+ ### Modal with full-width header/footer borders
521
+
522
+ ```tsx
523
+ aark.fire(
524
+ <div>
525
+ <div style={{ padding: "12px 16px", borderBottom: "1px solid #e5e7eb" }}>
526
+ <h3 style={{ margin: 0 }}>Confirm Action</h3>
527
+ </div>
528
+ <div className="aark-body-pad">
529
+ <p>Are you sure you want to proceed?</p>
530
+ </div>
531
+ <div style={{ padding: "12px 16px", borderTop: "1px solid #e5e7eb", display: "flex", justifyContent: "flex-end", gap: "8px" }}>
532
+ <button onClick={() => aark.close()}>Cancel</button>
533
+ <button onClick={() => aark.close()}>Confirm</button>
534
+ </div>
535
+ </div>,
536
+ { bodyPadding: false, size: "sm" }
537
+ );
538
+ ```
539
+
476
540
  ### Dark theme
477
541
 
478
542
  ```tsx
@@ -1 +1 @@
1
- :root{--aark-modal-overlay-bg: rgba(0, 0, 0, .5);--aark-modal-overlay-blur: 0px;--aark-modal-bg: #fff;--aark-modal-radius: 8px;--aark-modal-shadow: 0 10px 25px rgba(0, 0, 0, .15);--aark-modal-pad: 16px;--aark-modal-max-width: 700px;--aark-modal-z: 9999;--aark-close-color: #666;--aark-close-hover: #f5f5f5;--aark-close-hover-color: #333;--aark-close-focus-outline: 2px solid #007bff;--aark-anim: .2s}.aark-modal-overlay{position:fixed;inset:0;z-index:var(--aark-modal-z);pointer-events:auto}.aark-modal-container{width:100%;max-width:var(--aark-modal-max-width);min-width:280px;position:relative;z-index:2;pointer-events:auto}.aark-modal-wrapper{width:100%;height:100%;position:relative;z-index:2;pointer-events:auto}.aark-modal-container.center{animation:scale-in var(--aark-anim)}.aark-modal-container.top-center{animation:slide-down var(--aark-anim)}.aark-modal-container.top-right{animation:slide-left var(--aark-anim)}.aark-modal-container.top-left{animation:slide-right var(--aark-anim)}.aark-modal-container.bottom-right{animation:slide-left var(--aark-anim)}.aark-modal-container.bottom-left{animation:slide-right var(--aark-anim)}.aark-modal-container.bottom-center{animation:slide-up var(--aark-anim)}.aark-modal-header{position:relative;padding-bottom:0;margin-bottom:0}.aark-modal-close{position:absolute;top:8px;right:8px;width:30px;height:30px;padding:.5rem;display:flex;align-items:center;justify-content:center;background:transparent;border:0;color:var(--aark-close-color);cursor:pointer;border-radius:50%;font-size:14px;line-height:1;transition:all var(--aark-anim);z-index:10}.aark-modal-close:hover{background:var(--aark-close-hover);color:var(--aark-close-hover-color)}.aark-modal-close:focus{outline:var(--aark-close-focus-outline);outline-offset:2px}.aark-modal-body{background:var(--aark-modal-bg);border-radius:var(--aark-modal-radius);box-shadow:var(--aark-modal-shadow);padding:var(--aark-modal-pad);width:100%;max-height:90vh;overflow-y:auto;margin:auto;position:relative;z-index:2;pointer-events:auto;box-sizing:border-box}.aark-modal-content{flex:1;margin:1rem 0}.aark-modal-footer{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1.5rem}.aark-standard-modal{background:var(--aark-modal-bg);border-radius:var(--aark-modal-radius);box-shadow:var(--aark-modal-shadow);padding:var(--aark-modal-pad);max-height:90vh;overflow-y:auto;margin:auto;display:flex;flex-direction:column;position:relative;z-index:2;pointer-events:auto;box-sizing:border-box;width:100%;max-width:var(--aark-modal-max-width);min-width:280px}@media(max-width:768px){.aark-modal-container,.aark-standard-modal{width:calc(100vw - 24px);max-width:calc(100vw - 24px);margin:12px}.aark-modal-body{max-height:calc(100vh - 80px)}}@media(max-width:480px){.aark-modal-container,.aark-standard-modal{width:calc(100vw - 16px);max-width:calc(100vw - 16px);margin:8px;max-height:calc(100vh - 40px)}.aark-modal-body{max-height:calc(100vh - 40px);border-radius:calc(var(--aark-modal-radius) / 2)}}.aark-standard-modal .aark-modal-header{margin-bottom:1rem}.aark-standard-modal .aark-modal-title{margin:0;font-size:1.5rem;font-weight:600;color:#1f2937;text-align:center}.aark-standard-modal .aark-modal-content{flex:1;margin:1rem 0}.aark-standard-modal .aark-modal-icon{text-align:center;font-size:3rem;margin-bottom:1rem}.aark-standard-modal .aark-modal-content p{margin:0;font-size:1rem;color:#6b7280;line-height:1.5;text-align:center}.aark-standard-modal .aark-modal-footer{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1.5rem}.aark-standard-modal .aark-modal-cancel-button,.aark-standard-modal .aark-modal-confirm-button{padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.875rem;font-weight:500;transition:all .2s;border:none}.aark-standard-modal .aark-modal-cancel-button{border:1px solid #d1d5db;background:#fff;color:#374151}.aark-standard-modal .aark-modal-cancel-button:hover{background:#f9fafb;border-color:#9ca3af}.aark-standard-modal .aark-modal-confirm-button{color:#fff}.aark-standard-modal .aark-modal-confirm-button:hover{opacity:.9}@keyframes fade-in{0%{opacity:0}to{opacity:1}}:root{--aark-notification-bg: #fff;--aark-notification-radius: 8px;--aark-notification-shadow: 0 4px 12px rgba(0, 0, 0, .1);--aark-notification-pad: 16px;--aark-notification-z: 10000;--aark-close-color: #666;--aark-close-hover: #f5f5f5;--aark-anim: .2s}.aark-notification-container{pointer-events:auto;width:auto;max-width:400px;min-width:280px;position:relative;z-index:10001}.aark-notification-wrapper{position:relative;z-index:10001;pointer-events:auto}.aark-notification-container.center{animation:scale-in var(--aark-anim)}.aark-notification-container.top-center{animation:slide-down var(--aark-anim)}.aark-notification-container.top-right{animation:slide-left var(--aark-anim)}.aark-notification-container.top-left{animation:slide-right var(--aark-anim)}.aark-notification-container.bottom-right{animation:slide-left var(--aark-anim)}.aark-notification-container.bottom-left{animation:slide-right var(--aark-anim)}.aark-notification-container.bottom-center{animation:slide-up var(--aark-anim)}.aark-standard-notification{background:var(--aark-notification-bg);border-radius:var(--aark-notification-radius);box-shadow:var(--aark-notification-shadow);padding:var(--aark-notification-pad);position:relative;overflow:hidden;cursor:pointer;transition:all var(--aark-anim);border:1px solid #e5e7eb;max-width:400px;min-width:280px;z-index:10001;pointer-events:auto}.aark-standard-notification:hover{box-shadow:0 8px 25px #00000026;transform:translateY(-1px)}.aark-notification-header{margin-bottom:.5rem;position:relative;z-index:10001;pointer-events:auto}.aark-notification-title{margin:0;font-size:.875rem;font-weight:600;color:#1f2937;line-height:1.25}.aark-notification-content{color:#6b7280;font-size:.75rem;line-height:1.4;background-color:var(--aark-notification-bg);position:relative;z-index:10001;pointer-events:auto}.aark-notification-body{background:var(--aark-notification-bg);border-radius:var(--aark-notification-radius);box-shadow:var(--aark-notification-shadow);padding:var(--aark-notification-pad);position:relative;z-index:10001;pointer-events:auto}.aark-notification-content p{margin:0}.aark-notification-icon{font-size:1.25rem;flex-shrink:0;margin-top:.125rem;position:relative;z-index:10001;pointer-events:auto}.aark-notification-close{background:none;border:none;font-size:1rem;color:#9ca3af;cursor:pointer;padding:0;line-height:1;flex-shrink:0;transition:color var(--aark-anim);position:relative;z-index:10002;pointer-events:auto}.aark-notification-close:hover{color:#6b7280}.aark-notification-close:focus{outline:2px solid #3b82f6;outline-offset:2px;border-radius:2px}.aark-notification-footer{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1rem;position:relative;z-index:10001;pointer-events:auto}.aark-notification-cancel-button,.aark-notification-confirm-button{padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.875rem;font-weight:500;transition:all .2s;border:none;position:relative;z-index:10001;pointer-events:auto}.aark-notification-cancel-button{border:1px solid #d1d5db;background:#fff;color:#374151}.aark-notification-cancel-button:hover{background:#f9fafb;border-color:#9ca3af}.aark-notification-confirm-button{color:#fff}.aark-notification-confirm-button:hover{opacity:.9}.aark-notification-progress{position:absolute;bottom:0;left:0;height:3px;transform-origin:left;border-radius:0 0 var(--aark-notification-radius) var(--aark-notification-radius)}.aark-notification-success{border-left:4px solid #4ade80}.aark-notification-error{border-left:4px solid #ef4444}.aark-notification-warning{border-left:4px solid #f59e0b}.aark-notification-info{border-left:4px solid #3b82f6}.aark-notification-question{border-left:4px solid #8b5cf6}@keyframes aark-notification-progress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@keyframes notification-fade-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes notification-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-10px)}}@keyframes notification-slide-in-right{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes notification-slide-out-right{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}@keyframes notification-slide-in-left{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}@keyframes notification-slide-out-left{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-100%)}}@keyframes scale-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes slide-down{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-left{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes slide-right{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@media(max-width:768px){.aark-notification-container,.aark-standard-notification{max-width:calc(100vw - 40px);min-width:auto}}@media(max-width:480px){.aark-notification-container{max-width:calc(100vw - 20px)}.aark-standard-notification{max-width:calc(100vw - 20px);min-width:auto}}
1
+ :root{--aark-modal-overlay-bg: rgba(0, 0, 0, .5);--aark-modal-overlay-blur: 0px;--aark-modal-bg: #fff;--aark-modal-radius: 8px;--aark-modal-shadow: 0 10px 25px rgba(0, 0, 0, .15);--aark-modal-pad: 16px;--aark-modal-max-width: 700px;--aark-modal-z: 9999;--aark-close-color: #666;--aark-close-hover: #f5f5f5;--aark-close-hover-color: #333;--aark-close-focus-outline: 2px solid #007bff;--aark-anim: .2s}.aark-modal-overlay{position:fixed;inset:0;z-index:var(--aark-modal-z);pointer-events:auto}.aark-modal-container{width:100%;max-width:var(--aark-modal-max-width);min-width:280px;position:relative;z-index:2;pointer-events:auto}.aark-modal-wrapper{width:100%;height:100%;position:relative;z-index:2;pointer-events:auto}.aark-modal-container.center{animation:scale-in var(--aark-anim)}.aark-modal-container.top-center{animation:slide-down var(--aark-anim)}.aark-modal-container.top-right{animation:slide-left var(--aark-anim)}.aark-modal-container.top-left{animation:slide-right var(--aark-anim)}.aark-modal-container.bottom-right{animation:slide-left var(--aark-anim)}.aark-modal-container.bottom-left{animation:slide-right var(--aark-anim)}.aark-modal-container.bottom-center{animation:slide-up var(--aark-anim)}.aark-modal-header{position:relative;padding-bottom:0;margin-bottom:0}.aark-modal-close{position:absolute;top:8px;right:8px;width:30px;height:30px;padding:.5rem;display:flex;align-items:center;justify-content:center;background:transparent;border:0;color:var(--aark-close-color);cursor:pointer;border-radius:50%;font-size:14px;line-height:1;transition:all var(--aark-anim);z-index:10}.aark-modal-close:hover{background:var(--aark-close-hover);color:var(--aark-close-hover-color)}.aark-modal-close:focus{outline:var(--aark-close-focus-outline);outline-offset:2px}.aark-modal-body{background:var(--aark-modal-bg);border-radius:var(--aark-modal-radius);box-shadow:var(--aark-modal-shadow);padding:var(--aark-modal-pad);width:100%;max-height:90vh;overflow-y:auto;margin:auto;position:relative;z-index:2;pointer-events:auto;box-sizing:border-box}.aark-modal-content{flex:1;margin:1rem 0}.aark-body-pad{padding:var(--aark-modal-pad)}.aark-modal-footer{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1.5rem}.aark-standard-modal{background:var(--aark-modal-bg);border-radius:var(--aark-modal-radius);box-shadow:var(--aark-modal-shadow);padding:var(--aark-modal-pad);max-height:90vh;overflow-y:auto;margin:auto;display:flex;flex-direction:column;position:relative;z-index:2;pointer-events:auto;box-sizing:border-box;width:100%;max-width:var(--aark-modal-max-width);min-width:280px}@media(max-width:768px){.aark-modal-container,.aark-standard-modal{width:calc(100vw - 24px);max-width:calc(100vw - 24px);margin:12px}.aark-modal-body{max-height:calc(100vh - 80px)}}@media(max-width:480px){.aark-modal-container,.aark-standard-modal{width:calc(100vw - 16px);max-width:calc(100vw - 16px);margin:8px;max-height:calc(100vh - 40px)}.aark-modal-body{max-height:calc(100vh - 40px);border-radius:calc(var(--aark-modal-radius) / 2)}}.aark-standard-modal .aark-modal-header{margin-bottom:1rem}.aark-standard-modal .aark-modal-title{margin:0;font-size:1.5rem;font-weight:600;color:#1f2937;text-align:center}.aark-standard-modal .aark-modal-content{flex:1;margin:1rem 0}.aark-standard-modal .aark-modal-icon{text-align:center;font-size:3rem;margin-bottom:1rem}.aark-standard-modal .aark-modal-content p{margin:0;font-size:1rem;color:#6b7280;line-height:1.5;text-align:center}.aark-standard-modal .aark-modal-footer{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1.5rem}.aark-standard-modal .aark-modal-cancel-button,.aark-standard-modal .aark-modal-confirm-button{padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.875rem;font-weight:500;transition:all .2s;border:none}.aark-standard-modal .aark-modal-cancel-button{border:1px solid #d1d5db;background:#fff;color:#374151}.aark-standard-modal .aark-modal-cancel-button:hover{background:#f9fafb;border-color:#9ca3af}.aark-standard-modal .aark-modal-confirm-button{color:#fff}.aark-standard-modal .aark-modal-confirm-button:hover{opacity:.9}@keyframes fade-in{0%{opacity:0}to{opacity:1}}:root{--aark-notification-bg: #fff;--aark-notification-radius: 8px;--aark-notification-shadow: 0 4px 12px rgba(0, 0, 0, .1);--aark-notification-pad: 16px;--aark-notification-z: 10000;--aark-close-color: #666;--aark-close-hover: #f5f5f5;--aark-anim: .2s}.aark-notification-container{pointer-events:auto;width:auto;max-width:400px;min-width:280px;position:relative;z-index:10001}.aark-notification-wrapper{position:relative;z-index:10001;pointer-events:auto}.aark-notification-container.center{animation:scale-in var(--aark-anim)}.aark-notification-container.top-center{animation:slide-down var(--aark-anim)}.aark-notification-container.top-right{animation:slide-left var(--aark-anim)}.aark-notification-container.top-left{animation:slide-right var(--aark-anim)}.aark-notification-container.bottom-right{animation:slide-left var(--aark-anim)}.aark-notification-container.bottom-left{animation:slide-right var(--aark-anim)}.aark-notification-container.bottom-center{animation:slide-up var(--aark-anim)}.aark-standard-notification{background:var(--aark-notification-bg);border-radius:var(--aark-notification-radius);box-shadow:var(--aark-notification-shadow);padding:var(--aark-notification-pad);position:relative;overflow:hidden;cursor:pointer;transition:all var(--aark-anim);border:1px solid #e5e7eb;max-width:400px;min-width:280px;z-index:10001;pointer-events:auto}.aark-standard-notification:hover{box-shadow:0 8px 25px #00000026;transform:translateY(-1px)}.aark-notification-header{margin-bottom:.5rem;position:relative;z-index:10001;pointer-events:auto}.aark-notification-title{margin:0;font-size:.875rem;font-weight:600;color:#1f2937;line-height:1.25}.aark-notification-content{color:#6b7280;font-size:.75rem;line-height:1.4;background-color:var(--aark-notification-bg);position:relative;z-index:10001;pointer-events:auto}.aark-notification-body{background:var(--aark-notification-bg);border-radius:var(--aark-notification-radius);box-shadow:var(--aark-notification-shadow);padding:var(--aark-notification-pad);position:relative;z-index:10001;pointer-events:auto}.aark-notification-content p{margin:0}.aark-notification-icon{font-size:1.25rem;flex-shrink:0;margin-top:.125rem;position:relative;z-index:10001;pointer-events:auto}.aark-notification-close{background:none;border:none;font-size:1rem;color:#9ca3af;cursor:pointer;padding:0;line-height:1;flex-shrink:0;transition:color var(--aark-anim);position:relative;z-index:10002;pointer-events:auto}.aark-notification-close:hover{color:#6b7280}.aark-notification-close:focus{outline:2px solid #3b82f6;outline-offset:2px;border-radius:2px}.aark-notification-footer{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1rem;position:relative;z-index:10001;pointer-events:auto}.aark-notification-cancel-button,.aark-notification-confirm-button{padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.875rem;font-weight:500;transition:all .2s;border:none;position:relative;z-index:10001;pointer-events:auto}.aark-notification-cancel-button{border:1px solid #d1d5db;background:#fff;color:#374151}.aark-notification-cancel-button:hover{background:#f9fafb;border-color:#9ca3af}.aark-notification-confirm-button{color:#fff}.aark-notification-confirm-button:hover{opacity:.9}.aark-notification-progress{position:absolute;bottom:0;left:0;height:3px;transform-origin:left;border-radius:0 0 var(--aark-notification-radius) var(--aark-notification-radius)}.aark-notification-success{border-left:4px solid #4ade80}.aark-notification-error{border-left:4px solid #ef4444}.aark-notification-warning{border-left:4px solid #f59e0b}.aark-notification-info{border-left:4px solid #3b82f6}.aark-notification-question{border-left:4px solid #8b5cf6}@keyframes aark-notification-progress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@keyframes notification-fade-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes notification-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-10px)}}@keyframes notification-slide-in-right{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes notification-slide-out-right{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}@keyframes notification-slide-in-left{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}@keyframes notification-slide-out-left{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-100%)}}@keyframes scale-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes slide-down{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-left{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes slide-right{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@media(max-width:768px){.aark-notification-container,.aark-standard-notification{max-width:calc(100vw - 40px);min-width:auto}}@media(max-width:480px){.aark-notification-container{max-width:calc(100vw - 20px)}.aark-standard-notification{max-width:calc(100vw - 20px);min-width:auto}}
@@ -1,9 +1,9 @@
1
- "use strict";var V=Object.defineProperty;var uo=Object.getOwnPropertyDescriptor;var go=Object.getOwnPropertyNames;var vo=Object.prototype.hasOwnProperty;var yo=(e,o)=>{for(var t in o)V(e,t,{get:o[t],enumerable:!0})},ko=(e,o,t,a)=>{if(o&&typeof o=="object"||typeof o=="function")for(let n of go(o))!vo.call(e,n)&&n!==t&&V(e,n,{get:()=>o[n],enumerable:!(a=uo(o,n))||a.enumerable});return e};var ho=e=>ko(V({},"__esModule",{value:!0}),e);var zo={};yo(zo,{Modal:()=>W,ModalProvider:()=>H,Notification:()=>L,aark:()=>po,getAarkModalTheme:()=>_,resetAarkModalTheme:()=>Z,setAarkModalTheme:()=>D,useModal:()=>z});module.exports=ho(zo);var ro=require("react"),lo=require("react-dom/client");var S=require("react");function z(){let[e,o]=(0,S.useState)(!1),[t,a]=(0,S.useState)(null),n=(0,S.useCallback)(()=>{C.close()},[]);return(0,S.useEffect)(()=>{let i=s=>{switch(s.type){case"open":o(!0),a(s.config||null);break;case"close":o(!1),a(null);break;case"beforeClose":break}},u=C.subscribe(i);return o(C.isOpen()),a(C.getCurrentConfig()),u},[]),{isOpen:e,config:t,close:n}}var T=require("react"),to=require("react-dom");var w=require("react"),O=require("react/jsx-runtime"),G={white:"#FFFFFF",black:"#0B071A"},J=(0,w.memo)(({name:e,color:o="black",style:t,className:a="",noHoverEffect:n=!1,onClick:i,size:u=24,"aria-label":s,title:x})=>{let m=(0,w.useMemo)(()=>String(u),[u]),f=(0,w.useMemo)(()=>G[o]?G[o]:(o.startsWith("#"),o),[o]),v=(0,w.useMemo)(()=>{let d=f;return e==="close"?(0,O.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:m,height:m,viewBox:"0 0 16 16",fill:"none",children:(0,O.jsx)("path",{d:"M15.281 14.2198C15.3507 14.2895 15.406 14.3722 15.4437 14.4632C15.4814 14.5543 15.5008 14.6519 15.5008 14.7504C15.5008 14.849 15.4814 14.9465 15.4437 15.0376C15.406 15.1286 15.3507 15.2114 15.281 15.281C15.2114 15.3507 15.1286 15.406 15.0376 15.4437C14.9465 15.4814 14.849 15.5008 14.7504 15.5008C14.6519 15.5008 14.5543 15.4814 14.4632 15.4437C14.3722 15.406 14.2895 15.3507 14.2198 15.281L8.00042 9.06073L1.78104 15.281C1.64031 15.4218 1.44944 15.5008 1.25042 15.5008C1.05139 15.5008 0.860523 15.4218 0.719792 15.281C0.579062 15.1403 0.5 14.9494 0.5 14.7504C0.5 14.5514 0.579062 14.3605 0.719792 14.2198L6.9401 8.00042L0.719792 1.78104C0.579062 1.64031 0.5 1.44944 0.5 1.25042C0.5 1.05139 0.579062 0.860523 0.719792 0.719792C0.860523 0.579062 1.05139 0.5 1.25042 0.5C1.44944 0.5 1.64031 0.579062 1.78104 0.719792L8.00042 6.9401L14.2198 0.719792C14.3605 0.579062 14.5514 0.5 14.7504 0.5C14.9494 0.5 15.1403 0.579062 15.281 0.719792C15.4218 0.860523 15.5008 1.05139 15.5008 1.25042C15.5008 1.44944 15.4218 1.64031 15.281 1.78104L9.06073 8.00042L15.281 14.2198Z",fill:d})}):null},[e,f,m]),c=(0,w.useMemo)(()=>{let d={};return s?d["aria-label"]=s:d["aria-label"]=`${e} icon`,x&&(d.title=x),d.role=i?"button":"img",d},[s,x,e,i]),p=(0,w.useMemo)(()=>{if(i)return d=>{(d.key==="Enter"||d.key===" ")&&(d.preventDefault(),i())}},[i]);return(0,O.jsx)("i",{className:`
1
+ "use strict";var j=Object.defineProperty;var go=Object.getOwnPropertyDescriptor;var yo=Object.getOwnPropertyNames;var vo=Object.prototype.hasOwnProperty;var ko=(e,o)=>{for(var t in o)j(e,t,{get:o[t],enumerable:!0})},Co=(e,o,t,a)=>{if(o&&typeof o=="object"||typeof o=="function")for(let n of yo(o))!vo.call(e,n)&&n!==t&&j(e,n,{get:()=>o[n],enumerable:!(a=go(o,n))||a.enumerable});return e};var ho=e=>Co(j({},"__esModule",{value:!0}),e);var Oo={};ko(Oo,{Modal:()=>O,ModalProvider:()=>L,Notification:()=>W,aark:()=>uo,getAarkModalTheme:()=>Z,resetAarkModalTheme:()=>D,setAarkModalTheme:()=>K,useModal:()=>F});module.exports=ho(Oo);var lo=require("react"),so=require("react-dom/client");var S=require("react");function F(){let[e,o]=(0,S.useState)(!1),[t,a]=(0,S.useState)(null),n=(0,S.useCallback)(()=>{h.close()},[]);return(0,S.useEffect)(()=>{let l=s=>{switch(s.type){case"open":o(!0),a(s.config||null);break;case"close":o(!1),a(null);break;case"beforeClose":break}},u=h.subscribe(l);return o(h.isOpen()),a(h.getCurrentConfig()),u},[]),{isOpen:e,config:t,close:n}}var w=require("react"),ao=require("react-dom");var N=require("react"),z=require("react/jsx-runtime"),J={white:"#FFFFFF",black:"#0B071A"},Q=(0,N.memo)(({name:e,color:o="black",style:t,className:a="",noHoverEffect:n=!1,onClick:l,size:u=24,"aria-label":s,title:x})=>{let m=(0,N.useMemo)(()=>String(u),[u]),f=(0,N.useMemo)(()=>J[o]?J[o]:(o.startsWith("#"),o),[o]),y=(0,N.useMemo)(()=>{let r=f;return e==="close"?(0,z.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:m,height:m,viewBox:"0 0 16 16",fill:"none",children:(0,z.jsx)("path",{d:"M15.281 14.2198C15.3507 14.2895 15.406 14.3722 15.4437 14.4632C15.4814 14.5543 15.5008 14.6519 15.5008 14.7504C15.5008 14.849 15.4814 14.9465 15.4437 15.0376C15.406 15.1286 15.3507 15.2114 15.281 15.281C15.2114 15.3507 15.1286 15.406 15.0376 15.4437C14.9465 15.4814 14.849 15.5008 14.7504 15.5008C14.6519 15.5008 14.5543 15.4814 14.4632 15.4437C14.3722 15.406 14.2895 15.3507 14.2198 15.281L8.00042 9.06073L1.78104 15.281C1.64031 15.4218 1.44944 15.5008 1.25042 15.5008C1.05139 15.5008 0.860523 15.4218 0.719792 15.281C0.579062 15.1403 0.5 14.9494 0.5 14.7504C0.5 14.5514 0.579062 14.3605 0.719792 14.2198L6.9401 8.00042L0.719792 1.78104C0.579062 1.64031 0.5 1.44944 0.5 1.25042C0.5 1.05139 0.579062 0.860523 0.719792 0.719792C0.860523 0.579062 1.05139 0.5 1.25042 0.5C1.44944 0.5 1.64031 0.579062 1.78104 0.719792L8.00042 6.9401L14.2198 0.719792C14.3605 0.579062 14.5514 0.5 14.7504 0.5C14.9494 0.5 15.1403 0.579062 15.281 0.719792C15.4218 0.860523 15.5008 1.05139 15.5008 1.25042C15.5008 1.44944 15.4218 1.64031 15.281 1.78104L9.06073 8.00042L15.281 14.2198Z",fill:r})}):null},[e,f,m]),c=(0,N.useMemo)(()=>{let r={};return s?r["aria-label"]=s:r["aria-label"]=`${e} icon`,x&&(r.title=x),r.role=l?"button":"img",r},[s,x,e,l]),p=(0,N.useMemo)(()=>{if(l)return r=>{(r.key==="Enter"||r.key===" ")&&(r.preventDefault(),l())}},[l]);return(0,z.jsx)("i",{className:`
2
2
  inline-flex items-center justify-center bg-transparent outline-none border-none
3
- ${!n&&i&&"hover:opacity-80 cursor-pointer transition-opacity duration-200"}
4
- ${i&&"focus:outline-2 focus:outline-blue-500 focus:outline-offset-2"}
3
+ ${!n&&l&&"hover:opacity-80 cursor-pointer transition-opacity duration-200"}
4
+ ${l&&"focus:outline-2 focus:outline-blue-500 focus:outline-offset-2"}
5
5
  ${a}
6
- `.trim(),style:t,onClick:i,onKeyDown:p,tabIndex:i?0:void 0,...c,children:v})});J.displayName="Icon";var j=J;var U=require("react"),k=require("react/jsx-runtime"),Co={success:"\u2713",error:"\u2715",warning:"\u26A0",info:"\u24D8",question:"?"},Q={success:"#4ade80",error:"#ef4444",warning:"#f59e0b",info:"#3b82f6",question:"#8b5cf6"},Mo=({props:e,onClose:o})=>{let{title:t,text:a,type:n="info",cancelText:i="Cancel",confirmText:u="OK",onCancel:s,onConfirm:x,icon:m,html:f,showCancelButton:v=!1,showConfirmButton:c=!0,reverseButtons:p=!1,width:d="auto",fullWidth:r=!1,customClass:y={}}=e,h=()=>{s?.(),o()},q=()=>{x?.(),o()},F=(0,U.useMemo)(()=>m?typeof m=="string"?(0,k.jsx)("span",{children:m}):m:(0,k.jsx)("span",{style:{color:Q[n]},children:Co[n]}),[m,n]),l=p?["confirm","cancel"]:["cancel","confirm"],E=(0,U.useMemo)(()=>{let N={};return r?(N.width="calc(100vw - 20px)",N.maxWidth="calc(100vw - 20px)"):typeof d=="number"?N.width=`${d}px`:N.width=d,N},[d,r]);return(0,k.jsxs)("div",{className:`aark-standard-modal ${y.popup||""}`,style:E,children:[(0,k.jsxs)("div",{className:`aark-modal-content ${y.content||""}`,children:[F&&(0,k.jsx)("div",{className:`aark-modal-icon ${y.icon||""}`,children:F}),t&&(0,k.jsx)("div",{className:`aark-modal-header ${y.header||""}`,children:(0,k.jsx)("h2",{className:`aark-modal-title ${y.title||""}`,children:t})}),f?typeof f=="string"?(0,k.jsx)("div",{dangerouslySetInnerHTML:{__html:f}}):(0,k.jsx)("div",{children:f}):a?(0,k.jsx)("p",{children:a}):null]}),(v||c)&&(0,k.jsx)("div",{className:`aark-modal-footer ${y.actions||""}`,children:l.map(N=>N==="cancel"&&v?(0,k.jsx)("button",{onClick:h,className:`aark-modal-cancel-button ${y.cancelButton||""}`,children:i},"cancel"):N==="confirm"&&c?(0,k.jsx)("button",{onClick:q,className:`aark-modal-confirm-button ${y.confirmButton||""}`,style:{background:Q[n]},children:u},"confirm"):null)})]})},oo=Mo;var M=null,R=()=>(M||(M=document.getElementById("aark-react-modalify-root"),M||(M=document.createElement("div"),M.id="aark-react-modalify-root",M.style.cssText=`
6
+ `.trim(),style:t,onClick:l,onKeyDown:p,tabIndex:l?0:void 0,...c,children:y})});Q.displayName="Icon";var U=Q;var X=require("react"),k=require("react/jsx-runtime"),Mo={success:"\u2713",error:"\u2715",warning:"\u26A0",info:"\u24D8",question:"?"},oo={success:"#4ade80",error:"#ef4444",warning:"#f59e0b",info:"#3b82f6",question:"#8b5cf6"},bo=({props:e,onClose:o})=>{let{title:t,text:a,type:n="info",cancelText:l="Cancel",confirmText:u="OK",onCancel:s,onConfirm:x,icon:m,html:f,showCancelButton:y=!1,showConfirmButton:c=!0,reverseButtons:p=!1,width:r="auto",fullWidth:d=!1,customClass:v={}}=e,C=()=>{s?.(),o()},_=()=>{x?.(),o()},B=(0,X.useMemo)(()=>m?typeof m=="string"?(0,k.jsx)("span",{children:m}):m:(0,k.jsx)("span",{style:{color:oo[n]},children:Mo[n]}),[m,n]),q=p?["confirm","cancel"]:["cancel","confirm"],V=(0,X.useMemo)(()=>{let i={};return d?(i.width="calc(100vw - 20px)",i.maxWidth="calc(100vw - 20px)"):typeof r=="number"?i.width=`${r}px`:i.width=r,i},[r,d]);return(0,k.jsxs)("div",{className:`aark-standard-modal ${v.popup||""}`,style:V,children:[(0,k.jsxs)("div",{className:`aark-modal-content ${v.content||""}`,children:[B&&(0,k.jsx)("div",{className:`aark-modal-icon ${v.icon||""}`,children:B}),t&&(0,k.jsx)("div",{className:`aark-modal-header ${v.header||""}`,children:(0,k.jsx)("h2",{className:`aark-modal-title ${v.title||""}`,children:t})}),f?typeof f=="string"?(0,k.jsx)("div",{dangerouslySetInnerHTML:{__html:f}}):(0,k.jsx)("div",{children:f}):a?(0,k.jsx)("p",{children:a}):null]}),(y||c)&&(0,k.jsx)("div",{className:`aark-modal-footer ${v.actions||""}`,children:q.map(i=>i==="cancel"&&y?(0,k.jsx)("button",{onClick:C,className:`aark-modal-cancel-button ${v.cancelButton||""}`,children:l},"cancel"):i==="confirm"&&c?(0,k.jsx)("button",{onClick:_,className:`aark-modal-confirm-button ${v.confirmButton||""}`,style:{background:oo[n]},children:u},"confirm"):null)})]})},eo=bo;var M=null,R=()=>(M||(M=document.getElementById("aark-react-modalify-root"),M||(M=document.createElement("div"),M.id="aark-react-modalify-root",M.style.cssText=`
7
7
  position: fixed;
8
8
  top: 0;
9
9
  left: 0;
@@ -11,4 +11,4 @@
11
11
  height: 100%;
12
12
  pointer-events: none;
13
13
  z-index: var(--aark-modal-z, 9999);
14
- `,document.body.appendChild(M))),M),eo=()=>{M&&M.children.length===0&&(M.remove(),M=null)};var b=require("react/jsx-runtime"),bo={sm:"400px",md:"550px",lg:"700px",xl:"900px",full:"calc(100vw - 32px)"},xo=({config:e,onClose:o})=>{let{content:t,props:a,options:n={}}=e,{position:i="center",showCloseIcon:u=!0,className:s="",overlayClassName:x="",preventEscClose:m=!1,preventOverlayClose:f=!1,width:v,maxWidth:c,size:p}=n;(0,T.useEffect)(()=>{if(m)return;let l=E=>{E.key==="Escape"&&o()};return document.addEventListener("keydown",l),()=>document.removeEventListener("keydown",l)},[o,m]);let d=(0,T.useCallback)(l=>{l.target===l.currentTarget&&!f&&o()},[o,f]),r=(0,T.useCallback)(l=>{l.stopPropagation(),o()},[o]),y=(0,T.useMemo)(()=>{let l={};if(v!==void 0&&(l.width=typeof v=="number"?`${v}px`:v,c===void 0&&(l.maxWidth=l.width)),c!==void 0)l.maxWidth=typeof c=="number"?`${c}px`:c;else if(p){let E=bo[p];p==="full"&&(l.width=l.width??E),l.maxWidth=E}return l},[v,c,p]),h=`aark-modal-container ${i} ${s}`.trim(),q=R(),F=()=>a?(0,b.jsxs)("div",{className:h,style:y,role:"dialog","aria-modal":"true",onClick:l=>l.stopPropagation(),children:[u&&(0,b.jsx)("button",{onClick:r,className:"aark-modal-close","aria-label":"Close Modal",type:"button",children:(0,b.jsx)(j,{name:"close",size:12})}),(0,b.jsx)("div",{className:"aark-modal-wrapper",children:(0,b.jsx)(oo,{props:a,onClose:o})})]}):t?(0,b.jsx)("div",{className:h,style:y,role:"dialog","aria-modal":"true",onClick:l=>l.stopPropagation(),children:(0,b.jsxs)("div",{className:"aark-modal-body",children:[u&&(0,b.jsx)("button",{onClick:r,className:"aark-modal-close","aria-label":"Close Modal",type:"button",children:(0,b.jsx)(j,{name:"close",size:12})}),t]})}):null;return(0,to.createPortal)((0,b.jsx)("div",{className:`aark-modal-overlay ${x}`.trim(),onClick:d,style:{position:"fixed",inset:0,zIndex:"var(--aark-modal-z, 9999)",background:"var(--aark-modal-overlay-bg)",backdropFilter:"blur(var(--aark-modal-overlay-blur, 0px))",WebkitBackdropFilter:"blur(var(--aark-modal-overlay-blur, 0px))",animation:"fade-in var(--aark-anim)",display:"flex",alignItems:i==="center"?"center":i.startsWith("top")?"flex-start":"flex-end",justifyContent:i.endsWith("center")?"center":i.endsWith("right")?"flex-end":"flex-start",padding:"1rem",overflowY:"auto",boxSizing:"border-box"},children:F()}),q)},W=xo;var A=require("react"),io=require("react-dom");var $=require("react"),g=require("react/jsx-runtime"),ao={success:"#4ade80",error:"#ef4444",warning:"#f59e0b",info:"#3b82f6",question:"#8b5cf6"},No={success:"\u2713",error:"\u2715",warning:"\u26A0",info:"\u24D8",question:"?"},wo=({props:e,onClose:o})=>{let{title:t,text:a,type:n="info",icon:i,html:u,timer:s=5e3,showCloseButton:x=!0,clickToClose:m=!0,width:f,fullWidth:v=!1,padding:c,customClass:p={}}=e;(0,$.useEffect)(()=>{if(s&&s>0){let h=setTimeout(o,s);return()=>clearTimeout(h)}},[s,o]);let d=()=>{m&&o()},r=(0,$.useMemo)(()=>i?typeof i=="string"?(0,g.jsx)("span",{children:i}):i:(0,g.jsx)("span",{style:{color:ao[n]},children:No[n]}),[i,n]),y=(0,$.useMemo)(()=>{let h={};return c!==void 0&&(h.padding=typeof c=="number"?`${c}px`:c),v?(h.width="calc(100vw - 40px)",h.maxWidth="calc(100vw - 40px)"):f!==void 0&&(h.width=typeof f=="number"?`${f}px`:f),h},[f,v,c]);return(0,g.jsxs)("div",{className:`aark-standard-notification aark-notification-${n} ${p.popup||""}`,style:y,onClick:d,children:[s&&s>0&&(0,g.jsx)("div",{className:"aark-notification-progress",style:{background:ao[n],animation:`aark-notification-progress ${s}ms linear forwards`}}),(0,g.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:"0.75rem"},children:[r&&(0,g.jsx)("div",{className:`aark-notification-icon ${p.icon||""}`,children:r}),(0,g.jsxs)("div",{style:{flex:1,minWidth:0},children:[t&&(0,g.jsx)("div",{className:`aark-notification-header ${p.header||""}`,children:(0,g.jsx)("h4",{className:`aark-notification-title ${p.title||""}`,children:t})}),(0,g.jsx)("div",{className:`aark-notification-content ${p.content||""}`,style:{marginTop:t?"0.25rem":0},children:u?typeof u=="string"?(0,g.jsx)("div",{dangerouslySetInnerHTML:{__html:u}}):(0,g.jsx)("div",{children:u}):a?(0,g.jsx)("p",{children:a}):null})]}),x&&(0,g.jsx)("button",{onClick:h=>{h.stopPropagation(),o()},className:`aark-notification-close ${p.closeButton||""}`,"aria-label":"Close notification",type:"button",children:"\xD7"})]})]})},no=wo;var P=require("react/jsx-runtime"),Po=({config:e,onClose:o})=>{let{content:t,props:a,options:n={}}=e,{position:i="top-right",showCloseIcon:u=!0,autoCloseTime:s=5e3,className:x="",preventEscClose:m=!1}=n;(0,A.useEffect)(()=>{if(s&&!a){let r=setTimeout(o,s);return()=>clearTimeout(r)}},[s,o,a]),(0,A.useEffect)(()=>{if(m)return;let r=y=>{y.key==="Escape"&&o()};return document.addEventListener("keydown",r),()=>document.removeEventListener("keydown",r)},[o,m]);let f=(0,A.useCallback)(r=>{r.stopPropagation(),o()},[o]),v=`aark-notification-container ${i} ${x}`.trim(),c=R(),p=()=>{let r={position:"fixed",zIndex:1e4,margin:"1rem"};switch(i){case"top-left":return{...r,top:0,left:0};case"top-center":return{...r,top:0,left:"50%",transform:"translateX(-50%)"};case"top-right":return{...r,top:0,right:0};case"bottom-left":return{...r,bottom:0,left:0};case"bottom-center":return{...r,bottom:0,left:"50%",transform:"translateX(-50%)"};case"bottom-right":return{...r,bottom:0,right:0};default:return{...r,top:0,right:0}}},d=()=>a?(0,P.jsx)("div",{className:"aark-notification-wrapper",children:(0,P.jsx)(no,{props:a,onClose:o})}):t?(0,P.jsxs)("div",{className:v,role:"alert","aria-live":"polite",children:[u&&(0,P.jsx)("button",{onClick:f,className:"aark-notification-close","aria-label":"Close notification",type:"button",children:"\xD7"}),(0,P.jsx)("div",{className:"aark-notification-body",children:t})]}):null;return(0,io.createPortal)((0,P.jsx)("div",{style:p(),children:d()}),c)},L=Po;var X=require("react/jsx-runtime"),Eo=()=>{let{isOpen:e,config:o,close:t}=z();return!e||!o?null:o.mode==="modal"?(0,X.jsx)(W,{config:o,onClose:t}):o.mode==="notification"?(0,X.jsx)(L,{config:o,onClose:t}):null},H=Eo;var Y=new Set,B=null,I=null;function so(){if(I)return;let e=R();I=(0,lo.createRoot)(e),I.render((0,ro.createElement)(H))}function So(e){return Y.add(e),()=>Y.delete(e)}function K(e,o){let t={type:e,config:o};Y.forEach(a=>a(t))}function co(e,o){so();let t,a;e&&typeof e=="object"&&!("$$typeof"in e)&&!Array.isArray(e)?(a=e,t=void 0):(t=e,a=void 0);let n={content:t,props:a,mode:"modal",options:Object.assign({position:"center",showCloseIcon:!0,preventEscClose:!1,preventOverlayClose:!1},o)};B=n,K("open",n)}function To(e,o){so();let t,a;e&&typeof e=="object"&&!("$$typeof"in e)&&!Array.isArray(e)?(a=e,t=void 0):(t=e,a=void 0);let n={content:t,props:a,mode:"notification",options:Object.assign({position:"top-right",showCloseIcon:!0,autoCloseTime:5e3,preventEscClose:!1},o)};B=n,K("open",n)}function Bo(e,o){co(e,o)}function fo(){B&&(K("beforeClose",B),B=null,K("close"))}function Ro(){return B!==null}function Io(){return B}function $o(){fo()}function Ao(){I&&(I.unmount(),I=null),eo()}var C={subscribe:So,fire:Bo,fireModal:co,fireNotification:To,close:fo,isOpen:Ro,getCurrentConfig:Io,closeAll:$o,cleanup:Ao};var mo={overlayBackground:"--aark-modal-overlay-bg",overlayBlur:"--aark-modal-overlay-blur",modalBackground:"--aark-modal-bg",modalBorderRadius:"--aark-modal-radius",modalShadow:"--aark-modal-shadow",modalPadding:"--aark-modal-pad",modalMaxWidth:"--aark-modal-max-width",modalZIndex:"--aark-modal-z",closeButtonColor:"--aark-close-color",closeButtonHoverBackground:"--aark-close-hover",closeButtonHoverColor:"--aark-close-hover-color",closeButtonFocusOutline:"--aark-close-focus-outline",animationDuration:"--aark-anim",notificationBackground:"--aark-notification-bg",notificationBorderRadius:"--aark-notification-radius",notificationShadow:"--aark-notification-shadow",notificationPadding:"--aark-notification-pad",notificationZIndex:"--aark-notification-z"};function D(e){let o=document.documentElement;Object.keys(e).forEach(t=>{let a=e[t],n=mo[t];a!==void 0&&n&&o.style.setProperty(n,String(a))})}function Z(){let e=document.documentElement;Object.values(mo).forEach(o=>{e.style.removeProperty(o)})}function _(){let e=document.documentElement,o=getComputedStyle(e),t=a=>o.getPropertyValue(a).trim()||void 0;return{overlayBackground:t("--aark-modal-overlay-bg"),overlayBlur:t("--aark-modal-overlay-blur"),modalBackground:t("--aark-modal-bg"),modalBorderRadius:t("--aark-modal-radius"),modalShadow:t("--aark-modal-shadow"),modalPadding:t("--aark-modal-pad"),modalMaxWidth:t("--aark-modal-max-width"),modalZIndex:parseInt(t("--aark-modal-z")??"0")||void 0,closeButtonColor:t("--aark-close-color"),closeButtonHoverBackground:t("--aark-close-hover"),closeButtonHoverColor:t("--aark-close-hover-color"),closeButtonFocusOutline:t("--aark-close-focus-outline"),animationDuration:t("--aark-anim"),notificationBackground:t("--aark-notification-bg"),notificationBorderRadius:t("--aark-notification-radius"),notificationShadow:t("--aark-notification-shadow"),notificationPadding:t("--aark-notification-pad"),notificationZIndex:parseInt(t("--aark-notification-z")??"0")||void 0}}var Fo={fire:(e,o)=>C.fire(e,o),modal:(e,o)=>C.fireModal(e,o),notification:(e,o)=>C.fireNotification(e,o),close:()=>C.close(),isOpen:()=>C.isOpen(),closeAll:()=>C.closeAll(),setTheme:e=>D(e),resetTheme:()=>Z(),getTheme:()=>_()},po=Fo;0&&(module.exports={Modal,ModalProvider,Notification,aark,getAarkModalTheme,resetAarkModalTheme,setAarkModalTheme,useModal});
14
+ `,document.body.appendChild(M))),M),to=()=>{M&&M.children.length===0&&(M.remove(),M=null)};var b=require("react/jsx-runtime"),xo={sm:"400px",md:"550px",lg:"700px",xl:"900px",full:"calc(100vw - 32px)"},No=({config:e,onClose:o})=>{let{content:t,props:a,options:n={}}=e,{position:l="center",showCloseIcon:u=!0,className:s="",overlayClassName:x="",preventEscClose:m=!1,preventOverlayClose:f=!1,width:y,maxWidth:c,size:p,bodyPadding:r}=n;(0,w.useEffect)(()=>{if(m)return;let i=I=>{I.key==="Escape"&&o()};return document.addEventListener("keydown",i),()=>document.removeEventListener("keydown",i)},[o,m]);let d=(0,w.useCallback)(i=>{i.target===i.currentTarget&&!f&&o()},[o,f]),v=(0,w.useCallback)(i=>{i.stopPropagation(),o()},[o]),C=(0,w.useMemo)(()=>{let i={};if(y!==void 0&&(i.width=typeof y=="number"?`${y}px`:y,c===void 0&&(i.maxWidth=i.width)),c!==void 0)i.maxWidth=typeof c=="number"?`${c}px`:c;else if(p){let I=xo[p];p==="full"&&(i.width=i.width??I),i.maxWidth=I}return i},[y,c,p]),_=(0,w.useMemo)(()=>r===void 0||r===!0?{}:r===!1||r===0?{padding:0}:typeof r=="number"?{padding:`${r}px`}:{padding:r},[r]),B=`aark-modal-container ${l} ${s}`.trim(),q=R(),V=()=>a?(0,b.jsxs)("div",{className:B,style:C,role:"dialog","aria-modal":"true",onClick:i=>i.stopPropagation(),children:[u&&(0,b.jsx)("button",{onClick:v,className:"aark-modal-close","aria-label":"Close Modal",type:"button",children:(0,b.jsx)(U,{name:"close",size:12})}),(0,b.jsx)("div",{className:"aark-modal-wrapper",children:(0,b.jsx)(eo,{props:a,onClose:o})})]}):t?(0,b.jsx)("div",{className:B,style:C,role:"dialog","aria-modal":"true",onClick:i=>i.stopPropagation(),children:(0,b.jsxs)("div",{className:"aark-modal-body",style:_,children:[u&&(0,b.jsx)("button",{onClick:v,className:"aark-modal-close","aria-label":"Close Modal",type:"button",children:(0,b.jsx)(U,{name:"close",size:12})}),t]})}):null;return(0,ao.createPortal)((0,b.jsx)("div",{className:`aark-modal-overlay ${x}`.trim(),onClick:d,style:{position:"fixed",inset:0,zIndex:"var(--aark-modal-z, 9999)",background:"var(--aark-modal-overlay-bg)",backdropFilter:"blur(var(--aark-modal-overlay-blur, 0px))",WebkitBackdropFilter:"blur(var(--aark-modal-overlay-blur, 0px))",animation:"fade-in var(--aark-anim)",display:"flex",alignItems:l==="center"?"center":l.startsWith("top")?"flex-start":"flex-end",justifyContent:l.endsWith("center")?"center":l.endsWith("right")?"flex-end":"flex-start",padding:"1rem",overflowY:"auto",boxSizing:"border-box"},children:V()}),q)},O=No;var A=require("react"),ro=require("react-dom");var $=require("react"),g=require("react/jsx-runtime"),no={success:"#4ade80",error:"#ef4444",warning:"#f59e0b",info:"#3b82f6",question:"#8b5cf6"},wo={success:"\u2713",error:"\u2715",warning:"\u26A0",info:"\u24D8",question:"?"},Po=({props:e,onClose:o})=>{let{title:t,text:a,type:n="info",icon:l,html:u,timer:s=5e3,showCloseButton:x=!0,clickToClose:m=!0,width:f,fullWidth:y=!1,padding:c,customClass:p={}}=e;(0,$.useEffect)(()=>{if(s&&s>0){let C=setTimeout(o,s);return()=>clearTimeout(C)}},[s,o]);let r=()=>{m&&o()},d=(0,$.useMemo)(()=>l?typeof l=="string"?(0,g.jsx)("span",{children:l}):l:(0,g.jsx)("span",{style:{color:no[n]},children:wo[n]}),[l,n]),v=(0,$.useMemo)(()=>{let C={};return c!==void 0&&(C.padding=typeof c=="number"?`${c}px`:c),y?(C.width="calc(100vw - 40px)",C.maxWidth="calc(100vw - 40px)"):f!==void 0&&(C.width=typeof f=="number"?`${f}px`:f),C},[f,y,c]);return(0,g.jsxs)("div",{className:`aark-standard-notification aark-notification-${n} ${p.popup||""}`,style:v,onClick:r,children:[s&&s>0&&(0,g.jsx)("div",{className:"aark-notification-progress",style:{background:no[n],animation:`aark-notification-progress ${s}ms linear forwards`}}),(0,g.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:"0.75rem"},children:[d&&(0,g.jsx)("div",{className:`aark-notification-icon ${p.icon||""}`,children:d}),(0,g.jsxs)("div",{style:{flex:1,minWidth:0},children:[t&&(0,g.jsx)("div",{className:`aark-notification-header ${p.header||""}`,children:(0,g.jsx)("h4",{className:`aark-notification-title ${p.title||""}`,children:t})}),(0,g.jsx)("div",{className:`aark-notification-content ${p.content||""}`,style:{marginTop:t?"0.25rem":0},children:u?typeof u=="string"?(0,g.jsx)("div",{dangerouslySetInnerHTML:{__html:u}}):(0,g.jsx)("div",{children:u}):a?(0,g.jsx)("p",{children:a}):null})]}),x&&(0,g.jsx)("button",{onClick:C=>{C.stopPropagation(),o()},className:`aark-notification-close ${p.closeButton||""}`,"aria-label":"Close notification",type:"button",children:"\xD7"})]})]})},io=Po;var P=require("react/jsx-runtime"),So=({config:e,onClose:o})=>{let{content:t,props:a,options:n={}}=e,{position:l="top-right",showCloseIcon:u=!0,autoCloseTime:s=5e3,className:x="",preventEscClose:m=!1}=n;(0,A.useEffect)(()=>{if(s&&!a){let d=setTimeout(o,s);return()=>clearTimeout(d)}},[s,o,a]),(0,A.useEffect)(()=>{if(m)return;let d=v=>{v.key==="Escape"&&o()};return document.addEventListener("keydown",d),()=>document.removeEventListener("keydown",d)},[o,m]);let f=(0,A.useCallback)(d=>{d.stopPropagation(),o()},[o]),y=`aark-notification-container ${l} ${x}`.trim(),c=R(),p=()=>{let d={position:"fixed",zIndex:1e4,margin:"1rem"};switch(l){case"top-left":return{...d,top:0,left:0};case"top-center":return{...d,top:0,left:"50%",transform:"translateX(-50%)"};case"top-right":return{...d,top:0,right:0};case"bottom-left":return{...d,bottom:0,left:0};case"bottom-center":return{...d,bottom:0,left:"50%",transform:"translateX(-50%)"};case"bottom-right":return{...d,bottom:0,right:0};default:return{...d,top:0,right:0}}},r=()=>a?(0,P.jsx)("div",{className:"aark-notification-wrapper",children:(0,P.jsx)(io,{props:a,onClose:o})}):t?(0,P.jsxs)("div",{className:y,role:"alert","aria-live":"polite",children:[u&&(0,P.jsx)("button",{onClick:f,className:"aark-notification-close","aria-label":"Close notification",type:"button",children:"\xD7"}),(0,P.jsx)("div",{className:"aark-notification-body",children:t})]}):null;return(0,ro.createPortal)((0,P.jsx)("div",{style:p(),children:r()}),c)},W=So;var Y=require("react/jsx-runtime"),Eo=()=>{let{isOpen:e,config:o,close:t}=F();return!e||!o?null:o.mode==="modal"?(0,Y.jsx)(O,{config:o,onClose:t}):o.mode==="notification"?(0,Y.jsx)(W,{config:o,onClose:t}):null},L=Eo;var G=new Set,E=null,T=null;function co(){if(T)return;let e=R();T=(0,so.createRoot)(e),T.render((0,lo.createElement)(L))}function Ro(e){return G.add(e),()=>G.delete(e)}function H(e,o){let t={type:e,config:o};G.forEach(a=>a(t))}function fo(e,o){co();let t,a;e&&typeof e=="object"&&!("$$typeof"in e)&&!Array.isArray(e)?(a=e,t=void 0):(t=e,a=void 0);let n={content:t,props:a,mode:"modal",options:Object.assign({position:"center",showCloseIcon:!0,preventEscClose:!1,preventOverlayClose:!1},o)};E=n,H("open",n)}function To(e,o){co();let t,a;e&&typeof e=="object"&&!("$$typeof"in e)&&!Array.isArray(e)?(a=e,t=void 0):(t=e,a=void 0);let n={content:t,props:a,mode:"notification",options:Object.assign({position:"top-right",showCloseIcon:!0,autoCloseTime:5e3,preventEscClose:!1},o)};E=n,H("open",n)}function Bo(e,o){fo(e,o)}function mo(){E&&(H("beforeClose",E),E=null,H("close"))}function Io(){return E!==null}function $o(){return E}function Ao(){mo()}function Fo(){T&&(T.unmount(),T=null),to()}var h={subscribe:Ro,fire:Bo,fireModal:fo,fireNotification:To,close:mo,isOpen:Io,getCurrentConfig:$o,closeAll:Ao,cleanup:Fo};var po={overlayBackground:"--aark-modal-overlay-bg",overlayBlur:"--aark-modal-overlay-blur",modalBackground:"--aark-modal-bg",modalBorderRadius:"--aark-modal-radius",modalShadow:"--aark-modal-shadow",modalPadding:"--aark-modal-pad",modalMaxWidth:"--aark-modal-max-width",modalZIndex:"--aark-modal-z",closeButtonColor:"--aark-close-color",closeButtonHoverBackground:"--aark-close-hover",closeButtonHoverColor:"--aark-close-hover-color",closeButtonFocusOutline:"--aark-close-focus-outline",animationDuration:"--aark-anim",notificationBackground:"--aark-notification-bg",notificationBorderRadius:"--aark-notification-radius",notificationShadow:"--aark-notification-shadow",notificationPadding:"--aark-notification-pad",notificationZIndex:"--aark-notification-z"};function K(e){let o=document.documentElement;Object.keys(e).forEach(t=>{let a=e[t],n=po[t];a!==void 0&&n&&o.style.setProperty(n,String(a))})}function D(){let e=document.documentElement;Object.values(po).forEach(o=>{e.style.removeProperty(o)})}function Z(){let e=document.documentElement,o=getComputedStyle(e),t=a=>o.getPropertyValue(a).trim()||void 0;return{overlayBackground:t("--aark-modal-overlay-bg"),overlayBlur:t("--aark-modal-overlay-blur"),modalBackground:t("--aark-modal-bg"),modalBorderRadius:t("--aark-modal-radius"),modalShadow:t("--aark-modal-shadow"),modalPadding:t("--aark-modal-pad"),modalMaxWidth:t("--aark-modal-max-width"),modalZIndex:parseInt(t("--aark-modal-z")??"0")||void 0,closeButtonColor:t("--aark-close-color"),closeButtonHoverBackground:t("--aark-close-hover"),closeButtonHoverColor:t("--aark-close-hover-color"),closeButtonFocusOutline:t("--aark-close-focus-outline"),animationDuration:t("--aark-anim"),notificationBackground:t("--aark-notification-bg"),notificationBorderRadius:t("--aark-notification-radius"),notificationShadow:t("--aark-notification-shadow"),notificationPadding:t("--aark-notification-pad"),notificationZIndex:parseInt(t("--aark-notification-z")??"0")||void 0}}var zo={fire:(e,o)=>h.fire(e,o),modal:(e,o)=>h.fireModal(e,o),notification:(e,o)=>h.fireNotification(e,o),close:()=>h.close(),isOpen:()=>h.isOpen(),closeAll:()=>h.closeAll(),setTheme:e=>K(e),resetTheme:()=>D(),getTheme:()=>Z()},uo=zo;0&&(module.exports={Modal,ModalProvider,Notification,aark,getAarkModalTheme,resetAarkModalTheme,setAarkModalTheme,useModal});
@@ -82,6 +82,14 @@ interface ModalOptions extends BaseOptions {
82
82
  width?: string | number;
83
83
  /** Explicit max-width (e.g. '600px', '90vw'). Overrides size preset. */
84
84
  maxWidth?: string | number;
85
+ /**
86
+ * Controls padding on the modal body card (component-based modals only).
87
+ * - true / omitted → default CSS var (--aark-modal-pad, 16px)
88
+ * - false | 0 → no padding (useful when header/footer need edge-to-edge borders)
89
+ * - number → px value e.g. 24
90
+ * - string → any CSS value e.g. '8px 16px'
91
+ */
92
+ bodyPadding?: boolean | string | number;
85
93
  }
86
94
  interface NotificationOptions extends BaseOptions {
87
95
  position?: NotificationPosition;
@@ -82,6 +82,14 @@ interface ModalOptions extends BaseOptions {
82
82
  width?: string | number;
83
83
  /** Explicit max-width (e.g. '600px', '90vw'). Overrides size preset. */
84
84
  maxWidth?: string | number;
85
+ /**
86
+ * Controls padding on the modal body card (component-based modals only).
87
+ * - true / omitted → default CSS var (--aark-modal-pad, 16px)
88
+ * - false | 0 → no padding (useful when header/footer need edge-to-edge borders)
89
+ * - number → px value e.g. 24
90
+ * - string → any CSS value e.g. '8px 16px'
91
+ */
92
+ bodyPadding?: boolean | string | number;
85
93
  }
86
94
  interface NotificationOptions extends BaseOptions {
87
95
  position?: NotificationPosition;
@@ -1,9 +1,9 @@
1
- import{createElement as To}from"react";import{createRoot as Bo}from"react-dom/client";import{useEffect as fo,useState as q,useCallback as mo}from"react";function A(){let[e,o]=q(!1),[t,a]=q(null),i=mo(()=>{k.close()},[]);return fo(()=>{let n=s=>{switch(s.type){case"open":o(!0),a(s.config||null);break;case"close":o(!1),a(null);break;case"beforeClose":break}},u=k.subscribe(n);return o(k.isOpen()),a(k.getCurrentConfig()),u},[]),{isOpen:e,config:t,close:i}}import{useEffect as vo,useCallback as Q,useMemo as yo}from"react";import{createPortal as ko}from"react-dom";import{memo as po,useMemo as T}from"react";import{jsx as F}from"react/jsx-runtime";var V={white:"#FFFFFF",black:"#0B071A"},j=po(({name:e,color:o="black",style:t,className:a="",noHoverEffect:i=!1,onClick:n,size:u=24,"aria-label":s,title:C})=>{let m=T(()=>String(u),[u]),f=T(()=>V[o]?V[o]:(o.startsWith("#"),o),[o]),g=T(()=>{let d=f;return e==="close"?F("svg",{xmlns:"http://www.w3.org/2000/svg",width:m,height:m,viewBox:"0 0 16 16",fill:"none",children:F("path",{d:"M15.281 14.2198C15.3507 14.2895 15.406 14.3722 15.4437 14.4632C15.4814 14.5543 15.5008 14.6519 15.5008 14.7504C15.5008 14.849 15.4814 14.9465 15.4437 15.0376C15.406 15.1286 15.3507 15.2114 15.281 15.281C15.2114 15.3507 15.1286 15.406 15.0376 15.4437C14.9465 15.4814 14.849 15.5008 14.7504 15.5008C14.6519 15.5008 14.5543 15.4814 14.4632 15.4437C14.3722 15.406 14.2895 15.3507 14.2198 15.281L8.00042 9.06073L1.78104 15.281C1.64031 15.4218 1.44944 15.5008 1.25042 15.5008C1.05139 15.5008 0.860523 15.4218 0.719792 15.281C0.579062 15.1403 0.5 14.9494 0.5 14.7504C0.5 14.5514 0.579062 14.3605 0.719792 14.2198L6.9401 8.00042L0.719792 1.78104C0.579062 1.64031 0.5 1.44944 0.5 1.25042C0.5 1.05139 0.579062 0.860523 0.719792 0.719792C0.860523 0.579062 1.05139 0.5 1.25042 0.5C1.44944 0.5 1.64031 0.579062 1.78104 0.719792L8.00042 6.9401L14.2198 0.719792C14.3605 0.579062 14.5514 0.5 14.7504 0.5C14.9494 0.5 15.1403 0.579062 15.281 0.719792C15.4218 0.860523 15.5008 1.05139 15.5008 1.25042C15.5008 1.44944 15.4218 1.64031 15.281 1.78104L9.06073 8.00042L15.281 14.2198Z",fill:d})}):null},[e,f,m]),c=T(()=>{let d={};return s?d["aria-label"]=s:d["aria-label"]=`${e} icon`,C&&(d.title=C),d.role=n?"button":"img",d},[s,C,e,n]),p=T(()=>{if(n)return d=>{(d.key==="Enter"||d.key===" ")&&(d.preventDefault(),n())}},[n]);return F("i",{className:`
1
+ import{createElement as To}from"react";import{createRoot as Bo}from"react-dom/client";import{useEffect as po,useState as V,useCallback as uo}from"react";function F(){let[e,o]=V(!1),[t,a]=V(null),l=uo(()=>{k.close()},[]);return po(()=>{let r=s=>{switch(s.type){case"open":o(!0),a(s.config||null);break;case"close":o(!1),a(null);break;case"beforeClose":break}},u=k.subscribe(r);return o(k.isOpen()),a(k.getCurrentConfig()),u},[]),{isOpen:e,config:t,close:l}}import{useEffect as ko,useCallback as oo,useMemo as eo}from"react";import{createPortal as Co}from"react-dom";import{memo as go,useMemo as R}from"react";import{jsx as z}from"react/jsx-runtime";var j={white:"#FFFFFF",black:"#0B071A"},U=go(({name:e,color:o="black",style:t,className:a="",noHoverEffect:l=!1,onClick:r,size:u=24,"aria-label":s,title:h})=>{let m=R(()=>String(u),[u]),f=R(()=>j[o]?j[o]:(o.startsWith("#"),o),[o]),g=R(()=>{let i=f;return e==="close"?z("svg",{xmlns:"http://www.w3.org/2000/svg",width:m,height:m,viewBox:"0 0 16 16",fill:"none",children:z("path",{d:"M15.281 14.2198C15.3507 14.2895 15.406 14.3722 15.4437 14.4632C15.4814 14.5543 15.5008 14.6519 15.5008 14.7504C15.5008 14.849 15.4814 14.9465 15.4437 15.0376C15.406 15.1286 15.3507 15.2114 15.281 15.281C15.2114 15.3507 15.1286 15.406 15.0376 15.4437C14.9465 15.4814 14.849 15.5008 14.7504 15.5008C14.6519 15.5008 14.5543 15.4814 14.4632 15.4437C14.3722 15.406 14.2895 15.3507 14.2198 15.281L8.00042 9.06073L1.78104 15.281C1.64031 15.4218 1.44944 15.5008 1.25042 15.5008C1.05139 15.5008 0.860523 15.4218 0.719792 15.281C0.579062 15.1403 0.5 14.9494 0.5 14.7504C0.5 14.5514 0.579062 14.3605 0.719792 14.2198L6.9401 8.00042L0.719792 1.78104C0.579062 1.64031 0.5 1.44944 0.5 1.25042C0.5 1.05139 0.579062 0.860523 0.719792 0.719792C0.860523 0.579062 1.05139 0.5 1.25042 0.5C1.44944 0.5 1.64031 0.579062 1.78104 0.719792L8.00042 6.9401L14.2198 0.719792C14.3605 0.579062 14.5514 0.5 14.7504 0.5C14.9494 0.5 15.1403 0.579062 15.281 0.719792C15.4218 0.860523 15.5008 1.05139 15.5008 1.25042C15.5008 1.44944 15.4218 1.64031 15.281 1.78104L9.06073 8.00042L15.281 14.2198Z",fill:i})}):null},[e,f,m]),c=R(()=>{let i={};return s?i["aria-label"]=s:i["aria-label"]=`${e} icon`,h&&(i.title=h),i.role=r?"button":"img",i},[s,h,e,r]),p=R(()=>{if(r)return i=>{(i.key==="Enter"||i.key===" ")&&(i.preventDefault(),r())}},[r]);return z("i",{className:`
2
2
  inline-flex items-center justify-center bg-transparent outline-none border-none
3
- ${!i&&n&&"hover:opacity-80 cursor-pointer transition-opacity duration-200"}
4
- ${n&&"focus:outline-2 focus:outline-blue-500 focus:outline-offset-2"}
3
+ ${!l&&r&&"hover:opacity-80 cursor-pointer transition-opacity duration-200"}
4
+ ${r&&"focus:outline-2 focus:outline-blue-500 focus:outline-offset-2"}
5
5
  ${a}
6
- `.trim(),style:t,onClick:n,onKeyDown:p,tabIndex:n?0:void 0,...c,children:g})});j.displayName="Icon";var z=j;import{useMemo as U}from"react";import{jsx as M,jsxs as Y}from"react/jsx-runtime";var uo={success:"\u2713",error:"\u2715",warning:"\u26A0",info:"\u24D8",question:"?"},X={success:"#4ade80",error:"#ef4444",warning:"#f59e0b",info:"#3b82f6",question:"#8b5cf6"},go=({props:e,onClose:o})=>{let{title:t,text:a,type:i="info",cancelText:n="Cancel",confirmText:u="OK",onCancel:s,onConfirm:C,icon:m,html:f,showCancelButton:g=!1,showConfirmButton:c=!0,reverseButtons:p=!1,width:d="auto",fullWidth:r=!1,customClass:v={}}=e,y=()=>{s?.(),o()},$=()=>{C?.(),o()},R=U(()=>m?typeof m=="string"?M("span",{children:m}):m:M("span",{style:{color:X[i]},children:uo[i]}),[m,i]),l=p?["confirm","cancel"]:["cancel","confirm"],w=U(()=>{let x={};return r?(x.width="calc(100vw - 20px)",x.maxWidth="calc(100vw - 20px)"):typeof d=="number"?x.width=`${d}px`:x.width=d,x},[d,r]);return Y("div",{className:`aark-standard-modal ${v.popup||""}`,style:w,children:[Y("div",{className:`aark-modal-content ${v.content||""}`,children:[R&&M("div",{className:`aark-modal-icon ${v.icon||""}`,children:R}),t&&M("div",{className:`aark-modal-header ${v.header||""}`,children:M("h2",{className:`aark-modal-title ${v.title||""}`,children:t})}),f?typeof f=="string"?M("div",{dangerouslySetInnerHTML:{__html:f}}):M("div",{children:f}):a?M("p",{children:a}):null]}),(g||c)&&M("div",{className:`aark-modal-footer ${v.actions||""}`,children:l.map(x=>x==="cancel"&&g?M("button",{onClick:y,className:`aark-modal-cancel-button ${v.cancelButton||""}`,children:n},"cancel"):x==="confirm"&&c?M("button",{onClick:$,className:`aark-modal-confirm-button ${v.confirmButton||""}`,style:{background:X[i]},children:u},"confirm"):null)})]})},G=go;var h=null,E=()=>(h||(h=document.getElementById("aark-react-modalify-root"),h||(h=document.createElement("div"),h.id="aark-react-modalify-root",h.style.cssText=`
6
+ `.trim(),style:t,onClick:r,onKeyDown:p,tabIndex:r?0:void 0,...c,children:g})});U.displayName="Icon";var O=U;import{useMemo as X}from"react";import{jsx as M,jsxs as G}from"react/jsx-runtime";var yo={success:"\u2713",error:"\u2715",warning:"\u26A0",info:"\u24D8",question:"?"},Y={success:"#4ade80",error:"#ef4444",warning:"#f59e0b",info:"#3b82f6",question:"#8b5cf6"},vo=({props:e,onClose:o})=>{let{title:t,text:a,type:l="info",cancelText:r="Cancel",confirmText:u="OK",onCancel:s,onConfirm:h,icon:m,html:f,showCancelButton:g=!1,showConfirmButton:c=!0,reverseButtons:p=!1,width:i="auto",fullWidth:d=!1,customClass:y={}}=e,v=()=>{s?.(),o()},I=()=>{h?.(),o()},S=X(()=>m?typeof m=="string"?M("span",{children:m}):m:M("span",{style:{color:Y[l]},children:yo[l]}),[m,l]),$=p?["confirm","cancel"]:["cancel","confirm"],A=X(()=>{let n={};return d?(n.width="calc(100vw - 20px)",n.maxWidth="calc(100vw - 20px)"):typeof i=="number"?n.width=`${i}px`:n.width=i,n},[i,d]);return G("div",{className:`aark-standard-modal ${y.popup||""}`,style:A,children:[G("div",{className:`aark-modal-content ${y.content||""}`,children:[S&&M("div",{className:`aark-modal-icon ${y.icon||""}`,children:S}),t&&M("div",{className:`aark-modal-header ${y.header||""}`,children:M("h2",{className:`aark-modal-title ${y.title||""}`,children:t})}),f?typeof f=="string"?M("div",{dangerouslySetInnerHTML:{__html:f}}):M("div",{children:f}):a?M("p",{children:a}):null]}),(g||c)&&M("div",{className:`aark-modal-footer ${y.actions||""}`,children:$.map(n=>n==="cancel"&&g?M("button",{onClick:v,className:`aark-modal-cancel-button ${y.cancelButton||""}`,children:r},"cancel"):n==="confirm"&&c?M("button",{onClick:I,className:`aark-modal-confirm-button ${y.confirmButton||""}`,style:{background:Y[l]},children:u},"confirm"):null)})]})},J=vo;var C=null,w=()=>(C||(C=document.getElementById("aark-react-modalify-root"),C||(C=document.createElement("div"),C.id="aark-react-modalify-root",C.style.cssText=`
7
7
  position: fixed;
8
8
  top: 0;
9
9
  left: 0;
@@ -11,4 +11,4 @@ import{createElement as To}from"react";import{createRoot as Bo}from"react-dom/cl
11
11
  height: 100%;
12
12
  pointer-events: none;
13
13
  z-index: var(--aark-modal-z, 9999);
14
- `,document.body.appendChild(h))),h),J=()=>{h&&h.children.length===0&&(h.remove(),h=null)};import{jsx as N,jsxs as oo}from"react/jsx-runtime";var ho={sm:"400px",md:"550px",lg:"700px",xl:"900px",full:"calc(100vw - 32px)"},Co=({config:e,onClose:o})=>{let{content:t,props:a,options:i={}}=e,{position:n="center",showCloseIcon:u=!0,className:s="",overlayClassName:C="",preventEscClose:m=!1,preventOverlayClose:f=!1,width:g,maxWidth:c,size:p}=i;vo(()=>{if(m)return;let l=w=>{w.key==="Escape"&&o()};return document.addEventListener("keydown",l),()=>document.removeEventListener("keydown",l)},[o,m]);let d=Q(l=>{l.target===l.currentTarget&&!f&&o()},[o,f]),r=Q(l=>{l.stopPropagation(),o()},[o]),v=yo(()=>{let l={};if(g!==void 0&&(l.width=typeof g=="number"?`${g}px`:g,c===void 0&&(l.maxWidth=l.width)),c!==void 0)l.maxWidth=typeof c=="number"?`${c}px`:c;else if(p){let w=ho[p];p==="full"&&(l.width=l.width??w),l.maxWidth=w}return l},[g,c,p]),y=`aark-modal-container ${n} ${s}`.trim(),$=E(),R=()=>a?oo("div",{className:y,style:v,role:"dialog","aria-modal":"true",onClick:l=>l.stopPropagation(),children:[u&&N("button",{onClick:r,className:"aark-modal-close","aria-label":"Close Modal",type:"button",children:N(z,{name:"close",size:12})}),N("div",{className:"aark-modal-wrapper",children:N(G,{props:a,onClose:o})})]}):t?N("div",{className:y,style:v,role:"dialog","aria-modal":"true",onClick:l=>l.stopPropagation(),children:oo("div",{className:"aark-modal-body",children:[u&&N("button",{onClick:r,className:"aark-modal-close","aria-label":"Close Modal",type:"button",children:N(z,{name:"close",size:12})}),t]})}):null;return ko(N("div",{className:`aark-modal-overlay ${C}`.trim(),onClick:d,style:{position:"fixed",inset:0,zIndex:"var(--aark-modal-z, 9999)",background:"var(--aark-modal-overlay-bg)",backdropFilter:"blur(var(--aark-modal-overlay-blur, 0px))",WebkitBackdropFilter:"blur(var(--aark-modal-overlay-blur, 0px))",animation:"fade-in var(--aark-anim)",display:"flex",alignItems:n==="center"?"center":n.startsWith("top")?"flex-start":"flex-end",justifyContent:n.endsWith("center")?"center":n.endsWith("right")?"flex-end":"flex-start",padding:"1rem",overflowY:"auto",boxSizing:"border-box"},children:R()}),$)},O=Co;import{useEffect as no,useCallback as No}from"react";import{createPortal as wo}from"react-dom";import{useMemo as eo,useEffect as Mo}from"react";import{jsx as b,jsxs as W}from"react/jsx-runtime";var to={success:"#4ade80",error:"#ef4444",warning:"#f59e0b",info:"#3b82f6",question:"#8b5cf6"},bo={success:"\u2713",error:"\u2715",warning:"\u26A0",info:"\u24D8",question:"?"},xo=({props:e,onClose:o})=>{let{title:t,text:a,type:i="info",icon:n,html:u,timer:s=5e3,showCloseButton:C=!0,clickToClose:m=!0,width:f,fullWidth:g=!1,padding:c,customClass:p={}}=e;Mo(()=>{if(s&&s>0){let y=setTimeout(o,s);return()=>clearTimeout(y)}},[s,o]);let d=()=>{m&&o()},r=eo(()=>n?typeof n=="string"?b("span",{children:n}):n:b("span",{style:{color:to[i]},children:bo[i]}),[n,i]),v=eo(()=>{let y={};return c!==void 0&&(y.padding=typeof c=="number"?`${c}px`:c),g?(y.width="calc(100vw - 40px)",y.maxWidth="calc(100vw - 40px)"):f!==void 0&&(y.width=typeof f=="number"?`${f}px`:f),y},[f,g,c]);return W("div",{className:`aark-standard-notification aark-notification-${i} ${p.popup||""}`,style:v,onClick:d,children:[s&&s>0&&b("div",{className:"aark-notification-progress",style:{background:to[i],animation:`aark-notification-progress ${s}ms linear forwards`}}),W("div",{style:{display:"flex",alignItems:"flex-start",gap:"0.75rem"},children:[r&&b("div",{className:`aark-notification-icon ${p.icon||""}`,children:r}),W("div",{style:{flex:1,minWidth:0},children:[t&&b("div",{className:`aark-notification-header ${p.header||""}`,children:b("h4",{className:`aark-notification-title ${p.title||""}`,children:t})}),b("div",{className:`aark-notification-content ${p.content||""}`,style:{marginTop:t?"0.25rem":0},children:u?typeof u=="string"?b("div",{dangerouslySetInnerHTML:{__html:u}}):b("div",{children:u}):a?b("p",{children:a}):null})]}),C&&b("button",{onClick:y=>{y.stopPropagation(),o()},className:`aark-notification-close ${p.closeButton||""}`,"aria-label":"Close notification",type:"button",children:"\xD7"})]})]})},ao=xo;import{jsx as B,jsxs as Eo}from"react/jsx-runtime";var Po=({config:e,onClose:o})=>{let{content:t,props:a,options:i={}}=e,{position:n="top-right",showCloseIcon:u=!0,autoCloseTime:s=5e3,className:C="",preventEscClose:m=!1}=i;no(()=>{if(s&&!a){let r=setTimeout(o,s);return()=>clearTimeout(r)}},[s,o,a]),no(()=>{if(m)return;let r=v=>{v.key==="Escape"&&o()};return document.addEventListener("keydown",r),()=>document.removeEventListener("keydown",r)},[o,m]);let f=No(r=>{r.stopPropagation(),o()},[o]),g=`aark-notification-container ${n} ${C}`.trim(),c=E(),p=()=>{let r={position:"fixed",zIndex:1e4,margin:"1rem"};switch(n){case"top-left":return{...r,top:0,left:0};case"top-center":return{...r,top:0,left:"50%",transform:"translateX(-50%)"};case"top-right":return{...r,top:0,right:0};case"bottom-left":return{...r,bottom:0,left:0};case"bottom-center":return{...r,bottom:0,left:"50%",transform:"translateX(-50%)"};case"bottom-right":return{...r,bottom:0,right:0};default:return{...r,top:0,right:0}}},d=()=>a?B("div",{className:"aark-notification-wrapper",children:B(ao,{props:a,onClose:o})}):t?Eo("div",{className:g,role:"alert","aria-live":"polite",children:[u&&B("button",{onClick:f,className:"aark-notification-close","aria-label":"Close notification",type:"button",children:"\xD7"}),B("div",{className:"aark-notification-body",children:t})]}):null;return wo(B("div",{style:p(),children:d()}),c)},L=Po;import{jsx as io}from"react/jsx-runtime";var So=()=>{let{isOpen:e,config:o,close:t}=A();return!e||!o?null:o.mode==="modal"?io(O,{config:o,onClose:t}):o.mode==="notification"?io(L,{config:o,onClose:t}):null},H=So;var K=new Set,P=null,S=null;function ro(){if(S)return;let e=E();S=Bo(e),S.render(To(H))}function Ro(e){return K.add(e),()=>K.delete(e)}function I(e,o){let t={type:e,config:o};K.forEach(a=>a(t))}function lo(e,o){ro();let t,a;e&&typeof e=="object"&&!("$$typeof"in e)&&!Array.isArray(e)?(a=e,t=void 0):(t=e,a=void 0);let i={content:t,props:a,mode:"modal",options:Object.assign({position:"center",showCloseIcon:!0,preventEscClose:!1,preventOverlayClose:!1},o)};P=i,I("open",i)}function Io(e,o){ro();let t,a;e&&typeof e=="object"&&!("$$typeof"in e)&&!Array.isArray(e)?(a=e,t=void 0):(t=e,a=void 0);let i={content:t,props:a,mode:"notification",options:Object.assign({position:"top-right",showCloseIcon:!0,autoCloseTime:5e3,preventEscClose:!1},o)};P=i,I("open",i)}function $o(e,o){lo(e,o)}function so(){P&&(I("beforeClose",P),P=null,I("close"))}function Ao(){return P!==null}function Fo(){return P}function zo(){so()}function Oo(){S&&(S.unmount(),S=null),J()}var k={subscribe:Ro,fire:$o,fireModal:lo,fireNotification:Io,close:so,isOpen:Ao,getCurrentConfig:Fo,closeAll:zo,cleanup:Oo};var co={overlayBackground:"--aark-modal-overlay-bg",overlayBlur:"--aark-modal-overlay-blur",modalBackground:"--aark-modal-bg",modalBorderRadius:"--aark-modal-radius",modalShadow:"--aark-modal-shadow",modalPadding:"--aark-modal-pad",modalMaxWidth:"--aark-modal-max-width",modalZIndex:"--aark-modal-z",closeButtonColor:"--aark-close-color",closeButtonHoverBackground:"--aark-close-hover",closeButtonHoverColor:"--aark-close-hover-color",closeButtonFocusOutline:"--aark-close-focus-outline",animationDuration:"--aark-anim",notificationBackground:"--aark-notification-bg",notificationBorderRadius:"--aark-notification-radius",notificationShadow:"--aark-notification-shadow",notificationPadding:"--aark-notification-pad",notificationZIndex:"--aark-notification-z"};function D(e){let o=document.documentElement;Object.keys(e).forEach(t=>{let a=e[t],i=co[t];a!==void 0&&i&&o.style.setProperty(i,String(a))})}function Z(){let e=document.documentElement;Object.values(co).forEach(o=>{e.style.removeProperty(o)})}function _(){let e=document.documentElement,o=getComputedStyle(e),t=a=>o.getPropertyValue(a).trim()||void 0;return{overlayBackground:t("--aark-modal-overlay-bg"),overlayBlur:t("--aark-modal-overlay-blur"),modalBackground:t("--aark-modal-bg"),modalBorderRadius:t("--aark-modal-radius"),modalShadow:t("--aark-modal-shadow"),modalPadding:t("--aark-modal-pad"),modalMaxWidth:t("--aark-modal-max-width"),modalZIndex:parseInt(t("--aark-modal-z")??"0")||void 0,closeButtonColor:t("--aark-close-color"),closeButtonHoverBackground:t("--aark-close-hover"),closeButtonHoverColor:t("--aark-close-hover-color"),closeButtonFocusOutline:t("--aark-close-focus-outline"),animationDuration:t("--aark-anim"),notificationBackground:t("--aark-notification-bg"),notificationBorderRadius:t("--aark-notification-radius"),notificationShadow:t("--aark-notification-shadow"),notificationPadding:t("--aark-notification-pad"),notificationZIndex:parseInt(t("--aark-notification-z")??"0")||void 0}}var Wo={fire:(e,o)=>k.fire(e,o),modal:(e,o)=>k.fireModal(e,o),notification:(e,o)=>k.fireNotification(e,o),close:()=>k.close(),isOpen:()=>k.isOpen(),closeAll:()=>k.closeAll(),setTheme:e=>D(e),resetTheme:()=>Z(),getTheme:()=>_()},Lo=Wo;export{O as Modal,H as ModalProvider,L as Notification,Lo as aark,_ as getAarkModalTheme,Z as resetAarkModalTheme,D as setAarkModalTheme,A as useModal};
14
+ `,document.body.appendChild(C))),C),Q=()=>{C&&C.children.length===0&&(C.remove(),C=null)};import{jsx as x,jsxs as to}from"react/jsx-runtime";var ho={sm:"400px",md:"550px",lg:"700px",xl:"900px",full:"calc(100vw - 32px)"},Mo=({config:e,onClose:o})=>{let{content:t,props:a,options:l={}}=e,{position:r="center",showCloseIcon:u=!0,className:s="",overlayClassName:h="",preventEscClose:m=!1,preventOverlayClose:f=!1,width:g,maxWidth:c,size:p,bodyPadding:i}=l;ko(()=>{if(m)return;let n=E=>{E.key==="Escape"&&o()};return document.addEventListener("keydown",n),()=>document.removeEventListener("keydown",n)},[o,m]);let d=oo(n=>{n.target===n.currentTarget&&!f&&o()},[o,f]),y=oo(n=>{n.stopPropagation(),o()},[o]),v=eo(()=>{let n={};if(g!==void 0&&(n.width=typeof g=="number"?`${g}px`:g,c===void 0&&(n.maxWidth=n.width)),c!==void 0)n.maxWidth=typeof c=="number"?`${c}px`:c;else if(p){let E=ho[p];p==="full"&&(n.width=n.width??E),n.maxWidth=E}return n},[g,c,p]),I=eo(()=>i===void 0||i===!0?{}:i===!1||i===0?{padding:0}:typeof i=="number"?{padding:`${i}px`}:{padding:i},[i]),S=`aark-modal-container ${r} ${s}`.trim(),$=w(),A=()=>a?to("div",{className:S,style:v,role:"dialog","aria-modal":"true",onClick:n=>n.stopPropagation(),children:[u&&x("button",{onClick:y,className:"aark-modal-close","aria-label":"Close Modal",type:"button",children:x(O,{name:"close",size:12})}),x("div",{className:"aark-modal-wrapper",children:x(J,{props:a,onClose:o})})]}):t?x("div",{className:S,style:v,role:"dialog","aria-modal":"true",onClick:n=>n.stopPropagation(),children:to("div",{className:"aark-modal-body",style:I,children:[u&&x("button",{onClick:y,className:"aark-modal-close","aria-label":"Close Modal",type:"button",children:x(O,{name:"close",size:12})}),t]})}):null;return Co(x("div",{className:`aark-modal-overlay ${h}`.trim(),onClick:d,style:{position:"fixed",inset:0,zIndex:"var(--aark-modal-z, 9999)",background:"var(--aark-modal-overlay-bg)",backdropFilter:"blur(var(--aark-modal-overlay-blur, 0px))",WebkitBackdropFilter:"blur(var(--aark-modal-overlay-blur, 0px))",animation:"fade-in var(--aark-anim)",display:"flex",alignItems:r==="center"?"center":r.startsWith("top")?"flex-start":"flex-end",justifyContent:r.endsWith("center")?"center":r.endsWith("right")?"flex-end":"flex-start",padding:"1rem",overflowY:"auto",boxSizing:"border-box"},children:A()}),$)},W=Mo;import{useEffect as ro,useCallback as wo}from"react";import{createPortal as Po}from"react-dom";import{useMemo as ao,useEffect as bo}from"react";import{jsx as b,jsxs as L}from"react/jsx-runtime";var no={success:"#4ade80",error:"#ef4444",warning:"#f59e0b",info:"#3b82f6",question:"#8b5cf6"},xo={success:"\u2713",error:"\u2715",warning:"\u26A0",info:"\u24D8",question:"?"},No=({props:e,onClose:o})=>{let{title:t,text:a,type:l="info",icon:r,html:u,timer:s=5e3,showCloseButton:h=!0,clickToClose:m=!0,width:f,fullWidth:g=!1,padding:c,customClass:p={}}=e;bo(()=>{if(s&&s>0){let v=setTimeout(o,s);return()=>clearTimeout(v)}},[s,o]);let i=()=>{m&&o()},d=ao(()=>r?typeof r=="string"?b("span",{children:r}):r:b("span",{style:{color:no[l]},children:xo[l]}),[r,l]),y=ao(()=>{let v={};return c!==void 0&&(v.padding=typeof c=="number"?`${c}px`:c),g?(v.width="calc(100vw - 40px)",v.maxWidth="calc(100vw - 40px)"):f!==void 0&&(v.width=typeof f=="number"?`${f}px`:f),v},[f,g,c]);return L("div",{className:`aark-standard-notification aark-notification-${l} ${p.popup||""}`,style:y,onClick:i,children:[s&&s>0&&b("div",{className:"aark-notification-progress",style:{background:no[l],animation:`aark-notification-progress ${s}ms linear forwards`}}),L("div",{style:{display:"flex",alignItems:"flex-start",gap:"0.75rem"},children:[d&&b("div",{className:`aark-notification-icon ${p.icon||""}`,children:d}),L("div",{style:{flex:1,minWidth:0},children:[t&&b("div",{className:`aark-notification-header ${p.header||""}`,children:b("h4",{className:`aark-notification-title ${p.title||""}`,children:t})}),b("div",{className:`aark-notification-content ${p.content||""}`,style:{marginTop:t?"0.25rem":0},children:u?typeof u=="string"?b("div",{dangerouslySetInnerHTML:{__html:u}}):b("div",{children:u}):a?b("p",{children:a}):null})]}),h&&b("button",{onClick:v=>{v.stopPropagation(),o()},className:`aark-notification-close ${p.closeButton||""}`,"aria-label":"Close notification",type:"button",children:"\xD7"})]})]})},io=No;import{jsx as T,jsxs as Eo}from"react/jsx-runtime";var So=({config:e,onClose:o})=>{let{content:t,props:a,options:l={}}=e,{position:r="top-right",showCloseIcon:u=!0,autoCloseTime:s=5e3,className:h="",preventEscClose:m=!1}=l;ro(()=>{if(s&&!a){let d=setTimeout(o,s);return()=>clearTimeout(d)}},[s,o,a]),ro(()=>{if(m)return;let d=y=>{y.key==="Escape"&&o()};return document.addEventListener("keydown",d),()=>document.removeEventListener("keydown",d)},[o,m]);let f=wo(d=>{d.stopPropagation(),o()},[o]),g=`aark-notification-container ${r} ${h}`.trim(),c=w(),p=()=>{let d={position:"fixed",zIndex:1e4,margin:"1rem"};switch(r){case"top-left":return{...d,top:0,left:0};case"top-center":return{...d,top:0,left:"50%",transform:"translateX(-50%)"};case"top-right":return{...d,top:0,right:0};case"bottom-left":return{...d,bottom:0,left:0};case"bottom-center":return{...d,bottom:0,left:"50%",transform:"translateX(-50%)"};case"bottom-right":return{...d,bottom:0,right:0};default:return{...d,top:0,right:0}}},i=()=>a?T("div",{className:"aark-notification-wrapper",children:T(io,{props:a,onClose:o})}):t?Eo("div",{className:g,role:"alert","aria-live":"polite",children:[u&&T("button",{onClick:f,className:"aark-notification-close","aria-label":"Close notification",type:"button",children:"\xD7"}),T("div",{className:"aark-notification-body",children:t})]}):null;return Po(T("div",{style:p(),children:i()}),c)},H=So;import{jsx as lo}from"react/jsx-runtime";var Ro=()=>{let{isOpen:e,config:o,close:t}=F();return!e||!o?null:o.mode==="modal"?lo(W,{config:o,onClose:t}):o.mode==="notification"?lo(H,{config:o,onClose:t}):null},K=Ro;var D=new Set,N=null,P=null;function so(){if(P)return;let e=w();P=Bo(e),P.render(To(K))}function Io(e){return D.add(e),()=>D.delete(e)}function B(e,o){let t={type:e,config:o};D.forEach(a=>a(t))}function co(e,o){so();let t,a;e&&typeof e=="object"&&!("$$typeof"in e)&&!Array.isArray(e)?(a=e,t=void 0):(t=e,a=void 0);let l={content:t,props:a,mode:"modal",options:Object.assign({position:"center",showCloseIcon:!0,preventEscClose:!1,preventOverlayClose:!1},o)};N=l,B("open",l)}function $o(e,o){so();let t,a;e&&typeof e=="object"&&!("$$typeof"in e)&&!Array.isArray(e)?(a=e,t=void 0):(t=e,a=void 0);let l={content:t,props:a,mode:"notification",options:Object.assign({position:"top-right",showCloseIcon:!0,autoCloseTime:5e3,preventEscClose:!1},o)};N=l,B("open",l)}function Ao(e,o){co(e,o)}function fo(){N&&(B("beforeClose",N),N=null,B("close"))}function Fo(){return N!==null}function zo(){return N}function Oo(){fo()}function Wo(){P&&(P.unmount(),P=null),Q()}var k={subscribe:Io,fire:Ao,fireModal:co,fireNotification:$o,close:fo,isOpen:Fo,getCurrentConfig:zo,closeAll:Oo,cleanup:Wo};var mo={overlayBackground:"--aark-modal-overlay-bg",overlayBlur:"--aark-modal-overlay-blur",modalBackground:"--aark-modal-bg",modalBorderRadius:"--aark-modal-radius",modalShadow:"--aark-modal-shadow",modalPadding:"--aark-modal-pad",modalMaxWidth:"--aark-modal-max-width",modalZIndex:"--aark-modal-z",closeButtonColor:"--aark-close-color",closeButtonHoverBackground:"--aark-close-hover",closeButtonHoverColor:"--aark-close-hover-color",closeButtonFocusOutline:"--aark-close-focus-outline",animationDuration:"--aark-anim",notificationBackground:"--aark-notification-bg",notificationBorderRadius:"--aark-notification-radius",notificationShadow:"--aark-notification-shadow",notificationPadding:"--aark-notification-pad",notificationZIndex:"--aark-notification-z"};function Z(e){let o=document.documentElement;Object.keys(e).forEach(t=>{let a=e[t],l=mo[t];a!==void 0&&l&&o.style.setProperty(l,String(a))})}function _(){let e=document.documentElement;Object.values(mo).forEach(o=>{e.style.removeProperty(o)})}function q(){let e=document.documentElement,o=getComputedStyle(e),t=a=>o.getPropertyValue(a).trim()||void 0;return{overlayBackground:t("--aark-modal-overlay-bg"),overlayBlur:t("--aark-modal-overlay-blur"),modalBackground:t("--aark-modal-bg"),modalBorderRadius:t("--aark-modal-radius"),modalShadow:t("--aark-modal-shadow"),modalPadding:t("--aark-modal-pad"),modalMaxWidth:t("--aark-modal-max-width"),modalZIndex:parseInt(t("--aark-modal-z")??"0")||void 0,closeButtonColor:t("--aark-close-color"),closeButtonHoverBackground:t("--aark-close-hover"),closeButtonHoverColor:t("--aark-close-hover-color"),closeButtonFocusOutline:t("--aark-close-focus-outline"),animationDuration:t("--aark-anim"),notificationBackground:t("--aark-notification-bg"),notificationBorderRadius:t("--aark-notification-radius"),notificationShadow:t("--aark-notification-shadow"),notificationPadding:t("--aark-notification-pad"),notificationZIndex:parseInt(t("--aark-notification-z")??"0")||void 0}}var Lo={fire:(e,o)=>k.fire(e,o),modal:(e,o)=>k.fireModal(e,o),notification:(e,o)=>k.fireNotification(e,o),close:()=>k.close(),isOpen:()=>k.isOpen(),closeAll:()=>k.closeAll(),setTheme:e=>Z(e),resetTheme:()=>_(),getTheme:()=>q()},Ho=Lo;export{W as Modal,K as ModalProvider,H as Notification,Ho as aark,q as getAarkModalTheme,_ as resetAarkModalTheme,Z as setAarkModalTheme,F as useModal};
package/dist/index.cjs.js CHANGED
@@ -1,9 +1,9 @@
1
- "use strict";var V=Object.defineProperty;var uo=Object.getOwnPropertyDescriptor;var go=Object.getOwnPropertyNames;var yo=Object.prototype.hasOwnProperty;var vo=(t,o)=>{for(var e in o)V(t,e,{get:o[e],enumerable:!0})},ko=(t,o,e,a)=>{if(o&&typeof o=="object"||typeof o=="function")for(let n of go(o))!yo.call(t,n)&&n!==e&&V(t,n,{get:()=>o[n],enumerable:!(a=uo(o,n))||a.enumerable});return t};var Co=t=>ko(V({},"__esModule",{value:!0}),t);var zo={};vo(zo,{Modal:()=>W,ModalProvider:()=>H,Notification:()=>L,aark:()=>po,getAarkModalTheme:()=>_,resetAarkModalTheme:()=>Z,setAarkModalTheme:()=>D,useModal:()=>z});module.exports=Co(zo);var ro=require("react"),lo=require("react-dom/client");var E=require("react");function z(){let[t,o]=(0,E.useState)(!1),[e,a]=(0,E.useState)(null),n=(0,E.useCallback)(()=>{h.close()},[]);return(0,E.useEffect)(()=>{let i=s=>{switch(s.type){case"open":o(!0),a(s.config||null);break;case"close":o(!1),a(null);break;case"beforeClose":break}},u=h.subscribe(i);return o(h.isOpen()),a(h.getCurrentConfig()),u},[]),{isOpen:t,config:e,close:n}}var R=require("react"),eo=require("react-dom");var w=require("react"),O=require("react/jsx-runtime"),G={white:"#FFFFFF",black:"#0B071A"},J=(0,w.memo)(({name:t,color:o="black",style:e,className:a="",noHoverEffect:n=!1,onClick:i,size:u=24,"aria-label":s,title:x})=>{let m=(0,w.useMemo)(()=>String(u),[u]),f=(0,w.useMemo)(()=>G[o]?G[o]:(o.startsWith("#"),o),[o]),y=(0,w.useMemo)(()=>{let d=f;return t==="close"?(0,O.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:m,height:m,viewBox:"0 0 16 16",fill:"none",children:(0,O.jsx)("path",{d:"M15.281 14.2198C15.3507 14.2895 15.406 14.3722 15.4437 14.4632C15.4814 14.5543 15.5008 14.6519 15.5008 14.7504C15.5008 14.849 15.4814 14.9465 15.4437 15.0376C15.406 15.1286 15.3507 15.2114 15.281 15.281C15.2114 15.3507 15.1286 15.406 15.0376 15.4437C14.9465 15.4814 14.849 15.5008 14.7504 15.5008C14.6519 15.5008 14.5543 15.4814 14.4632 15.4437C14.3722 15.406 14.2895 15.3507 14.2198 15.281L8.00042 9.06073L1.78104 15.281C1.64031 15.4218 1.44944 15.5008 1.25042 15.5008C1.05139 15.5008 0.860523 15.4218 0.719792 15.281C0.579062 15.1403 0.5 14.9494 0.5 14.7504C0.5 14.5514 0.579062 14.3605 0.719792 14.2198L6.9401 8.00042L0.719792 1.78104C0.579062 1.64031 0.5 1.44944 0.5 1.25042C0.5 1.05139 0.579062 0.860523 0.719792 0.719792C0.860523 0.579062 1.05139 0.5 1.25042 0.5C1.44944 0.5 1.64031 0.579062 1.78104 0.719792L8.00042 6.9401L14.2198 0.719792C14.3605 0.579062 14.5514 0.5 14.7504 0.5C14.9494 0.5 15.1403 0.579062 15.281 0.719792C15.4218 0.860523 15.5008 1.05139 15.5008 1.25042C15.5008 1.44944 15.4218 1.64031 15.281 1.78104L9.06073 8.00042L15.281 14.2198Z",fill:d})}):null},[t,f,m]),c=(0,w.useMemo)(()=>{let d={};return s?d["aria-label"]=s:d["aria-label"]=`${t} icon`,x&&(d.title=x),d.role=i?"button":"img",d},[s,x,t,i]),p=(0,w.useMemo)(()=>{if(i)return d=>{(d.key==="Enter"||d.key===" ")&&(d.preventDefault(),i())}},[i]);return(0,O.jsx)("i",{className:`
1
+ "use strict";var j=Object.defineProperty;var go=Object.getOwnPropertyDescriptor;var yo=Object.getOwnPropertyNames;var vo=Object.prototype.hasOwnProperty;var ko=(t,o)=>{for(var e in o)j(t,e,{get:o[e],enumerable:!0})},Co=(t,o,e,a)=>{if(o&&typeof o=="object"||typeof o=="function")for(let n of yo(o))!vo.call(t,n)&&n!==e&&j(t,n,{get:()=>o[n],enumerable:!(a=go(o,n))||a.enumerable});return t};var ho=t=>Co(j({},"__esModule",{value:!0}),t);var Oo={};ko(Oo,{Modal:()=>O,ModalProvider:()=>L,Notification:()=>W,aark:()=>uo,getAarkModalTheme:()=>Z,resetAarkModalTheme:()=>D,setAarkModalTheme:()=>K,useModal:()=>F});module.exports=ho(Oo);var lo=require("react"),so=require("react-dom/client");var S=require("react");function F(){let[t,o]=(0,S.useState)(!1),[e,a]=(0,S.useState)(null),n=(0,S.useCallback)(()=>{h.close()},[]);return(0,S.useEffect)(()=>{let l=s=>{switch(s.type){case"open":o(!0),a(s.config||null);break;case"close":o(!1),a(null);break;case"beforeClose":break}},u=h.subscribe(l);return o(h.isOpen()),a(h.getCurrentConfig()),u},[]),{isOpen:t,config:e,close:n}}var w=require("react"),ao=require("react-dom");var N=require("react"),z=require("react/jsx-runtime"),J={white:"#FFFFFF",black:"#0B071A"},Q=(0,N.memo)(({name:t,color:o="black",style:e,className:a="",noHoverEffect:n=!1,onClick:l,size:u=24,"aria-label":s,title:x})=>{let m=(0,N.useMemo)(()=>String(u),[u]),f=(0,N.useMemo)(()=>J[o]?J[o]:(o.startsWith("#"),o),[o]),y=(0,N.useMemo)(()=>{let r=f;return t==="close"?(0,z.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:m,height:m,viewBox:"0 0 16 16",fill:"none",children:(0,z.jsx)("path",{d:"M15.281 14.2198C15.3507 14.2895 15.406 14.3722 15.4437 14.4632C15.4814 14.5543 15.5008 14.6519 15.5008 14.7504C15.5008 14.849 15.4814 14.9465 15.4437 15.0376C15.406 15.1286 15.3507 15.2114 15.281 15.281C15.2114 15.3507 15.1286 15.406 15.0376 15.4437C14.9465 15.4814 14.849 15.5008 14.7504 15.5008C14.6519 15.5008 14.5543 15.4814 14.4632 15.4437C14.3722 15.406 14.2895 15.3507 14.2198 15.281L8.00042 9.06073L1.78104 15.281C1.64031 15.4218 1.44944 15.5008 1.25042 15.5008C1.05139 15.5008 0.860523 15.4218 0.719792 15.281C0.579062 15.1403 0.5 14.9494 0.5 14.7504C0.5 14.5514 0.579062 14.3605 0.719792 14.2198L6.9401 8.00042L0.719792 1.78104C0.579062 1.64031 0.5 1.44944 0.5 1.25042C0.5 1.05139 0.579062 0.860523 0.719792 0.719792C0.860523 0.579062 1.05139 0.5 1.25042 0.5C1.44944 0.5 1.64031 0.579062 1.78104 0.719792L8.00042 6.9401L14.2198 0.719792C14.3605 0.579062 14.5514 0.5 14.7504 0.5C14.9494 0.5 15.1403 0.579062 15.281 0.719792C15.4218 0.860523 15.5008 1.05139 15.5008 1.25042C15.5008 1.44944 15.4218 1.64031 15.281 1.78104L9.06073 8.00042L15.281 14.2198Z",fill:r})}):null},[t,f,m]),c=(0,N.useMemo)(()=>{let r={};return s?r["aria-label"]=s:r["aria-label"]=`${t} icon`,x&&(r.title=x),r.role=l?"button":"img",r},[s,x,t,l]),p=(0,N.useMemo)(()=>{if(l)return r=>{(r.key==="Enter"||r.key===" ")&&(r.preventDefault(),l())}},[l]);return(0,z.jsx)("i",{className:`
2
2
  inline-flex items-center justify-center bg-transparent outline-none border-none
3
- ${!n&&i&&"hover:opacity-80 cursor-pointer transition-opacity duration-200"}
4
- ${i&&"focus:outline-2 focus:outline-blue-500 focus:outline-offset-2"}
3
+ ${!n&&l&&"hover:opacity-80 cursor-pointer transition-opacity duration-200"}
4
+ ${l&&"focus:outline-2 focus:outline-blue-500 focus:outline-offset-2"}
5
5
  ${a}
6
- `.trim(),style:e,onClick:i,onKeyDown:p,tabIndex:i?0:void 0,...c,children:y})});J.displayName="Icon";var j=J;var U=require("react"),k=require("react/jsx-runtime"),ho={success:"\u2713",error:"\u2715",warning:"\u26A0",info:"\u24D8",question:"?"},Q={success:"#4ade80",error:"#ef4444",warning:"#f59e0b",info:"#3b82f6",question:"#8b5cf6"},Mo=({props:t,onClose:o})=>{let{title:e,text:a,type:n="info",cancelText:i="Cancel",confirmText:u="OK",onCancel:s,onConfirm:x,icon:m,html:f,showCancelButton:y=!1,showConfirmButton:c=!0,reverseButtons:p=!1,width:d="auto",fullWidth:r=!1,customClass:v={}}=t,C=()=>{s?.(),o()},q=()=>{x?.(),o()},F=(0,U.useMemo)(()=>m?typeof m=="string"?(0,k.jsx)("span",{children:m}):m:(0,k.jsx)("span",{style:{color:Q[n]},children:ho[n]}),[m,n]),l=p?["confirm","cancel"]:["cancel","confirm"],S=(0,U.useMemo)(()=>{let N={};return r?(N.width="calc(100vw - 20px)",N.maxWidth="calc(100vw - 20px)"):typeof d=="number"?N.width=`${d}px`:N.width=d,N},[d,r]);return(0,k.jsxs)("div",{className:`aark-standard-modal ${v.popup||""}`,style:S,children:[(0,k.jsxs)("div",{className:`aark-modal-content ${v.content||""}`,children:[F&&(0,k.jsx)("div",{className:`aark-modal-icon ${v.icon||""}`,children:F}),e&&(0,k.jsx)("div",{className:`aark-modal-header ${v.header||""}`,children:(0,k.jsx)("h2",{className:`aark-modal-title ${v.title||""}`,children:e})}),f?typeof f=="string"?(0,k.jsx)("div",{dangerouslySetInnerHTML:{__html:f}}):(0,k.jsx)("div",{children:f}):a?(0,k.jsx)("p",{children:a}):null]}),(y||c)&&(0,k.jsx)("div",{className:`aark-modal-footer ${v.actions||""}`,children:l.map(N=>N==="cancel"&&y?(0,k.jsx)("button",{onClick:C,className:`aark-modal-cancel-button ${v.cancelButton||""}`,children:i},"cancel"):N==="confirm"&&c?(0,k.jsx)("button",{onClick:q,className:`aark-modal-confirm-button ${v.confirmButton||""}`,style:{background:Q[n]},children:u},"confirm"):null)})]})},oo=Mo;var M=null,B=()=>(M||(M=document.getElementById("aark-react-modalify-root"),M||(M=document.createElement("div"),M.id="aark-react-modalify-root",M.style.cssText=`
6
+ `.trim(),style:e,onClick:l,onKeyDown:p,tabIndex:l?0:void 0,...c,children:y})});Q.displayName="Icon";var U=Q;var X=require("react"),k=require("react/jsx-runtime"),Mo={success:"\u2713",error:"\u2715",warning:"\u26A0",info:"\u24D8",question:"?"},oo={success:"#4ade80",error:"#ef4444",warning:"#f59e0b",info:"#3b82f6",question:"#8b5cf6"},bo=({props:t,onClose:o})=>{let{title:e,text:a,type:n="info",cancelText:l="Cancel",confirmText:u="OK",onCancel:s,onConfirm:x,icon:m,html:f,showCancelButton:y=!1,showConfirmButton:c=!0,reverseButtons:p=!1,width:r="auto",fullWidth:d=!1,customClass:v={}}=t,C=()=>{s?.(),o()},_=()=>{x?.(),o()},B=(0,X.useMemo)(()=>m?typeof m=="string"?(0,k.jsx)("span",{children:m}):m:(0,k.jsx)("span",{style:{color:oo[n]},children:Mo[n]}),[m,n]),q=p?["confirm","cancel"]:["cancel","confirm"],V=(0,X.useMemo)(()=>{let i={};return d?(i.width="calc(100vw - 20px)",i.maxWidth="calc(100vw - 20px)"):typeof r=="number"?i.width=`${r}px`:i.width=r,i},[r,d]);return(0,k.jsxs)("div",{className:`aark-standard-modal ${v.popup||""}`,style:V,children:[(0,k.jsxs)("div",{className:`aark-modal-content ${v.content||""}`,children:[B&&(0,k.jsx)("div",{className:`aark-modal-icon ${v.icon||""}`,children:B}),e&&(0,k.jsx)("div",{className:`aark-modal-header ${v.header||""}`,children:(0,k.jsx)("h2",{className:`aark-modal-title ${v.title||""}`,children:e})}),f?typeof f=="string"?(0,k.jsx)("div",{dangerouslySetInnerHTML:{__html:f}}):(0,k.jsx)("div",{children:f}):a?(0,k.jsx)("p",{children:a}):null]}),(y||c)&&(0,k.jsx)("div",{className:`aark-modal-footer ${v.actions||""}`,children:q.map(i=>i==="cancel"&&y?(0,k.jsx)("button",{onClick:C,className:`aark-modal-cancel-button ${v.cancelButton||""}`,children:l},"cancel"):i==="confirm"&&c?(0,k.jsx)("button",{onClick:_,className:`aark-modal-confirm-button ${v.confirmButton||""}`,style:{background:oo[n]},children:u},"confirm"):null)})]})},to=bo;var M=null,R=()=>(M||(M=document.getElementById("aark-react-modalify-root"),M||(M=document.createElement("div"),M.id="aark-react-modalify-root",M.style.cssText=`
7
7
  position: fixed;
8
8
  top: 0;
9
9
  left: 0;
@@ -11,4 +11,4 @@
11
11
  height: 100%;
12
12
  pointer-events: none;
13
13
  z-index: var(--aark-modal-z, 9999);
14
- `,document.body.appendChild(M))),M),to=()=>{M&&M.children.length===0&&(M.remove(),M=null)};var b=require("react/jsx-runtime"),bo={sm:"400px",md:"550px",lg:"700px",xl:"900px",full:"calc(100vw - 32px)"},xo=({config:t,onClose:o})=>{let{content:e,props:a,options:n={}}=t,{position:i="center",showCloseIcon:u=!0,className:s="",overlayClassName:x="",preventEscClose:m=!1,preventOverlayClose:f=!1,width:y,maxWidth:c,size:p}=n;(0,R.useEffect)(()=>{if(m)return;let l=S=>{S.key==="Escape"&&o()};return document.addEventListener("keydown",l),()=>document.removeEventListener("keydown",l)},[o,m]);let d=(0,R.useCallback)(l=>{l.target===l.currentTarget&&!f&&o()},[o,f]),r=(0,R.useCallback)(l=>{l.stopPropagation(),o()},[o]),v=(0,R.useMemo)(()=>{let l={};if(y!==void 0&&(l.width=typeof y=="number"?`${y}px`:y,c===void 0&&(l.maxWidth=l.width)),c!==void 0)l.maxWidth=typeof c=="number"?`${c}px`:c;else if(p){let S=bo[p];p==="full"&&(l.width=l.width??S),l.maxWidth=S}return l},[y,c,p]),C=`aark-modal-container ${i} ${s}`.trim(),q=B(),F=()=>a?(0,b.jsxs)("div",{className:C,style:v,role:"dialog","aria-modal":"true",onClick:l=>l.stopPropagation(),children:[u&&(0,b.jsx)("button",{onClick:r,className:"aark-modal-close","aria-label":"Close Modal",type:"button",children:(0,b.jsx)(j,{name:"close",size:12})}),(0,b.jsx)("div",{className:"aark-modal-wrapper",children:(0,b.jsx)(oo,{props:a,onClose:o})})]}):e?(0,b.jsx)("div",{className:C,style:v,role:"dialog","aria-modal":"true",onClick:l=>l.stopPropagation(),children:(0,b.jsxs)("div",{className:"aark-modal-body",children:[u&&(0,b.jsx)("button",{onClick:r,className:"aark-modal-close","aria-label":"Close Modal",type:"button",children:(0,b.jsx)(j,{name:"close",size:12})}),e]})}):null;return(0,eo.createPortal)((0,b.jsx)("div",{className:`aark-modal-overlay ${x}`.trim(),onClick:d,style:{position:"fixed",inset:0,zIndex:"var(--aark-modal-z, 9999)",background:"var(--aark-modal-overlay-bg)",backdropFilter:"blur(var(--aark-modal-overlay-blur, 0px))",WebkitBackdropFilter:"blur(var(--aark-modal-overlay-blur, 0px))",animation:"fade-in var(--aark-anim)",display:"flex",alignItems:i==="center"?"center":i.startsWith("top")?"flex-start":"flex-end",justifyContent:i.endsWith("center")?"center":i.endsWith("right")?"flex-end":"flex-start",padding:"1rem",overflowY:"auto",boxSizing:"border-box"},children:F()}),q)},W=xo;var A=require("react"),io=require("react-dom");var $=require("react"),g=require("react/jsx-runtime"),ao={success:"#4ade80",error:"#ef4444",warning:"#f59e0b",info:"#3b82f6",question:"#8b5cf6"},No={success:"\u2713",error:"\u2715",warning:"\u26A0",info:"\u24D8",question:"?"},wo=({props:t,onClose:o})=>{let{title:e,text:a,type:n="info",icon:i,html:u,timer:s=5e3,showCloseButton:x=!0,clickToClose:m=!0,width:f,fullWidth:y=!1,padding:c,customClass:p={}}=t;(0,$.useEffect)(()=>{if(s&&s>0){let C=setTimeout(o,s);return()=>clearTimeout(C)}},[s,o]);let d=()=>{m&&o()},r=(0,$.useMemo)(()=>i?typeof i=="string"?(0,g.jsx)("span",{children:i}):i:(0,g.jsx)("span",{style:{color:ao[n]},children:No[n]}),[i,n]),v=(0,$.useMemo)(()=>{let C={};return c!==void 0&&(C.padding=typeof c=="number"?`${c}px`:c),y?(C.width="calc(100vw - 40px)",C.maxWidth="calc(100vw - 40px)"):f!==void 0&&(C.width=typeof f=="number"?`${f}px`:f),C},[f,y,c]);return(0,g.jsxs)("div",{className:`aark-standard-notification aark-notification-${n} ${p.popup||""}`,style:v,onClick:d,children:[s&&s>0&&(0,g.jsx)("div",{className:"aark-notification-progress",style:{background:ao[n],animation:`aark-notification-progress ${s}ms linear forwards`}}),(0,g.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:"0.75rem"},children:[r&&(0,g.jsx)("div",{className:`aark-notification-icon ${p.icon||""}`,children:r}),(0,g.jsxs)("div",{style:{flex:1,minWidth:0},children:[e&&(0,g.jsx)("div",{className:`aark-notification-header ${p.header||""}`,children:(0,g.jsx)("h4",{className:`aark-notification-title ${p.title||""}`,children:e})}),(0,g.jsx)("div",{className:`aark-notification-content ${p.content||""}`,style:{marginTop:e?"0.25rem":0},children:u?typeof u=="string"?(0,g.jsx)("div",{dangerouslySetInnerHTML:{__html:u}}):(0,g.jsx)("div",{children:u}):a?(0,g.jsx)("p",{children:a}):null})]}),x&&(0,g.jsx)("button",{onClick:C=>{C.stopPropagation(),o()},className:`aark-notification-close ${p.closeButton||""}`,"aria-label":"Close notification",type:"button",children:"\xD7"})]})]})},no=wo;var P=require("react/jsx-runtime"),Po=({config:t,onClose:o})=>{let{content:e,props:a,options:n={}}=t,{position:i="top-right",showCloseIcon:u=!0,autoCloseTime:s=5e3,className:x="",preventEscClose:m=!1}=n;(0,A.useEffect)(()=>{if(s&&!a){let r=setTimeout(o,s);return()=>clearTimeout(r)}},[s,o,a]),(0,A.useEffect)(()=>{if(m)return;let r=v=>{v.key==="Escape"&&o()};return document.addEventListener("keydown",r),()=>document.removeEventListener("keydown",r)},[o,m]);let f=(0,A.useCallback)(r=>{r.stopPropagation(),o()},[o]),y=`aark-notification-container ${i} ${x}`.trim(),c=B(),p=()=>{let r={position:"fixed",zIndex:1e4,margin:"1rem"};switch(i){case"top-left":return{...r,top:0,left:0};case"top-center":return{...r,top:0,left:"50%",transform:"translateX(-50%)"};case"top-right":return{...r,top:0,right:0};case"bottom-left":return{...r,bottom:0,left:0};case"bottom-center":return{...r,bottom:0,left:"50%",transform:"translateX(-50%)"};case"bottom-right":return{...r,bottom:0,right:0};default:return{...r,top:0,right:0}}},d=()=>a?(0,P.jsx)("div",{className:"aark-notification-wrapper",children:(0,P.jsx)(no,{props:a,onClose:o})}):e?(0,P.jsxs)("div",{className:y,role:"alert","aria-live":"polite",children:[u&&(0,P.jsx)("button",{onClick:f,className:"aark-notification-close","aria-label":"Close notification",type:"button",children:"\xD7"}),(0,P.jsx)("div",{className:"aark-notification-body",children:e})]}):null;return(0,io.createPortal)((0,P.jsx)("div",{style:p(),children:d()}),c)},L=Po;var X=require("react/jsx-runtime"),So=()=>{let{isOpen:t,config:o,close:e}=z();return!t||!o?null:o.mode==="modal"?(0,X.jsx)(W,{config:o,onClose:e}):o.mode==="notification"?(0,X.jsx)(L,{config:o,onClose:e}):null},H=So;var Y=new Set,T=null,I=null;function so(){if(I)return;let t=B();I=(0,lo.createRoot)(t),I.render((0,ro.createElement)(H))}function Eo(t){return Y.add(t),()=>Y.delete(t)}function K(t,o){let e={type:t,config:o};Y.forEach(a=>a(e))}function co(t,o){so();let e,a;t&&typeof t=="object"&&!("$$typeof"in t)&&!Array.isArray(t)?(a=t,e=void 0):(e=t,a=void 0);let n={content:e,props:a,mode:"modal",options:Object.assign({position:"center",showCloseIcon:!0,preventEscClose:!1,preventOverlayClose:!1},o)};T=n,K("open",n)}function Ro(t,o){so();let e,a;t&&typeof t=="object"&&!("$$typeof"in t)&&!Array.isArray(t)?(a=t,e=void 0):(e=t,a=void 0);let n={content:e,props:a,mode:"notification",options:Object.assign({position:"top-right",showCloseIcon:!0,autoCloseTime:5e3,preventEscClose:!1},o)};T=n,K("open",n)}function To(t,o){co(t,o)}function fo(){T&&(K("beforeClose",T),T=null,K("close"))}function Bo(){return T!==null}function Io(){return T}function $o(){fo()}function Ao(){I&&(I.unmount(),I=null),to()}var h={subscribe:Eo,fire:To,fireModal:co,fireNotification:Ro,close:fo,isOpen:Bo,getCurrentConfig:Io,closeAll:$o,cleanup:Ao};var mo={overlayBackground:"--aark-modal-overlay-bg",overlayBlur:"--aark-modal-overlay-blur",modalBackground:"--aark-modal-bg",modalBorderRadius:"--aark-modal-radius",modalShadow:"--aark-modal-shadow",modalPadding:"--aark-modal-pad",modalMaxWidth:"--aark-modal-max-width",modalZIndex:"--aark-modal-z",closeButtonColor:"--aark-close-color",closeButtonHoverBackground:"--aark-close-hover",closeButtonHoverColor:"--aark-close-hover-color",closeButtonFocusOutline:"--aark-close-focus-outline",animationDuration:"--aark-anim",notificationBackground:"--aark-notification-bg",notificationBorderRadius:"--aark-notification-radius",notificationShadow:"--aark-notification-shadow",notificationPadding:"--aark-notification-pad",notificationZIndex:"--aark-notification-z"};function D(t){let o=document.documentElement;Object.keys(t).forEach(e=>{let a=t[e],n=mo[e];a!==void 0&&n&&o.style.setProperty(n,String(a))})}function Z(){let t=document.documentElement;Object.values(mo).forEach(o=>{t.style.removeProperty(o)})}function _(){let t=document.documentElement,o=getComputedStyle(t),e=a=>o.getPropertyValue(a).trim()||void 0;return{overlayBackground:e("--aark-modal-overlay-bg"),overlayBlur:e("--aark-modal-overlay-blur"),modalBackground:e("--aark-modal-bg"),modalBorderRadius:e("--aark-modal-radius"),modalShadow:e("--aark-modal-shadow"),modalPadding:e("--aark-modal-pad"),modalMaxWidth:e("--aark-modal-max-width"),modalZIndex:parseInt(e("--aark-modal-z")??"0")||void 0,closeButtonColor:e("--aark-close-color"),closeButtonHoverBackground:e("--aark-close-hover"),closeButtonHoverColor:e("--aark-close-hover-color"),closeButtonFocusOutline:e("--aark-close-focus-outline"),animationDuration:e("--aark-anim"),notificationBackground:e("--aark-notification-bg"),notificationBorderRadius:e("--aark-notification-radius"),notificationShadow:e("--aark-notification-shadow"),notificationPadding:e("--aark-notification-pad"),notificationZIndex:parseInt(e("--aark-notification-z")??"0")||void 0}}var Fo={fire:(t,o)=>h.fire(t,o),modal:(t,o)=>h.fireModal(t,o),notification:(t,o)=>h.fireNotification(t,o),close:()=>h.close(),isOpen:()=>h.isOpen(),closeAll:()=>h.closeAll(),setTheme:t=>D(t),resetTheme:()=>Z(),getTheme:()=>_()},po=Fo;0&&(module.exports={Modal,ModalProvider,Notification,aark,getAarkModalTheme,resetAarkModalTheme,setAarkModalTheme,useModal});
14
+ `,document.body.appendChild(M))),M),eo=()=>{M&&M.children.length===0&&(M.remove(),M=null)};var b=require("react/jsx-runtime"),xo={sm:"400px",md:"550px",lg:"700px",xl:"900px",full:"calc(100vw - 32px)"},No=({config:t,onClose:o})=>{let{content:e,props:a,options:n={}}=t,{position:l="center",showCloseIcon:u=!0,className:s="",overlayClassName:x="",preventEscClose:m=!1,preventOverlayClose:f=!1,width:y,maxWidth:c,size:p,bodyPadding:r}=n;(0,w.useEffect)(()=>{if(m)return;let i=I=>{I.key==="Escape"&&o()};return document.addEventListener("keydown",i),()=>document.removeEventListener("keydown",i)},[o,m]);let d=(0,w.useCallback)(i=>{i.target===i.currentTarget&&!f&&o()},[o,f]),v=(0,w.useCallback)(i=>{i.stopPropagation(),o()},[o]),C=(0,w.useMemo)(()=>{let i={};if(y!==void 0&&(i.width=typeof y=="number"?`${y}px`:y,c===void 0&&(i.maxWidth=i.width)),c!==void 0)i.maxWidth=typeof c=="number"?`${c}px`:c;else if(p){let I=xo[p];p==="full"&&(i.width=i.width??I),i.maxWidth=I}return i},[y,c,p]),_=(0,w.useMemo)(()=>r===void 0||r===!0?{}:r===!1||r===0?{padding:0}:typeof r=="number"?{padding:`${r}px`}:{padding:r},[r]),B=`aark-modal-container ${l} ${s}`.trim(),q=R(),V=()=>a?(0,b.jsxs)("div",{className:B,style:C,role:"dialog","aria-modal":"true",onClick:i=>i.stopPropagation(),children:[u&&(0,b.jsx)("button",{onClick:v,className:"aark-modal-close","aria-label":"Close Modal",type:"button",children:(0,b.jsx)(U,{name:"close",size:12})}),(0,b.jsx)("div",{className:"aark-modal-wrapper",children:(0,b.jsx)(to,{props:a,onClose:o})})]}):e?(0,b.jsx)("div",{className:B,style:C,role:"dialog","aria-modal":"true",onClick:i=>i.stopPropagation(),children:(0,b.jsxs)("div",{className:"aark-modal-body",style:_,children:[u&&(0,b.jsx)("button",{onClick:v,className:"aark-modal-close","aria-label":"Close Modal",type:"button",children:(0,b.jsx)(U,{name:"close",size:12})}),e]})}):null;return(0,ao.createPortal)((0,b.jsx)("div",{className:`aark-modal-overlay ${x}`.trim(),onClick:d,style:{position:"fixed",inset:0,zIndex:"var(--aark-modal-z, 9999)",background:"var(--aark-modal-overlay-bg)",backdropFilter:"blur(var(--aark-modal-overlay-blur, 0px))",WebkitBackdropFilter:"blur(var(--aark-modal-overlay-blur, 0px))",animation:"fade-in var(--aark-anim)",display:"flex",alignItems:l==="center"?"center":l.startsWith("top")?"flex-start":"flex-end",justifyContent:l.endsWith("center")?"center":l.endsWith("right")?"flex-end":"flex-start",padding:"1rem",overflowY:"auto",boxSizing:"border-box"},children:V()}),q)},O=No;var A=require("react"),ro=require("react-dom");var $=require("react"),g=require("react/jsx-runtime"),no={success:"#4ade80",error:"#ef4444",warning:"#f59e0b",info:"#3b82f6",question:"#8b5cf6"},wo={success:"\u2713",error:"\u2715",warning:"\u26A0",info:"\u24D8",question:"?"},Po=({props:t,onClose:o})=>{let{title:e,text:a,type:n="info",icon:l,html:u,timer:s=5e3,showCloseButton:x=!0,clickToClose:m=!0,width:f,fullWidth:y=!1,padding:c,customClass:p={}}=t;(0,$.useEffect)(()=>{if(s&&s>0){let C=setTimeout(o,s);return()=>clearTimeout(C)}},[s,o]);let r=()=>{m&&o()},d=(0,$.useMemo)(()=>l?typeof l=="string"?(0,g.jsx)("span",{children:l}):l:(0,g.jsx)("span",{style:{color:no[n]},children:wo[n]}),[l,n]),v=(0,$.useMemo)(()=>{let C={};return c!==void 0&&(C.padding=typeof c=="number"?`${c}px`:c),y?(C.width="calc(100vw - 40px)",C.maxWidth="calc(100vw - 40px)"):f!==void 0&&(C.width=typeof f=="number"?`${f}px`:f),C},[f,y,c]);return(0,g.jsxs)("div",{className:`aark-standard-notification aark-notification-${n} ${p.popup||""}`,style:v,onClick:r,children:[s&&s>0&&(0,g.jsx)("div",{className:"aark-notification-progress",style:{background:no[n],animation:`aark-notification-progress ${s}ms linear forwards`}}),(0,g.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:"0.75rem"},children:[d&&(0,g.jsx)("div",{className:`aark-notification-icon ${p.icon||""}`,children:d}),(0,g.jsxs)("div",{style:{flex:1,minWidth:0},children:[e&&(0,g.jsx)("div",{className:`aark-notification-header ${p.header||""}`,children:(0,g.jsx)("h4",{className:`aark-notification-title ${p.title||""}`,children:e})}),(0,g.jsx)("div",{className:`aark-notification-content ${p.content||""}`,style:{marginTop:e?"0.25rem":0},children:u?typeof u=="string"?(0,g.jsx)("div",{dangerouslySetInnerHTML:{__html:u}}):(0,g.jsx)("div",{children:u}):a?(0,g.jsx)("p",{children:a}):null})]}),x&&(0,g.jsx)("button",{onClick:C=>{C.stopPropagation(),o()},className:`aark-notification-close ${p.closeButton||""}`,"aria-label":"Close notification",type:"button",children:"\xD7"})]})]})},io=Po;var P=require("react/jsx-runtime"),So=({config:t,onClose:o})=>{let{content:e,props:a,options:n={}}=t,{position:l="top-right",showCloseIcon:u=!0,autoCloseTime:s=5e3,className:x="",preventEscClose:m=!1}=n;(0,A.useEffect)(()=>{if(s&&!a){let d=setTimeout(o,s);return()=>clearTimeout(d)}},[s,o,a]),(0,A.useEffect)(()=>{if(m)return;let d=v=>{v.key==="Escape"&&o()};return document.addEventListener("keydown",d),()=>document.removeEventListener("keydown",d)},[o,m]);let f=(0,A.useCallback)(d=>{d.stopPropagation(),o()},[o]),y=`aark-notification-container ${l} ${x}`.trim(),c=R(),p=()=>{let d={position:"fixed",zIndex:1e4,margin:"1rem"};switch(l){case"top-left":return{...d,top:0,left:0};case"top-center":return{...d,top:0,left:"50%",transform:"translateX(-50%)"};case"top-right":return{...d,top:0,right:0};case"bottom-left":return{...d,bottom:0,left:0};case"bottom-center":return{...d,bottom:0,left:"50%",transform:"translateX(-50%)"};case"bottom-right":return{...d,bottom:0,right:0};default:return{...d,top:0,right:0}}},r=()=>a?(0,P.jsx)("div",{className:"aark-notification-wrapper",children:(0,P.jsx)(io,{props:a,onClose:o})}):e?(0,P.jsxs)("div",{className:y,role:"alert","aria-live":"polite",children:[u&&(0,P.jsx)("button",{onClick:f,className:"aark-notification-close","aria-label":"Close notification",type:"button",children:"\xD7"}),(0,P.jsx)("div",{className:"aark-notification-body",children:e})]}):null;return(0,ro.createPortal)((0,P.jsx)("div",{style:p(),children:r()}),c)},W=So;var Y=require("react/jsx-runtime"),Eo=()=>{let{isOpen:t,config:o,close:e}=F();return!t||!o?null:o.mode==="modal"?(0,Y.jsx)(O,{config:o,onClose:e}):o.mode==="notification"?(0,Y.jsx)(W,{config:o,onClose:e}):null},L=Eo;var G=new Set,E=null,T=null;function co(){if(T)return;let t=R();T=(0,so.createRoot)(t),T.render((0,lo.createElement)(L))}function Ro(t){return G.add(t),()=>G.delete(t)}function H(t,o){let e={type:t,config:o};G.forEach(a=>a(e))}function fo(t,o){co();let e,a;t&&typeof t=="object"&&!("$$typeof"in t)&&!Array.isArray(t)?(a=t,e=void 0):(e=t,a=void 0);let n={content:e,props:a,mode:"modal",options:Object.assign({position:"center",showCloseIcon:!0,preventEscClose:!1,preventOverlayClose:!1},o)};E=n,H("open",n)}function To(t,o){co();let e,a;t&&typeof t=="object"&&!("$$typeof"in t)&&!Array.isArray(t)?(a=t,e=void 0):(e=t,a=void 0);let n={content:e,props:a,mode:"notification",options:Object.assign({position:"top-right",showCloseIcon:!0,autoCloseTime:5e3,preventEscClose:!1},o)};E=n,H("open",n)}function Bo(t,o){fo(t,o)}function mo(){E&&(H("beforeClose",E),E=null,H("close"))}function Io(){return E!==null}function $o(){return E}function Ao(){mo()}function Fo(){T&&(T.unmount(),T=null),eo()}var h={subscribe:Ro,fire:Bo,fireModal:fo,fireNotification:To,close:mo,isOpen:Io,getCurrentConfig:$o,closeAll:Ao,cleanup:Fo};var po={overlayBackground:"--aark-modal-overlay-bg",overlayBlur:"--aark-modal-overlay-blur",modalBackground:"--aark-modal-bg",modalBorderRadius:"--aark-modal-radius",modalShadow:"--aark-modal-shadow",modalPadding:"--aark-modal-pad",modalMaxWidth:"--aark-modal-max-width",modalZIndex:"--aark-modal-z",closeButtonColor:"--aark-close-color",closeButtonHoverBackground:"--aark-close-hover",closeButtonHoverColor:"--aark-close-hover-color",closeButtonFocusOutline:"--aark-close-focus-outline",animationDuration:"--aark-anim",notificationBackground:"--aark-notification-bg",notificationBorderRadius:"--aark-notification-radius",notificationShadow:"--aark-notification-shadow",notificationPadding:"--aark-notification-pad",notificationZIndex:"--aark-notification-z"};function K(t){let o=document.documentElement;Object.keys(t).forEach(e=>{let a=t[e],n=po[e];a!==void 0&&n&&o.style.setProperty(n,String(a))})}function D(){let t=document.documentElement;Object.values(po).forEach(o=>{t.style.removeProperty(o)})}function Z(){let t=document.documentElement,o=getComputedStyle(t),e=a=>o.getPropertyValue(a).trim()||void 0;return{overlayBackground:e("--aark-modal-overlay-bg"),overlayBlur:e("--aark-modal-overlay-blur"),modalBackground:e("--aark-modal-bg"),modalBorderRadius:e("--aark-modal-radius"),modalShadow:e("--aark-modal-shadow"),modalPadding:e("--aark-modal-pad"),modalMaxWidth:e("--aark-modal-max-width"),modalZIndex:parseInt(e("--aark-modal-z")??"0")||void 0,closeButtonColor:e("--aark-close-color"),closeButtonHoverBackground:e("--aark-close-hover"),closeButtonHoverColor:e("--aark-close-hover-color"),closeButtonFocusOutline:e("--aark-close-focus-outline"),animationDuration:e("--aark-anim"),notificationBackground:e("--aark-notification-bg"),notificationBorderRadius:e("--aark-notification-radius"),notificationShadow:e("--aark-notification-shadow"),notificationPadding:e("--aark-notification-pad"),notificationZIndex:parseInt(e("--aark-notification-z")??"0")||void 0}}var zo={fire:(t,o)=>h.fire(t,o),modal:(t,o)=>h.fireModal(t,o),notification:(t,o)=>h.fireNotification(t,o),close:()=>h.close(),isOpen:()=>h.isOpen(),closeAll:()=>h.closeAll(),setTheme:t=>K(t),resetTheme:()=>D(),getTheme:()=>Z()},uo=zo;0&&(module.exports={Modal,ModalProvider,Notification,aark,getAarkModalTheme,resetAarkModalTheme,setAarkModalTheme,useModal});
package/dist/index.d.mts CHANGED
@@ -82,6 +82,14 @@ interface ModalOptions extends BaseOptions {
82
82
  width?: string | number;
83
83
  /** Explicit max-width (e.g. '600px', '90vw'). Overrides size preset. */
84
84
  maxWidth?: string | number;
85
+ /**
86
+ * Controls padding on the modal body card (component-based modals only).
87
+ * - true / omitted → default CSS var (--aark-modal-pad, 16px)
88
+ * - false | 0 → no padding (useful when header/footer need edge-to-edge borders)
89
+ * - number → px value e.g. 24
90
+ * - string → any CSS value e.g. '8px 16px'
91
+ */
92
+ bodyPadding?: boolean | string | number;
85
93
  }
86
94
  interface NotificationOptions extends BaseOptions {
87
95
  position?: NotificationPosition;
package/dist/index.d.ts CHANGED
@@ -82,6 +82,14 @@ interface ModalOptions extends BaseOptions {
82
82
  width?: string | number;
83
83
  /** Explicit max-width (e.g. '600px', '90vw'). Overrides size preset. */
84
84
  maxWidth?: string | number;
85
+ /**
86
+ * Controls padding on the modal body card (component-based modals only).
87
+ * - true / omitted → default CSS var (--aark-modal-pad, 16px)
88
+ * - false | 0 → no padding (useful when header/footer need edge-to-edge borders)
89
+ * - number → px value e.g. 24
90
+ * - string → any CSS value e.g. '8px 16px'
91
+ */
92
+ bodyPadding?: boolean | string | number;
85
93
  }
86
94
  interface NotificationOptions extends BaseOptions {
87
95
  position?: NotificationPosition;
package/dist/index.esm.js CHANGED
@@ -1,9 +1,9 @@
1
- import{createElement as Ro}from"react";import{createRoot as To}from"react-dom/client";import{useEffect as fo,useState as q,useCallback as mo}from"react";function A(){let[t,o]=q(!1),[e,a]=q(null),i=mo(()=>{k.close()},[]);return fo(()=>{let n=s=>{switch(s.type){case"open":o(!0),a(s.config||null);break;case"close":o(!1),a(null);break;case"beforeClose":break}},u=k.subscribe(n);return o(k.isOpen()),a(k.getCurrentConfig()),u},[]),{isOpen:t,config:e,close:i}}import{useEffect as yo,useCallback as Q,useMemo as vo}from"react";import{createPortal as ko}from"react-dom";import{memo as po,useMemo as R}from"react";import{jsx as F}from"react/jsx-runtime";var V={white:"#FFFFFF",black:"#0B071A"},j=po(({name:t,color:o="black",style:e,className:a="",noHoverEffect:i=!1,onClick:n,size:u=24,"aria-label":s,title:h})=>{let m=R(()=>String(u),[u]),f=R(()=>V[o]?V[o]:(o.startsWith("#"),o),[o]),g=R(()=>{let d=f;return t==="close"?F("svg",{xmlns:"http://www.w3.org/2000/svg",width:m,height:m,viewBox:"0 0 16 16",fill:"none",children:F("path",{d:"M15.281 14.2198C15.3507 14.2895 15.406 14.3722 15.4437 14.4632C15.4814 14.5543 15.5008 14.6519 15.5008 14.7504C15.5008 14.849 15.4814 14.9465 15.4437 15.0376C15.406 15.1286 15.3507 15.2114 15.281 15.281C15.2114 15.3507 15.1286 15.406 15.0376 15.4437C14.9465 15.4814 14.849 15.5008 14.7504 15.5008C14.6519 15.5008 14.5543 15.4814 14.4632 15.4437C14.3722 15.406 14.2895 15.3507 14.2198 15.281L8.00042 9.06073L1.78104 15.281C1.64031 15.4218 1.44944 15.5008 1.25042 15.5008C1.05139 15.5008 0.860523 15.4218 0.719792 15.281C0.579062 15.1403 0.5 14.9494 0.5 14.7504C0.5 14.5514 0.579062 14.3605 0.719792 14.2198L6.9401 8.00042L0.719792 1.78104C0.579062 1.64031 0.5 1.44944 0.5 1.25042C0.5 1.05139 0.579062 0.860523 0.719792 0.719792C0.860523 0.579062 1.05139 0.5 1.25042 0.5C1.44944 0.5 1.64031 0.579062 1.78104 0.719792L8.00042 6.9401L14.2198 0.719792C14.3605 0.579062 14.5514 0.5 14.7504 0.5C14.9494 0.5 15.1403 0.579062 15.281 0.719792C15.4218 0.860523 15.5008 1.05139 15.5008 1.25042C15.5008 1.44944 15.4218 1.64031 15.281 1.78104L9.06073 8.00042L15.281 14.2198Z",fill:d})}):null},[t,f,m]),c=R(()=>{let d={};return s?d["aria-label"]=s:d["aria-label"]=`${t} icon`,h&&(d.title=h),d.role=n?"button":"img",d},[s,h,t,n]),p=R(()=>{if(n)return d=>{(d.key==="Enter"||d.key===" ")&&(d.preventDefault(),n())}},[n]);return F("i",{className:`
1
+ import{createElement as To}from"react";import{createRoot as Bo}from"react-dom/client";import{useEffect as po,useState as V,useCallback as uo}from"react";function F(){let[t,o]=V(!1),[e,a]=V(null),l=uo(()=>{k.close()},[]);return po(()=>{let r=s=>{switch(s.type){case"open":o(!0),a(s.config||null);break;case"close":o(!1),a(null);break;case"beforeClose":break}},u=k.subscribe(r);return o(k.isOpen()),a(k.getCurrentConfig()),u},[]),{isOpen:t,config:e,close:l}}import{useEffect as ko,useCallback as oo,useMemo as to}from"react";import{createPortal as Co}from"react-dom";import{memo as go,useMemo as R}from"react";import{jsx as z}from"react/jsx-runtime";var j={white:"#FFFFFF",black:"#0B071A"},U=go(({name:t,color:o="black",style:e,className:a="",noHoverEffect:l=!1,onClick:r,size:u=24,"aria-label":s,title:h})=>{let m=R(()=>String(u),[u]),f=R(()=>j[o]?j[o]:(o.startsWith("#"),o),[o]),g=R(()=>{let i=f;return t==="close"?z("svg",{xmlns:"http://www.w3.org/2000/svg",width:m,height:m,viewBox:"0 0 16 16",fill:"none",children:z("path",{d:"M15.281 14.2198C15.3507 14.2895 15.406 14.3722 15.4437 14.4632C15.4814 14.5543 15.5008 14.6519 15.5008 14.7504C15.5008 14.849 15.4814 14.9465 15.4437 15.0376C15.406 15.1286 15.3507 15.2114 15.281 15.281C15.2114 15.3507 15.1286 15.406 15.0376 15.4437C14.9465 15.4814 14.849 15.5008 14.7504 15.5008C14.6519 15.5008 14.5543 15.4814 14.4632 15.4437C14.3722 15.406 14.2895 15.3507 14.2198 15.281L8.00042 9.06073L1.78104 15.281C1.64031 15.4218 1.44944 15.5008 1.25042 15.5008C1.05139 15.5008 0.860523 15.4218 0.719792 15.281C0.579062 15.1403 0.5 14.9494 0.5 14.7504C0.5 14.5514 0.579062 14.3605 0.719792 14.2198L6.9401 8.00042L0.719792 1.78104C0.579062 1.64031 0.5 1.44944 0.5 1.25042C0.5 1.05139 0.579062 0.860523 0.719792 0.719792C0.860523 0.579062 1.05139 0.5 1.25042 0.5C1.44944 0.5 1.64031 0.579062 1.78104 0.719792L8.00042 6.9401L14.2198 0.719792C14.3605 0.579062 14.5514 0.5 14.7504 0.5C14.9494 0.5 15.1403 0.579062 15.281 0.719792C15.4218 0.860523 15.5008 1.05139 15.5008 1.25042C15.5008 1.44944 15.4218 1.64031 15.281 1.78104L9.06073 8.00042L15.281 14.2198Z",fill:i})}):null},[t,f,m]),c=R(()=>{let i={};return s?i["aria-label"]=s:i["aria-label"]=`${t} icon`,h&&(i.title=h),i.role=r?"button":"img",i},[s,h,t,r]),p=R(()=>{if(r)return i=>{(i.key==="Enter"||i.key===" ")&&(i.preventDefault(),r())}},[r]);return z("i",{className:`
2
2
  inline-flex items-center justify-center bg-transparent outline-none border-none
3
- ${!i&&n&&"hover:opacity-80 cursor-pointer transition-opacity duration-200"}
4
- ${n&&"focus:outline-2 focus:outline-blue-500 focus:outline-offset-2"}
3
+ ${!l&&r&&"hover:opacity-80 cursor-pointer transition-opacity duration-200"}
4
+ ${r&&"focus:outline-2 focus:outline-blue-500 focus:outline-offset-2"}
5
5
  ${a}
6
- `.trim(),style:e,onClick:n,onKeyDown:p,tabIndex:n?0:void 0,...c,children:g})});j.displayName="Icon";var z=j;import{useMemo as U}from"react";import{jsx as M,jsxs as Y}from"react/jsx-runtime";var uo={success:"\u2713",error:"\u2715",warning:"\u26A0",info:"\u24D8",question:"?"},X={success:"#4ade80",error:"#ef4444",warning:"#f59e0b",info:"#3b82f6",question:"#8b5cf6"},go=({props:t,onClose:o})=>{let{title:e,text:a,type:i="info",cancelText:n="Cancel",confirmText:u="OK",onCancel:s,onConfirm:h,icon:m,html:f,showCancelButton:g=!1,showConfirmButton:c=!0,reverseButtons:p=!1,width:d="auto",fullWidth:r=!1,customClass:y={}}=t,v=()=>{s?.(),o()},$=()=>{h?.(),o()},B=U(()=>m?typeof m=="string"?M("span",{children:m}):m:M("span",{style:{color:X[i]},children:uo[i]}),[m,i]),l=p?["confirm","cancel"]:["cancel","confirm"],w=U(()=>{let x={};return r?(x.width="calc(100vw - 20px)",x.maxWidth="calc(100vw - 20px)"):typeof d=="number"?x.width=`${d}px`:x.width=d,x},[d,r]);return Y("div",{className:`aark-standard-modal ${y.popup||""}`,style:w,children:[Y("div",{className:`aark-modal-content ${y.content||""}`,children:[B&&M("div",{className:`aark-modal-icon ${y.icon||""}`,children:B}),e&&M("div",{className:`aark-modal-header ${y.header||""}`,children:M("h2",{className:`aark-modal-title ${y.title||""}`,children:e})}),f?typeof f=="string"?M("div",{dangerouslySetInnerHTML:{__html:f}}):M("div",{children:f}):a?M("p",{children:a}):null]}),(g||c)&&M("div",{className:`aark-modal-footer ${y.actions||""}`,children:l.map(x=>x==="cancel"&&g?M("button",{onClick:v,className:`aark-modal-cancel-button ${y.cancelButton||""}`,children:n},"cancel"):x==="confirm"&&c?M("button",{onClick:$,className:`aark-modal-confirm-button ${y.confirmButton||""}`,style:{background:X[i]},children:u},"confirm"):null)})]})},G=go;var C=null,S=()=>(C||(C=document.getElementById("aark-react-modalify-root"),C||(C=document.createElement("div"),C.id="aark-react-modalify-root",C.style.cssText=`
6
+ `.trim(),style:e,onClick:r,onKeyDown:p,tabIndex:r?0:void 0,...c,children:g})});U.displayName="Icon";var O=U;import{useMemo as X}from"react";import{jsx as M,jsxs as G}from"react/jsx-runtime";var yo={success:"\u2713",error:"\u2715",warning:"\u26A0",info:"\u24D8",question:"?"},Y={success:"#4ade80",error:"#ef4444",warning:"#f59e0b",info:"#3b82f6",question:"#8b5cf6"},vo=({props:t,onClose:o})=>{let{title:e,text:a,type:l="info",cancelText:r="Cancel",confirmText:u="OK",onCancel:s,onConfirm:h,icon:m,html:f,showCancelButton:g=!1,showConfirmButton:c=!0,reverseButtons:p=!1,width:i="auto",fullWidth:d=!1,customClass:y={}}=t,v=()=>{s?.(),o()},I=()=>{h?.(),o()},S=X(()=>m?typeof m=="string"?M("span",{children:m}):m:M("span",{style:{color:Y[l]},children:yo[l]}),[m,l]),$=p?["confirm","cancel"]:["cancel","confirm"],A=X(()=>{let n={};return d?(n.width="calc(100vw - 20px)",n.maxWidth="calc(100vw - 20px)"):typeof i=="number"?n.width=`${i}px`:n.width=i,n},[i,d]);return G("div",{className:`aark-standard-modal ${y.popup||""}`,style:A,children:[G("div",{className:`aark-modal-content ${y.content||""}`,children:[S&&M("div",{className:`aark-modal-icon ${y.icon||""}`,children:S}),e&&M("div",{className:`aark-modal-header ${y.header||""}`,children:M("h2",{className:`aark-modal-title ${y.title||""}`,children:e})}),f?typeof f=="string"?M("div",{dangerouslySetInnerHTML:{__html:f}}):M("div",{children:f}):a?M("p",{children:a}):null]}),(g||c)&&M("div",{className:`aark-modal-footer ${y.actions||""}`,children:$.map(n=>n==="cancel"&&g?M("button",{onClick:v,className:`aark-modal-cancel-button ${y.cancelButton||""}`,children:r},"cancel"):n==="confirm"&&c?M("button",{onClick:I,className:`aark-modal-confirm-button ${y.confirmButton||""}`,style:{background:Y[l]},children:u},"confirm"):null)})]})},J=vo;var C=null,w=()=>(C||(C=document.getElementById("aark-react-modalify-root"),C||(C=document.createElement("div"),C.id="aark-react-modalify-root",C.style.cssText=`
7
7
  position: fixed;
8
8
  top: 0;
9
9
  left: 0;
@@ -11,4 +11,4 @@ import{createElement as Ro}from"react";import{createRoot as To}from"react-dom/cl
11
11
  height: 100%;
12
12
  pointer-events: none;
13
13
  z-index: var(--aark-modal-z, 9999);
14
- `,document.body.appendChild(C))),C),J=()=>{C&&C.children.length===0&&(C.remove(),C=null)};import{jsx as N,jsxs as oo}from"react/jsx-runtime";var Co={sm:"400px",md:"550px",lg:"700px",xl:"900px",full:"calc(100vw - 32px)"},ho=({config:t,onClose:o})=>{let{content:e,props:a,options:i={}}=t,{position:n="center",showCloseIcon:u=!0,className:s="",overlayClassName:h="",preventEscClose:m=!1,preventOverlayClose:f=!1,width:g,maxWidth:c,size:p}=i;yo(()=>{if(m)return;let l=w=>{w.key==="Escape"&&o()};return document.addEventListener("keydown",l),()=>document.removeEventListener("keydown",l)},[o,m]);let d=Q(l=>{l.target===l.currentTarget&&!f&&o()},[o,f]),r=Q(l=>{l.stopPropagation(),o()},[o]),y=vo(()=>{let l={};if(g!==void 0&&(l.width=typeof g=="number"?`${g}px`:g,c===void 0&&(l.maxWidth=l.width)),c!==void 0)l.maxWidth=typeof c=="number"?`${c}px`:c;else if(p){let w=Co[p];p==="full"&&(l.width=l.width??w),l.maxWidth=w}return l},[g,c,p]),v=`aark-modal-container ${n} ${s}`.trim(),$=S(),B=()=>a?oo("div",{className:v,style:y,role:"dialog","aria-modal":"true",onClick:l=>l.stopPropagation(),children:[u&&N("button",{onClick:r,className:"aark-modal-close","aria-label":"Close Modal",type:"button",children:N(z,{name:"close",size:12})}),N("div",{className:"aark-modal-wrapper",children:N(G,{props:a,onClose:o})})]}):e?N("div",{className:v,style:y,role:"dialog","aria-modal":"true",onClick:l=>l.stopPropagation(),children:oo("div",{className:"aark-modal-body",children:[u&&N("button",{onClick:r,className:"aark-modal-close","aria-label":"Close Modal",type:"button",children:N(z,{name:"close",size:12})}),e]})}):null;return ko(N("div",{className:`aark-modal-overlay ${h}`.trim(),onClick:d,style:{position:"fixed",inset:0,zIndex:"var(--aark-modal-z, 9999)",background:"var(--aark-modal-overlay-bg)",backdropFilter:"blur(var(--aark-modal-overlay-blur, 0px))",WebkitBackdropFilter:"blur(var(--aark-modal-overlay-blur, 0px))",animation:"fade-in var(--aark-anim)",display:"flex",alignItems:n==="center"?"center":n.startsWith("top")?"flex-start":"flex-end",justifyContent:n.endsWith("center")?"center":n.endsWith("right")?"flex-end":"flex-start",padding:"1rem",overflowY:"auto",boxSizing:"border-box"},children:B()}),$)},O=ho;import{useEffect as no,useCallback as No}from"react";import{createPortal as wo}from"react-dom";import{useMemo as to,useEffect as Mo}from"react";import{jsx as b,jsxs as W}from"react/jsx-runtime";var eo={success:"#4ade80",error:"#ef4444",warning:"#f59e0b",info:"#3b82f6",question:"#8b5cf6"},bo={success:"\u2713",error:"\u2715",warning:"\u26A0",info:"\u24D8",question:"?"},xo=({props:t,onClose:o})=>{let{title:e,text:a,type:i="info",icon:n,html:u,timer:s=5e3,showCloseButton:h=!0,clickToClose:m=!0,width:f,fullWidth:g=!1,padding:c,customClass:p={}}=t;Mo(()=>{if(s&&s>0){let v=setTimeout(o,s);return()=>clearTimeout(v)}},[s,o]);let d=()=>{m&&o()},r=to(()=>n?typeof n=="string"?b("span",{children:n}):n:b("span",{style:{color:eo[i]},children:bo[i]}),[n,i]),y=to(()=>{let v={};return c!==void 0&&(v.padding=typeof c=="number"?`${c}px`:c),g?(v.width="calc(100vw - 40px)",v.maxWidth="calc(100vw - 40px)"):f!==void 0&&(v.width=typeof f=="number"?`${f}px`:f),v},[f,g,c]);return W("div",{className:`aark-standard-notification aark-notification-${i} ${p.popup||""}`,style:y,onClick:d,children:[s&&s>0&&b("div",{className:"aark-notification-progress",style:{background:eo[i],animation:`aark-notification-progress ${s}ms linear forwards`}}),W("div",{style:{display:"flex",alignItems:"flex-start",gap:"0.75rem"},children:[r&&b("div",{className:`aark-notification-icon ${p.icon||""}`,children:r}),W("div",{style:{flex:1,minWidth:0},children:[e&&b("div",{className:`aark-notification-header ${p.header||""}`,children:b("h4",{className:`aark-notification-title ${p.title||""}`,children:e})}),b("div",{className:`aark-notification-content ${p.content||""}`,style:{marginTop:e?"0.25rem":0},children:u?typeof u=="string"?b("div",{dangerouslySetInnerHTML:{__html:u}}):b("div",{children:u}):a?b("p",{children:a}):null})]}),h&&b("button",{onClick:v=>{v.stopPropagation(),o()},className:`aark-notification-close ${p.closeButton||""}`,"aria-label":"Close notification",type:"button",children:"\xD7"})]})]})},ao=xo;import{jsx as T,jsxs as So}from"react/jsx-runtime";var Po=({config:t,onClose:o})=>{let{content:e,props:a,options:i={}}=t,{position:n="top-right",showCloseIcon:u=!0,autoCloseTime:s=5e3,className:h="",preventEscClose:m=!1}=i;no(()=>{if(s&&!a){let r=setTimeout(o,s);return()=>clearTimeout(r)}},[s,o,a]),no(()=>{if(m)return;let r=y=>{y.key==="Escape"&&o()};return document.addEventListener("keydown",r),()=>document.removeEventListener("keydown",r)},[o,m]);let f=No(r=>{r.stopPropagation(),o()},[o]),g=`aark-notification-container ${n} ${h}`.trim(),c=S(),p=()=>{let r={position:"fixed",zIndex:1e4,margin:"1rem"};switch(n){case"top-left":return{...r,top:0,left:0};case"top-center":return{...r,top:0,left:"50%",transform:"translateX(-50%)"};case"top-right":return{...r,top:0,right:0};case"bottom-left":return{...r,bottom:0,left:0};case"bottom-center":return{...r,bottom:0,left:"50%",transform:"translateX(-50%)"};case"bottom-right":return{...r,bottom:0,right:0};default:return{...r,top:0,right:0}}},d=()=>a?T("div",{className:"aark-notification-wrapper",children:T(ao,{props:a,onClose:o})}):e?So("div",{className:g,role:"alert","aria-live":"polite",children:[u&&T("button",{onClick:f,className:"aark-notification-close","aria-label":"Close notification",type:"button",children:"\xD7"}),T("div",{className:"aark-notification-body",children:e})]}):null;return wo(T("div",{style:p(),children:d()}),c)},L=Po;import{jsx as io}from"react/jsx-runtime";var Eo=()=>{let{isOpen:t,config:o,close:e}=A();return!t||!o?null:o.mode==="modal"?io(O,{config:o,onClose:e}):o.mode==="notification"?io(L,{config:o,onClose:e}):null},H=Eo;var K=new Set,P=null,E=null;function ro(){if(E)return;let t=S();E=To(t),E.render(Ro(H))}function Bo(t){return K.add(t),()=>K.delete(t)}function I(t,o){let e={type:t,config:o};K.forEach(a=>a(e))}function lo(t,o){ro();let e,a;t&&typeof t=="object"&&!("$$typeof"in t)&&!Array.isArray(t)?(a=t,e=void 0):(e=t,a=void 0);let i={content:e,props:a,mode:"modal",options:Object.assign({position:"center",showCloseIcon:!0,preventEscClose:!1,preventOverlayClose:!1},o)};P=i,I("open",i)}function Io(t,o){ro();let e,a;t&&typeof t=="object"&&!("$$typeof"in t)&&!Array.isArray(t)?(a=t,e=void 0):(e=t,a=void 0);let i={content:e,props:a,mode:"notification",options:Object.assign({position:"top-right",showCloseIcon:!0,autoCloseTime:5e3,preventEscClose:!1},o)};P=i,I("open",i)}function $o(t,o){lo(t,o)}function so(){P&&(I("beforeClose",P),P=null,I("close"))}function Ao(){return P!==null}function Fo(){return P}function zo(){so()}function Oo(){E&&(E.unmount(),E=null),J()}var k={subscribe:Bo,fire:$o,fireModal:lo,fireNotification:Io,close:so,isOpen:Ao,getCurrentConfig:Fo,closeAll:zo,cleanup:Oo};var co={overlayBackground:"--aark-modal-overlay-bg",overlayBlur:"--aark-modal-overlay-blur",modalBackground:"--aark-modal-bg",modalBorderRadius:"--aark-modal-radius",modalShadow:"--aark-modal-shadow",modalPadding:"--aark-modal-pad",modalMaxWidth:"--aark-modal-max-width",modalZIndex:"--aark-modal-z",closeButtonColor:"--aark-close-color",closeButtonHoverBackground:"--aark-close-hover",closeButtonHoverColor:"--aark-close-hover-color",closeButtonFocusOutline:"--aark-close-focus-outline",animationDuration:"--aark-anim",notificationBackground:"--aark-notification-bg",notificationBorderRadius:"--aark-notification-radius",notificationShadow:"--aark-notification-shadow",notificationPadding:"--aark-notification-pad",notificationZIndex:"--aark-notification-z"};function D(t){let o=document.documentElement;Object.keys(t).forEach(e=>{let a=t[e],i=co[e];a!==void 0&&i&&o.style.setProperty(i,String(a))})}function Z(){let t=document.documentElement;Object.values(co).forEach(o=>{t.style.removeProperty(o)})}function _(){let t=document.documentElement,o=getComputedStyle(t),e=a=>o.getPropertyValue(a).trim()||void 0;return{overlayBackground:e("--aark-modal-overlay-bg"),overlayBlur:e("--aark-modal-overlay-blur"),modalBackground:e("--aark-modal-bg"),modalBorderRadius:e("--aark-modal-radius"),modalShadow:e("--aark-modal-shadow"),modalPadding:e("--aark-modal-pad"),modalMaxWidth:e("--aark-modal-max-width"),modalZIndex:parseInt(e("--aark-modal-z")??"0")||void 0,closeButtonColor:e("--aark-close-color"),closeButtonHoverBackground:e("--aark-close-hover"),closeButtonHoverColor:e("--aark-close-hover-color"),closeButtonFocusOutline:e("--aark-close-focus-outline"),animationDuration:e("--aark-anim"),notificationBackground:e("--aark-notification-bg"),notificationBorderRadius:e("--aark-notification-radius"),notificationShadow:e("--aark-notification-shadow"),notificationPadding:e("--aark-notification-pad"),notificationZIndex:parseInt(e("--aark-notification-z")??"0")||void 0}}var Wo={fire:(t,o)=>k.fire(t,o),modal:(t,o)=>k.fireModal(t,o),notification:(t,o)=>k.fireNotification(t,o),close:()=>k.close(),isOpen:()=>k.isOpen(),closeAll:()=>k.closeAll(),setTheme:t=>D(t),resetTheme:()=>Z(),getTheme:()=>_()},Lo=Wo;export{O as Modal,H as ModalProvider,L as Notification,Lo as aark,_ as getAarkModalTheme,Z as resetAarkModalTheme,D as setAarkModalTheme,A as useModal};
14
+ `,document.body.appendChild(C))),C),Q=()=>{C&&C.children.length===0&&(C.remove(),C=null)};import{jsx as x,jsxs as eo}from"react/jsx-runtime";var ho={sm:"400px",md:"550px",lg:"700px",xl:"900px",full:"calc(100vw - 32px)"},Mo=({config:t,onClose:o})=>{let{content:e,props:a,options:l={}}=t,{position:r="center",showCloseIcon:u=!0,className:s="",overlayClassName:h="",preventEscClose:m=!1,preventOverlayClose:f=!1,width:g,maxWidth:c,size:p,bodyPadding:i}=l;ko(()=>{if(m)return;let n=E=>{E.key==="Escape"&&o()};return document.addEventListener("keydown",n),()=>document.removeEventListener("keydown",n)},[o,m]);let d=oo(n=>{n.target===n.currentTarget&&!f&&o()},[o,f]),y=oo(n=>{n.stopPropagation(),o()},[o]),v=to(()=>{let n={};if(g!==void 0&&(n.width=typeof g=="number"?`${g}px`:g,c===void 0&&(n.maxWidth=n.width)),c!==void 0)n.maxWidth=typeof c=="number"?`${c}px`:c;else if(p){let E=ho[p];p==="full"&&(n.width=n.width??E),n.maxWidth=E}return n},[g,c,p]),I=to(()=>i===void 0||i===!0?{}:i===!1||i===0?{padding:0}:typeof i=="number"?{padding:`${i}px`}:{padding:i},[i]),S=`aark-modal-container ${r} ${s}`.trim(),$=w(),A=()=>a?eo("div",{className:S,style:v,role:"dialog","aria-modal":"true",onClick:n=>n.stopPropagation(),children:[u&&x("button",{onClick:y,className:"aark-modal-close","aria-label":"Close Modal",type:"button",children:x(O,{name:"close",size:12})}),x("div",{className:"aark-modal-wrapper",children:x(J,{props:a,onClose:o})})]}):e?x("div",{className:S,style:v,role:"dialog","aria-modal":"true",onClick:n=>n.stopPropagation(),children:eo("div",{className:"aark-modal-body",style:I,children:[u&&x("button",{onClick:y,className:"aark-modal-close","aria-label":"Close Modal",type:"button",children:x(O,{name:"close",size:12})}),e]})}):null;return Co(x("div",{className:`aark-modal-overlay ${h}`.trim(),onClick:d,style:{position:"fixed",inset:0,zIndex:"var(--aark-modal-z, 9999)",background:"var(--aark-modal-overlay-bg)",backdropFilter:"blur(var(--aark-modal-overlay-blur, 0px))",WebkitBackdropFilter:"blur(var(--aark-modal-overlay-blur, 0px))",animation:"fade-in var(--aark-anim)",display:"flex",alignItems:r==="center"?"center":r.startsWith("top")?"flex-start":"flex-end",justifyContent:r.endsWith("center")?"center":r.endsWith("right")?"flex-end":"flex-start",padding:"1rem",overflowY:"auto",boxSizing:"border-box"},children:A()}),$)},W=Mo;import{useEffect as ro,useCallback as wo}from"react";import{createPortal as Po}from"react-dom";import{useMemo as ao,useEffect as bo}from"react";import{jsx as b,jsxs as L}from"react/jsx-runtime";var no={success:"#4ade80",error:"#ef4444",warning:"#f59e0b",info:"#3b82f6",question:"#8b5cf6"},xo={success:"\u2713",error:"\u2715",warning:"\u26A0",info:"\u24D8",question:"?"},No=({props:t,onClose:o})=>{let{title:e,text:a,type:l="info",icon:r,html:u,timer:s=5e3,showCloseButton:h=!0,clickToClose:m=!0,width:f,fullWidth:g=!1,padding:c,customClass:p={}}=t;bo(()=>{if(s&&s>0){let v=setTimeout(o,s);return()=>clearTimeout(v)}},[s,o]);let i=()=>{m&&o()},d=ao(()=>r?typeof r=="string"?b("span",{children:r}):r:b("span",{style:{color:no[l]},children:xo[l]}),[r,l]),y=ao(()=>{let v={};return c!==void 0&&(v.padding=typeof c=="number"?`${c}px`:c),g?(v.width="calc(100vw - 40px)",v.maxWidth="calc(100vw - 40px)"):f!==void 0&&(v.width=typeof f=="number"?`${f}px`:f),v},[f,g,c]);return L("div",{className:`aark-standard-notification aark-notification-${l} ${p.popup||""}`,style:y,onClick:i,children:[s&&s>0&&b("div",{className:"aark-notification-progress",style:{background:no[l],animation:`aark-notification-progress ${s}ms linear forwards`}}),L("div",{style:{display:"flex",alignItems:"flex-start",gap:"0.75rem"},children:[d&&b("div",{className:`aark-notification-icon ${p.icon||""}`,children:d}),L("div",{style:{flex:1,minWidth:0},children:[e&&b("div",{className:`aark-notification-header ${p.header||""}`,children:b("h4",{className:`aark-notification-title ${p.title||""}`,children:e})}),b("div",{className:`aark-notification-content ${p.content||""}`,style:{marginTop:e?"0.25rem":0},children:u?typeof u=="string"?b("div",{dangerouslySetInnerHTML:{__html:u}}):b("div",{children:u}):a?b("p",{children:a}):null})]}),h&&b("button",{onClick:v=>{v.stopPropagation(),o()},className:`aark-notification-close ${p.closeButton||""}`,"aria-label":"Close notification",type:"button",children:"\xD7"})]})]})},io=No;import{jsx as T,jsxs as Eo}from"react/jsx-runtime";var So=({config:t,onClose:o})=>{let{content:e,props:a,options:l={}}=t,{position:r="top-right",showCloseIcon:u=!0,autoCloseTime:s=5e3,className:h="",preventEscClose:m=!1}=l;ro(()=>{if(s&&!a){let d=setTimeout(o,s);return()=>clearTimeout(d)}},[s,o,a]),ro(()=>{if(m)return;let d=y=>{y.key==="Escape"&&o()};return document.addEventListener("keydown",d),()=>document.removeEventListener("keydown",d)},[o,m]);let f=wo(d=>{d.stopPropagation(),o()},[o]),g=`aark-notification-container ${r} ${h}`.trim(),c=w(),p=()=>{let d={position:"fixed",zIndex:1e4,margin:"1rem"};switch(r){case"top-left":return{...d,top:0,left:0};case"top-center":return{...d,top:0,left:"50%",transform:"translateX(-50%)"};case"top-right":return{...d,top:0,right:0};case"bottom-left":return{...d,bottom:0,left:0};case"bottom-center":return{...d,bottom:0,left:"50%",transform:"translateX(-50%)"};case"bottom-right":return{...d,bottom:0,right:0};default:return{...d,top:0,right:0}}},i=()=>a?T("div",{className:"aark-notification-wrapper",children:T(io,{props:a,onClose:o})}):e?Eo("div",{className:g,role:"alert","aria-live":"polite",children:[u&&T("button",{onClick:f,className:"aark-notification-close","aria-label":"Close notification",type:"button",children:"\xD7"}),T("div",{className:"aark-notification-body",children:e})]}):null;return Po(T("div",{style:p(),children:i()}),c)},H=So;import{jsx as lo}from"react/jsx-runtime";var Ro=()=>{let{isOpen:t,config:o,close:e}=F();return!t||!o?null:o.mode==="modal"?lo(W,{config:o,onClose:e}):o.mode==="notification"?lo(H,{config:o,onClose:e}):null},K=Ro;var D=new Set,N=null,P=null;function so(){if(P)return;let t=w();P=Bo(t),P.render(To(K))}function Io(t){return D.add(t),()=>D.delete(t)}function B(t,o){let e={type:t,config:o};D.forEach(a=>a(e))}function co(t,o){so();let e,a;t&&typeof t=="object"&&!("$$typeof"in t)&&!Array.isArray(t)?(a=t,e=void 0):(e=t,a=void 0);let l={content:e,props:a,mode:"modal",options:Object.assign({position:"center",showCloseIcon:!0,preventEscClose:!1,preventOverlayClose:!1},o)};N=l,B("open",l)}function $o(t,o){so();let e,a;t&&typeof t=="object"&&!("$$typeof"in t)&&!Array.isArray(t)?(a=t,e=void 0):(e=t,a=void 0);let l={content:e,props:a,mode:"notification",options:Object.assign({position:"top-right",showCloseIcon:!0,autoCloseTime:5e3,preventEscClose:!1},o)};N=l,B("open",l)}function Ao(t,o){co(t,o)}function fo(){N&&(B("beforeClose",N),N=null,B("close"))}function Fo(){return N!==null}function zo(){return N}function Oo(){fo()}function Wo(){P&&(P.unmount(),P=null),Q()}var k={subscribe:Io,fire:Ao,fireModal:co,fireNotification:$o,close:fo,isOpen:Fo,getCurrentConfig:zo,closeAll:Oo,cleanup:Wo};var mo={overlayBackground:"--aark-modal-overlay-bg",overlayBlur:"--aark-modal-overlay-blur",modalBackground:"--aark-modal-bg",modalBorderRadius:"--aark-modal-radius",modalShadow:"--aark-modal-shadow",modalPadding:"--aark-modal-pad",modalMaxWidth:"--aark-modal-max-width",modalZIndex:"--aark-modal-z",closeButtonColor:"--aark-close-color",closeButtonHoverBackground:"--aark-close-hover",closeButtonHoverColor:"--aark-close-hover-color",closeButtonFocusOutline:"--aark-close-focus-outline",animationDuration:"--aark-anim",notificationBackground:"--aark-notification-bg",notificationBorderRadius:"--aark-notification-radius",notificationShadow:"--aark-notification-shadow",notificationPadding:"--aark-notification-pad",notificationZIndex:"--aark-notification-z"};function Z(t){let o=document.documentElement;Object.keys(t).forEach(e=>{let a=t[e],l=mo[e];a!==void 0&&l&&o.style.setProperty(l,String(a))})}function _(){let t=document.documentElement;Object.values(mo).forEach(o=>{t.style.removeProperty(o)})}function q(){let t=document.documentElement,o=getComputedStyle(t),e=a=>o.getPropertyValue(a).trim()||void 0;return{overlayBackground:e("--aark-modal-overlay-bg"),overlayBlur:e("--aark-modal-overlay-blur"),modalBackground:e("--aark-modal-bg"),modalBorderRadius:e("--aark-modal-radius"),modalShadow:e("--aark-modal-shadow"),modalPadding:e("--aark-modal-pad"),modalMaxWidth:e("--aark-modal-max-width"),modalZIndex:parseInt(e("--aark-modal-z")??"0")||void 0,closeButtonColor:e("--aark-close-color"),closeButtonHoverBackground:e("--aark-close-hover"),closeButtonHoverColor:e("--aark-close-hover-color"),closeButtonFocusOutline:e("--aark-close-focus-outline"),animationDuration:e("--aark-anim"),notificationBackground:e("--aark-notification-bg"),notificationBorderRadius:e("--aark-notification-radius"),notificationShadow:e("--aark-notification-shadow"),notificationPadding:e("--aark-notification-pad"),notificationZIndex:parseInt(e("--aark-notification-z")??"0")||void 0}}var Lo={fire:(t,o)=>k.fire(t,o),modal:(t,o)=>k.fireModal(t,o),notification:(t,o)=>k.fireNotification(t,o),close:()=>k.close(),isOpen:()=>k.isOpen(),closeAll:()=>k.closeAll(),setTheme:t=>Z(t),resetTheme:()=>_(),getTheme:()=>q()},Ho=Lo;export{W as Modal,K as ModalProvider,H as Notification,Ho as aark,q as getAarkModalTheme,_ as resetAarkModalTheme,Z as setAarkModalTheme,F as useModal};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aark-react-modalify",
3
- "version": "1.3.2",
3
+ "version": "1.3.3",
4
4
  "description": "A lightweight, flexible React modal and notification library with TypeScript support. Features automatic DOM mounting, customizable styling via CSS variables, responsive size presets, and a simple imperative API.",
5
5
  "private": false,
6
6
  "main": "dist/index.cjs.js",