@dashboard-designer/ui 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/styles.css CHANGED
@@ -1,3 +1,195 @@
1
+ /* @dashboard-designer/ui — bundled styles (vendor grid + app) */
2
+
3
+ /* --- css/styles.css --- */
4
+ .react-resizable {
5
+ position: relative;
6
+ }
7
+ .react-resizable-handle {
8
+ position: absolute;
9
+ width: 20px;
10
+ height: 20px;
11
+ background-repeat: no-repeat;
12
+ background-origin: content-box;
13
+ box-sizing: border-box;
14
+ background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+');
15
+ background-position: bottom right;
16
+ padding: 0 3px 3px 0;
17
+ }
18
+ .react-resizable-handle-sw {
19
+ bottom: 0;
20
+ left: 0;
21
+ cursor: sw-resize;
22
+ transform: rotate(90deg);
23
+ }
24
+ .react-resizable-handle-se {
25
+ bottom: 0;
26
+ right: 0;
27
+ cursor: se-resize;
28
+ }
29
+ .react-resizable-handle-nw {
30
+ top: 0;
31
+ left: 0;
32
+ cursor: nw-resize;
33
+ transform: rotate(180deg);
34
+ }
35
+ .react-resizable-handle-ne {
36
+ top: 0;
37
+ right: 0;
38
+ cursor: ne-resize;
39
+ transform: rotate(270deg);
40
+ }
41
+ .react-resizable-handle-w,
42
+ .react-resizable-handle-e {
43
+ top: 50%;
44
+ margin-top: -10px;
45
+ cursor: ew-resize;
46
+ }
47
+ .react-resizable-handle-w {
48
+ left: 0;
49
+ transform: rotate(135deg);
50
+ }
51
+ .react-resizable-handle-e {
52
+ right: 0;
53
+ transform: rotate(315deg);
54
+ }
55
+ .react-resizable-handle-n,
56
+ .react-resizable-handle-s {
57
+ left: 50%;
58
+ margin-left: -10px;
59
+ cursor: ns-resize;
60
+ }
61
+ .react-resizable-handle-n {
62
+ top: 0;
63
+ transform: rotate(225deg);
64
+ }
65
+ .react-resizable-handle-s {
66
+ bottom: 0;
67
+ transform: rotate(45deg);
68
+ }
69
+
70
+ /* --- css/styles.css --- */
71
+ .react-grid-layout {
72
+ position: relative;
73
+ transition: height 200ms ease;
74
+ }
75
+ .react-grid-item {
76
+ transition: all 200ms ease;
77
+ transition-property: left, top, width, height;
78
+ }
79
+ .react-grid-item img {
80
+ pointer-events: none;
81
+ user-select: none;
82
+ }
83
+ .react-grid-item.cssTransforms {
84
+ transition-property: transform, width, height;
85
+ }
86
+ .react-grid-item.resizing {
87
+ transition: none;
88
+ z-index: 1;
89
+ will-change: width, height;
90
+ }
91
+
92
+ .react-grid-item.react-draggable-dragging {
93
+ transition: none;
94
+ z-index: 3;
95
+ will-change: transform;
96
+ }
97
+
98
+ .react-grid-item.dropping {
99
+ visibility: hidden;
100
+ }
101
+
102
+ .react-grid-item.react-grid-placeholder {
103
+ background: red;
104
+ opacity: 0.2;
105
+ transition-duration: 100ms;
106
+ z-index: 2;
107
+ -webkit-user-select: none;
108
+ -moz-user-select: none;
109
+ -ms-user-select: none;
110
+ -o-user-select: none;
111
+ user-select: none;
112
+ }
113
+
114
+ .react-grid-item.react-grid-placeholder.placeholder-resizing {
115
+ transition: none;
116
+ }
117
+
118
+ .react-grid-item > .react-resizable-handle {
119
+ position: absolute;
120
+ width: 20px;
121
+ height: 20px;
122
+ }
123
+
124
+ .react-grid-item > .react-resizable-handle::after {
125
+ content: "";
126
+ position: absolute;
127
+ right: 3px;
128
+ bottom: 3px;
129
+ width: 5px;
130
+ height: 5px;
131
+ border-right: 2px solid rgba(0, 0, 0, 0.4);
132
+ border-bottom: 2px solid rgba(0, 0, 0, 0.4);
133
+ }
134
+
135
+ .react-resizable-hide > .react-resizable-handle {
136
+ display: none;
137
+ }
138
+
139
+ .react-grid-item > .react-resizable-handle.react-resizable-handle-sw {
140
+ bottom: 0;
141
+ left: 0;
142
+ cursor: sw-resize;
143
+ transform: rotate(90deg);
144
+ }
145
+ .react-grid-item > .react-resizable-handle.react-resizable-handle-se {
146
+ bottom: 0;
147
+ right: 0;
148
+ cursor: se-resize;
149
+ }
150
+ .react-grid-item > .react-resizable-handle.react-resizable-handle-nw {
151
+ top: 0;
152
+ left: 0;
153
+ cursor: nw-resize;
154
+ transform: rotate(180deg);
155
+ }
156
+ .react-grid-item > .react-resizable-handle.react-resizable-handle-ne {
157
+ top: 0;
158
+ right: 0;
159
+ cursor: ne-resize;
160
+ transform: rotate(270deg);
161
+ }
162
+ .react-grid-item > .react-resizable-handle.react-resizable-handle-w,
163
+ .react-grid-item > .react-resizable-handle.react-resizable-handle-e {
164
+ top: 50%;
165
+ margin-top: -10px;
166
+ cursor: ew-resize;
167
+ }
168
+ .react-grid-item > .react-resizable-handle.react-resizable-handle-w {
169
+ left: 0;
170
+ transform: rotate(135deg);
171
+ }
172
+ .react-grid-item > .react-resizable-handle.react-resizable-handle-e {
173
+ right: 0;
174
+ transform: rotate(315deg);
175
+ }
176
+ .react-grid-item > .react-resizable-handle.react-resizable-handle-n,
177
+ .react-grid-item > .react-resizable-handle.react-resizable-handle-s {
178
+ left: 50%;
179
+ margin-left: -10px;
180
+ cursor: ns-resize;
181
+ }
182
+ .react-grid-item > .react-resizable-handle.react-resizable-handle-n {
183
+ top: 0;
184
+ transform: rotate(225deg);
185
+ }
186
+ .react-grid-item > .react-resizable-handle.react-resizable-handle-s {
187
+ bottom: 0;
188
+ transform: rotate(45deg);
189
+ }
190
+
191
+
192
+ /* --- app/styles.css --- */
1
193
  :root {
2
194
  --dd-bg: #eef3f0;
3
195
  --dd-surface: #ffffff;
@@ -2034,7 +2226,8 @@ select.dd-input[multiple] {
2034
2226
  }
2035
2227
 
2036
2228
  .dd-share-panel,
2037
- .dd-settings-panel {
2229
+ .dd-settings-panel,
2230
+ .dd-email-panel {
2038
2231
  max-width: 520px;
2039
2232
  width: min(520px, 94vw);
2040
2233
  }
@@ -2249,13 +2442,210 @@ select.dd-input[multiple] {
2249
2442
  }
2250
2443
 
2251
2444
  .dd-dialog-footer-end {
2445
+ display: flex;
2446
+ align-items: center;
2447
+ gap: 8px;
2448
+ margin-inline-start: auto;
2252
2449
  justify-content: flex-end;
2253
2450
  }
2254
2451
 
2255
2452
  .dd-share-panel,
2256
- .dd-settings-panel {
2257
- width: min(480px, 94vw);
2258
- max-width: 480px;
2453
+ .dd-settings-panel,
2454
+ .dd-email-panel {
2455
+ width: min(560px, 94vw);
2456
+ max-width: 560px;
2457
+ }
2458
+
2459
+ .dd-email-body-wrap {
2460
+ display: flex;
2461
+ flex-direction: column;
2462
+ gap: 12px;
2463
+ }
2464
+
2465
+ .dd-email-body-wrap > .dd-field {
2466
+ margin-bottom: 0;
2467
+ width: 100%;
2468
+ }
2469
+
2470
+ .dd-email-body-wrap > .dd-hint,
2471
+ .dd-email-body-wrap > .dd-error,
2472
+ .dd-email-body-wrap > .dd-status-ok {
2473
+ margin: 0;
2474
+ }
2475
+
2476
+ .dd-email-message {
2477
+ resize: vertical;
2478
+ min-height: 110px;
2479
+ width: 100%;
2480
+ box-sizing: border-box;
2481
+ font-family: inherit;
2482
+ line-height: 1.45;
2483
+ }
2484
+
2485
+ .dd-rte {
2486
+ display: flex;
2487
+ flex-direction: column;
2488
+ border: 1px solid var(--dd-border);
2489
+ border-radius: var(--dd-radius-sm);
2490
+ background: #fff;
2491
+ overflow: hidden;
2492
+ }
2493
+
2494
+ .dd-rte.is-disabled {
2495
+ opacity: 0.65;
2496
+ pointer-events: none;
2497
+ }
2498
+
2499
+ .dd-rte-toolbar {
2500
+ display: flex;
2501
+ flex-wrap: wrap;
2502
+ align-items: center;
2503
+ gap: 2px;
2504
+ padding: 6px 8px;
2505
+ border-bottom: 1px solid var(--dd-border-subtle);
2506
+ background: #f7faf8;
2507
+ }
2508
+
2509
+ .dd-rte-sep {
2510
+ width: 1px;
2511
+ height: 18px;
2512
+ margin: 0 4px;
2513
+ background: var(--dd-border);
2514
+ }
2515
+
2516
+ .dd-rte-editor {
2517
+ min-height: 140px;
2518
+ max-height: 260px;
2519
+ overflow: auto;
2520
+ padding: 10px 12px;
2521
+ border: none !important;
2522
+ border-radius: 0 !important;
2523
+ box-shadow: none !important;
2524
+ outline: none;
2525
+ line-height: 1.5;
2526
+ font-family: inherit;
2527
+ font-size: 0.95rem;
2528
+ }
2529
+
2530
+ .dd-rte-editor:empty::before,
2531
+ .dd-rte-editor[data-placeholder]:empty::before {
2532
+ content: attr(data-placeholder);
2533
+ color: var(--dd-muted);
2534
+ pointer-events: none;
2535
+ }
2536
+
2537
+ .dd-rte-editor p {
2538
+ margin: 0 0 0.65em;
2539
+ }
2540
+
2541
+ .dd-rte-editor p:last-child {
2542
+ margin-bottom: 0;
2543
+ }
2544
+
2545
+ .dd-rte-editor ul,
2546
+ .dd-rte-editor ol {
2547
+ margin: 0 0 0.65em;
2548
+ padding-inline-start: 1.4em;
2549
+ }
2550
+
2551
+ .dd-rte-editor a {
2552
+ color: var(--dd-accent);
2553
+ }
2554
+
2555
+ .dd-email-attachment-field .dd-label {
2556
+ margin-bottom: 0;
2557
+ }
2558
+
2559
+ .dd-email-attach-list {
2560
+ list-style: none;
2561
+ margin: 0;
2562
+ padding: 0;
2563
+ display: flex;
2564
+ flex-direction: column;
2565
+ gap: 8px;
2566
+ width: 100%;
2567
+ }
2568
+
2569
+ .dd-email-attachment {
2570
+ display: flex;
2571
+ flex-wrap: wrap;
2572
+ align-items: center;
2573
+ gap: 8px;
2574
+ width: 100%;
2575
+ box-sizing: border-box;
2576
+ padding: 10px 12px;
2577
+ border: 1px solid var(--dd-border-subtle);
2578
+ border-radius: var(--dd-radius-sm);
2579
+ background: #f7faf8;
2580
+ font-size: 0.9rem;
2581
+ }
2582
+
2583
+ .dd-email-attachment code {
2584
+ font-size: 0.85em;
2585
+ padding: 2px 8px;
2586
+ border-radius: 999px;
2587
+ background: #e8eee9;
2588
+ color: var(--dd-text, #1a2e24);
2589
+ max-width: min(280px, 100%);
2590
+ overflow: hidden;
2591
+ text-overflow: ellipsis;
2592
+ white-space: nowrap;
2593
+ }
2594
+
2595
+ .dd-email-attachment-note {
2596
+ margin-inline-start: auto;
2597
+ font-size: 0.8rem;
2598
+ }
2599
+
2600
+ .dd-email-attachment .dd-btn-icon {
2601
+ margin-inline-start: auto;
2602
+ }
2603
+
2604
+ .dd-email-attach-actions {
2605
+ display: flex;
2606
+ align-items: center;
2607
+ gap: 8px;
2608
+ margin-top: 4px;
2609
+ }
2610
+
2611
+ .dd-email-options {
2612
+ display: flex;
2613
+ flex-direction: column;
2614
+ gap: 10px;
2615
+ margin: 4px 0 8px;
2616
+ padding: 12px;
2617
+ border: 1px solid var(--dd-border-subtle);
2618
+ border-radius: var(--dd-radius-sm);
2619
+ background: #f7faf8;
2620
+ }
2621
+
2622
+ .dd-email-options-title {
2623
+ margin: 0;
2624
+ font-size: 0.85rem;
2625
+ font-weight: 650;
2626
+ color: var(--dd-muted);
2627
+ }
2628
+
2629
+ .dd-email-options .dd-field {
2630
+ margin-bottom: 0;
2631
+ }
2632
+
2633
+ .dd-visually-hidden {
2634
+ position: absolute;
2635
+ width: 1px;
2636
+ height: 1px;
2637
+ padding: 0;
2638
+ margin: -1px;
2639
+ overflow: hidden;
2640
+ clip: rect(0, 0, 0, 0);
2641
+ white-space: nowrap;
2642
+ border: 0;
2643
+ }
2644
+
2645
+ .dd-status-ok {
2646
+ margin: 8px 0 0;
2647
+ color: var(--dd-accent, #0d6b54);
2648
+ font-size: 0.9rem;
2259
2649
  }
2260
2650
 
2261
2651
  .dd-share-list {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dashboard-designer/ui",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -25,7 +25,7 @@
25
25
  "react-dom": "^18.0.0 || ^19.0.0"
26
26
  },
27
27
  "dependencies": {
28
- "@dashboard-designer/core": "workspace:*",
28
+ "@dashboard-designer/core": "^0.1.1",
29
29
  "html2canvas": "^1.4.1",
30
30
  "i18next": "^24.2.2",
31
31
  "jspdf": "^4.2.1",
@@ -43,5 +43,8 @@
43
43
  "react-dom": "^19.0.0",
44
44
  "tsup": "^8.4.0",
45
45
  "typescript": "^5.8.2"
46
+ },
47
+ "publishConfig": {
48
+ "access": "public"
46
49
  }
47
50
  }