@realmorg/ui 2.0.0-alpha.2 → 2.0.0-alpha.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.
Files changed (64) hide show
  1. package/components/accordion.html +18 -0
  2. package/components/alert-dialog.html +40 -0
  3. package/components/alert.html +14 -0
  4. package/components/aspect-ratio.html +6 -0
  5. package/components/attachment.html +14 -0
  6. package/components/avatar.html +22 -0
  7. package/components/badge.html +6 -0
  8. package/components/breadcrumb.html +30 -0
  9. package/components/bubble.html +10 -0
  10. package/components/button-group.html +14 -0
  11. package/components/button.html +6 -0
  12. package/components/calendar.html +6 -0
  13. package/components/card.html +30 -0
  14. package/components/carousel.html +22 -0
  15. package/components/chart.html +6 -0
  16. package/components/checkbox.html +6 -0
  17. package/components/code-block.html +6 -0
  18. package/components/collapsible.html +14 -0
  19. package/components/combobox.html +13 -0
  20. package/components/command.html +12 -0
  21. package/components/context-menu.html +14 -0
  22. package/components/dialog.html +49 -3
  23. package/components/direction.html +6 -0
  24. package/components/drawer.html +46 -3
  25. package/components/dropdown-menu.html +49 -0
  26. package/components/empty.html +26 -0
  27. package/components/field.html +26 -0
  28. package/components/hover-card.html +17 -0
  29. package/components/input-group.html +16 -0
  30. package/components/input-otp.html +12 -0
  31. package/components/input.html +12 -0
  32. package/components/item.html +38 -0
  33. package/components/kbd.html +10 -0
  34. package/components/label.html +6 -0
  35. package/components/marker.html +6 -0
  36. package/components/menubar.html +21 -0
  37. package/components/message-scroller.html +6 -0
  38. package/components/message.html +18 -0
  39. package/components/navigation-menu.html +29 -0
  40. package/components/pagination.html +6 -0
  41. package/components/popover.html +31 -0
  42. package/components/progress.html +6 -0
  43. package/components/radio-group.html +6 -0
  44. package/components/resizable.html +14 -0
  45. package/components/scroll-area.html +6 -0
  46. package/components/select.html +12 -0
  47. package/components/separator.html +6 -0
  48. package/components/sheet.html +30 -0
  49. package/components/sidebar.html +52 -2
  50. package/components/skeleton.html +6 -0
  51. package/components/slider.html +28 -1
  52. package/components/spinner.html +6 -0
  53. package/components/switch.html +6 -0
  54. package/components/table.html +6 -0
  55. package/components/tabs.html +18 -0
  56. package/components/textarea.html +12 -0
  57. package/components/toaster.html +6 -0
  58. package/components/toggle-group.html +6 -0
  59. package/components/toggle.html +6 -0
  60. package/components/tooltip.html +17 -0
  61. package/dist/theme.css +13 -0
  62. package/dist/ui.html +988 -9
  63. package/package.json +3 -3
  64. package/theme.css +13 -0
@@ -23,6 +23,12 @@
23
23
  </script>
24
24
 
25
25
  <style>
26
+ /* A double tap must not zoom the page. Set inside the shadow root, because a page-level
27
+ touch-action does not reach shadow content in iOS Safari. */
28
+ :host,
29
+ * {
30
+ touch-action: manipulation;
31
+ }
26
32
  :host {
27
33
  display: block;
28
34
  min-width: 0;
@@ -42,6 +48,12 @@
42
48
  outline: none;
43
49
  transition: color var(--default-transition-duration), box-shadow var(--default-transition-duration);
44
50
  }
51
+ /* iOS Safari zooms in on a focused field whose text is under 16px. */
52
+ @media (pointer: coarse) {
53
+ input {
54
+ font-size: var(--text-base);
55
+ }
56
+ }
45
57
  input::placeholder {
46
58
  color: var(--muted-foreground);
47
59
  }
@@ -11,6 +11,12 @@
11
11
  </script>
12
12
 
13
13
  <style>
14
+ /* A double tap must not zoom the page. Set inside the shadow root, because a page-level
15
+ touch-action does not reach shadow content in iOS Safari. */
16
+ :host,
17
+ * {
18
+ touch-action: manipulation;
19
+ }
14
20
  :host {
15
21
  display: flex;
16
22
  flex-wrap: wrap;
@@ -39,6 +45,10 @@
39
45
 
40
46
  <custom-element name="ui-item-group" role="list">
41
47
  <style>
48
+ :host,
49
+ * {
50
+ touch-action: manipulation;
51
+ }
42
52
  :host {
43
53
  display: flex;
44
54
  flex-direction: column;
@@ -50,6 +60,10 @@
50
60
 
51
61
  <custom-element name="ui-item-media">
52
62
  <style>
63
+ :host,
64
+ * {
65
+ touch-action: manipulation;
66
+ }
53
67
  :host {
54
68
  display: flex;
55
69
  flex-shrink: 0;
@@ -87,6 +101,10 @@
87
101
 
88
102
  <custom-element name="ui-item-content">
89
103
  <style>
104
+ :host,
105
+ * {
106
+ touch-action: manipulation;
107
+ }
90
108
  :host {
91
109
  display: flex;
92
110
  flex: 1;
@@ -101,6 +119,10 @@
101
119
 
102
120
  <custom-element name="ui-item-title">
103
121
  <style>
122
+ :host,
123
+ * {
124
+ touch-action: manipulation;
125
+ }
104
126
  :host {
105
127
  display: flex;
106
128
  align-items: center;
@@ -115,6 +137,10 @@
115
137
 
116
138
  <custom-element name="ui-item-description">
117
139
  <style>
140
+ :host,
141
+ * {
142
+ touch-action: manipulation;
143
+ }
118
144
  :host {
119
145
  display: -webkit-box;
120
146
  overflow: hidden;
@@ -131,6 +157,10 @@
131
157
 
132
158
  <custom-element name="ui-item-actions">
133
159
  <style>
160
+ :host,
161
+ * {
162
+ touch-action: manipulation;
163
+ }
134
164
  :host {
135
165
  display: flex;
136
166
  align-items: center;
@@ -143,6 +173,10 @@
143
173
 
144
174
  <custom-element name="ui-item-header">
145
175
  <style>
176
+ :host,
177
+ * {
178
+ touch-action: manipulation;
179
+ }
146
180
  :host {
147
181
  display: flex;
148
182
  flex-basis: 100%;
@@ -157,6 +191,10 @@
157
191
 
158
192
  <custom-element name="ui-item-footer">
159
193
  <style>
194
+ :host,
195
+ * {
196
+ touch-action: manipulation;
197
+ }
160
198
  :host {
161
199
  display: flex;
162
200
  flex-basis: 100%;
@@ -1,5 +1,11 @@
1
1
  <custom-element name="ui-kbd">
2
2
  <style>
3
+ /* A double tap must not zoom the page. Set inside the shadow root, because a page-level
4
+ touch-action does not reach shadow content in iOS Safari. */
5
+ :host,
6
+ * {
7
+ touch-action: manipulation;
8
+ }
3
9
  :host {
4
10
  display: inline-flex;
5
11
  align-items: center;
@@ -24,6 +30,10 @@
24
30
 
25
31
  <custom-element name="ui-kbd-group">
26
32
  <style>
33
+ :host,
34
+ * {
35
+ touch-action: manipulation;
36
+ }
27
37
  :host {
28
38
  display: inline-flex;
29
39
  align-items: center;
@@ -22,6 +22,12 @@
22
22
  </script>
23
23
 
24
24
  <style>
25
+ /* A double tap must not zoom the page. Set inside the shadow root, because a page-level
26
+ touch-action does not reach shadow content in iOS Safari. */
27
+ :host,
28
+ * {
29
+ touch-action: manipulation;
30
+ }
25
31
  :host {
26
32
  display: inline-flex;
27
33
  align-items: center;
@@ -4,6 +4,12 @@
4
4
  </script>
5
5
 
6
6
  <style>
7
+ /* A double tap must not zoom the page. Set inside the shadow root, because a page-level
8
+ touch-action does not reach shadow content in iOS Safari. */
9
+ :host,
10
+ * {
11
+ touch-action: manipulation;
12
+ }
7
13
  :host {
8
14
  display: flex;
9
15
  align-items: center;
@@ -1,5 +1,11 @@
1
1
  <custom-element name="ui-menubar" role="menubar">
2
2
  <style>
3
+ /* A double tap must not zoom the page. Set inside the shadow root, because a page-level
4
+ touch-action does not reach shadow content in iOS Safari. */
5
+ :host,
6
+ * {
7
+ touch-action: manipulation;
8
+ }
3
9
  :host {
4
10
  display: flex;
5
11
  align-items: center;
@@ -42,6 +48,10 @@
42
48
  </script>
43
49
 
44
50
  <style>
51
+ :host,
52
+ * {
53
+ touch-action: manipulation;
54
+ }
45
55
  :host {
46
56
  display: contents;
47
57
  }
@@ -52,6 +62,10 @@
52
62
 
53
63
  <custom-element name="ui-menubar-trigger">
54
64
  <style>
65
+ :host,
66
+ * {
67
+ touch-action: manipulation;
68
+ }
55
69
  :host {
56
70
  display: inline-flex;
57
71
  }
@@ -96,6 +110,10 @@
96
110
  </script>
97
111
 
98
112
  <style>
113
+ :host,
114
+ * {
115
+ touch-action: manipulation;
116
+ }
99
117
  :host {
100
118
  box-sizing: border-box;
101
119
  min-width: calc(var(--spacing) * 48);
@@ -107,6 +125,9 @@
107
125
  color: var(--popover-foreground);
108
126
  box-shadow: var(--shadow-md);
109
127
  inset: auto;
128
+ height: fit-content;
129
+ max-height: calc(100svh - calc(var(--spacing) * 8));
130
+ overflow-y: auto;
110
131
  position-area: bottom span-right;
111
132
  position-try-fallbacks: flip-block, flip-inline;
112
133
  }
@@ -29,6 +29,12 @@
29
29
  </script>
30
30
 
31
31
  <style>
32
+ /* A double tap must not zoom the page. Set inside the shadow root, because a page-level
33
+ touch-action does not reach shadow content in iOS Safari. */
34
+ :host,
35
+ * {
36
+ touch-action: manipulation;
37
+ }
32
38
  :host {
33
39
  position: relative;
34
40
  display: block;
@@ -4,6 +4,12 @@
4
4
  </script>
5
5
 
6
6
  <style>
7
+ /* A double tap must not zoom the page. Set inside the shadow root, because a page-level
8
+ touch-action does not reach shadow content in iOS Safari. */
9
+ :host,
10
+ * {
11
+ touch-action: manipulation;
12
+ }
7
13
  :host {
8
14
  display: flex;
9
15
  gap: calc(var(--spacing) * 2);
@@ -36,6 +42,10 @@
36
42
 
37
43
  <custom-element name="ui-message-avatar" slot="avatar">
38
44
  <style>
45
+ :host,
46
+ * {
47
+ touch-action: manipulation;
48
+ }
39
49
  :host {
40
50
  display: flex;
41
51
  align-self: flex-end;
@@ -48,6 +58,10 @@
48
58
 
49
59
  <custom-element name="ui-message-header" slot="header">
50
60
  <style>
61
+ :host,
62
+ * {
63
+ touch-action: manipulation;
64
+ }
51
65
  :host {
52
66
  display: flex;
53
67
  align-items: center;
@@ -63,6 +77,10 @@
63
77
 
64
78
  <custom-element name="ui-message-footer" slot="footer">
65
79
  <style>
80
+ :host,
81
+ * {
82
+ touch-action: manipulation;
83
+ }
66
84
  :host {
67
85
  display: flex;
68
86
  align-items: center;
@@ -4,6 +4,12 @@
4
4
  </script>
5
5
 
6
6
  <style>
7
+ /* A double tap must not zoom the page. Set inside the shadow root, because a page-level
8
+ touch-action does not reach shadow content in iOS Safari. */
9
+ :host,
10
+ * {
11
+ touch-action: manipulation;
12
+ }
7
13
  :host {
8
14
  display: block;
9
15
  }
@@ -14,6 +20,10 @@
14
20
 
15
21
  <custom-element name="ui-navigation-menu-list">
16
22
  <style>
23
+ :host,
24
+ * {
25
+ touch-action: manipulation;
26
+ }
17
27
  :host {
18
28
  display: block;
19
29
  }
@@ -57,6 +67,10 @@
57
67
  </script>
58
68
 
59
69
  <style>
70
+ :host,
71
+ * {
72
+ touch-action: manipulation;
73
+ }
60
74
  :host {
61
75
  position: relative;
62
76
  display: block;
@@ -77,6 +91,9 @@
77
91
  box-shadow: var(--shadow-md);
78
92
  inset: auto;
79
93
  position-anchor: --navigation-trigger;
94
+ height: fit-content;
95
+ max-height: calc(100svh - calc(var(--spacing) * 8));
96
+ overflow-y: auto;
80
97
  position-area: bottom span-right;
81
98
  }
82
99
  </style>
@@ -87,6 +104,10 @@
87
104
 
88
105
  <custom-element name="ui-navigation-menu-trigger" delegates-focus>
89
106
  <style>
107
+ :host,
108
+ * {
109
+ touch-action: manipulation;
110
+ }
90
111
  :host {
91
112
  display: inline-flex;
92
113
  }
@@ -129,6 +150,10 @@
129
150
 
130
151
  <custom-element name="ui-navigation-menu-content" slot="content">
131
152
  <style>
153
+ :host,
154
+ * {
155
+ touch-action: manipulation;
156
+ }
132
157
  :host {
133
158
  display: grid;
134
159
  gap: calc(var(--spacing) * 1);
@@ -161,6 +186,10 @@
161
186
  </script>
162
187
 
163
188
  <style>
189
+ :host,
190
+ * {
191
+ touch-action: manipulation;
192
+ }
164
193
  :host {
165
194
  display: var(--ui-navigation-link-display, inline-flex);
166
195
  }
@@ -56,6 +56,12 @@
56
56
  </script>
57
57
 
58
58
  <style>
59
+ /* A double tap must not zoom the page. Set inside the shadow root, because a page-level
60
+ touch-action does not reach shadow content in iOS Safari. */
61
+ :host,
62
+ * {
63
+ touch-action: manipulation;
64
+ }
59
65
  :host {
60
66
  display: flex;
61
67
  justify-content: center;
@@ -19,6 +19,12 @@
19
19
  </script>
20
20
 
21
21
  <style>
22
+ /* A double tap must not zoom the page. Set inside the shadow root, because a page-level
23
+ touch-action does not reach shadow content in iOS Safari. */
24
+ :host,
25
+ * {
26
+ touch-action: manipulation;
27
+ }
22
28
  :host {
23
29
  display: contents;
24
30
  }
@@ -29,6 +35,10 @@
29
35
 
30
36
  <custom-element name="ui-popover-trigger">
31
37
  <style>
38
+ :host,
39
+ * {
40
+ touch-action: manipulation;
41
+ }
32
42
  :host {
33
43
  display: inline-block;
34
44
  vertical-align: middle;
@@ -48,6 +58,10 @@
48
58
  </script>
49
59
 
50
60
  <style>
61
+ :host,
62
+ * {
63
+ touch-action: manipulation;
64
+ }
51
65
  :host {
52
66
  box-sizing: border-box;
53
67
  width: calc(var(--spacing) * 72);
@@ -59,11 +73,16 @@
59
73
  color: var(--popover-foreground);
60
74
  box-shadow: var(--shadow-md);
61
75
  inset: auto;
76
+ height: fit-content;
77
+ max-height: calc(100svh - calc(var(--spacing) * 8));
78
+ overflow-y: auto;
62
79
  position-area: bottom;
63
80
  position-try-fallbacks: flip-block, flip-inline;
64
81
  }
65
82
  :host(:popover-open) {
66
83
  display: grid;
84
+ /* Safari stretches a grid overlay to its max-height unless the rows are packed at the start. */
85
+ align-content: start;
67
86
  gap: calc(var(--spacing) * 4);
68
87
  }
69
88
  :host(:state(attr-width)) {
@@ -92,6 +111,10 @@
92
111
 
93
112
  <custom-element name="ui-popover-header">
94
113
  <style>
114
+ :host,
115
+ * {
116
+ touch-action: manipulation;
117
+ }
95
118
  :host {
96
119
  display: grid;
97
120
  gap: calc(var(--spacing) * 1);
@@ -103,6 +126,10 @@
103
126
 
104
127
  <custom-element name="ui-popover-title">
105
128
  <style>
129
+ :host,
130
+ * {
131
+ touch-action: manipulation;
132
+ }
106
133
  :host {
107
134
  display: block;
108
135
  }
@@ -119,6 +146,10 @@
119
146
 
120
147
  <custom-element name="ui-popover-description">
121
148
  <style>
149
+ :host,
150
+ * {
151
+ touch-action: manipulation;
152
+ }
122
153
  :host {
123
154
  display: block;
124
155
  }
@@ -8,6 +8,12 @@
8
8
  </script>
9
9
 
10
10
  <style>
11
+ /* A double tap must not zoom the page. Set inside the shadow root, because a page-level
12
+ touch-action does not reach shadow content in iOS Safari. */
13
+ :host,
14
+ * {
15
+ touch-action: manipulation;
16
+ }
11
17
  :host {
12
18
  display: block;
13
19
  width: 100%;
@@ -37,6 +37,12 @@
37
37
  </script>
38
38
 
39
39
  <style>
40
+ /* A double tap must not zoom the page. Set inside the shadow root, because a page-level
41
+ touch-action does not reach shadow content in iOS Safari. */
42
+ :host,
43
+ * {
44
+ touch-action: manipulation;
45
+ }
40
46
  :host {
41
47
  display: grid;
42
48
  gap: calc(var(--spacing) * 3);
@@ -7,6 +7,12 @@
7
7
  </script>
8
8
 
9
9
  <style>
10
+ /* A double tap must not zoom the page. Set inside the shadow root, because a page-level
11
+ touch-action does not reach shadow content in iOS Safari. */
12
+ :host,
13
+ * {
14
+ touch-action: manipulation;
15
+ }
10
16
  :host {
11
17
  display: flex;
12
18
  width: 100%;
@@ -35,6 +41,10 @@
35
41
  </script>
36
42
 
37
43
  <style>
44
+ :host,
45
+ * {
46
+ touch-action: manipulation;
47
+ }
38
48
  :host {
39
49
  display: block;
40
50
  flex: var(--attr-size) 1 0;
@@ -110,6 +120,10 @@
110
120
  </script>
111
121
 
112
122
  <style>
123
+ :host,
124
+ * {
125
+ touch-action: manipulation;
126
+ }
113
127
  :host {
114
128
  position: relative;
115
129
  display: flex;
@@ -7,6 +7,12 @@
7
7
  </script>
8
8
 
9
9
  <style>
10
+ /* A double tap must not zoom the page. Set inside the shadow root, because a page-level
11
+ touch-action does not reach shadow content in iOS Safari. */
12
+ :host,
13
+ * {
14
+ touch-action: manipulation;
15
+ }
10
16
  :host {
11
17
  display: block;
12
18
  position: relative;
@@ -32,6 +32,12 @@
32
32
  </script>
33
33
 
34
34
  <style>
35
+ /* A double tap must not zoom the page. Set inside the shadow root, because a page-level
36
+ touch-action does not reach shadow content in iOS Safari. */
37
+ :host,
38
+ * {
39
+ touch-action: manipulation;
40
+ }
35
41
  :host {
36
42
  display: block;
37
43
  min-width: calc(var(--spacing) * 32);
@@ -57,6 +63,12 @@
57
63
  outline: none;
58
64
  cursor: pointer;
59
65
  }
66
+ /* iOS Safari zooms in on a focused field whose text is under 16px. */
67
+ @media (pointer: coarse) {
68
+ select {
69
+ font-size: var(--text-base);
70
+ }
71
+ }
60
72
  :host(:state(attr-size-is-sm)) select {
61
73
  height: calc(var(--spacing) * 8);
62
74
  }
@@ -9,6 +9,12 @@
9
9
  </script>
10
10
 
11
11
  <style>
12
+ /* A double tap must not zoom the page. Set inside the shadow root, because a page-level
13
+ touch-action does not reach shadow content in iOS Safari. */
14
+ :host,
15
+ * {
16
+ touch-action: manipulation;
17
+ }
12
18
  :host {
13
19
  display: block;
14
20
  flex-shrink: 0;
@@ -52,6 +52,12 @@
52
52
  </script>
53
53
 
54
54
  <style>
55
+ /* A double tap must not zoom the page. Set inside the shadow root, because a page-level
56
+ touch-action does not reach shadow content in iOS Safari. */
57
+ :host,
58
+ * {
59
+ touch-action: manipulation;
60
+ }
55
61
  :host {
56
62
  display: contents;
57
63
  }
@@ -67,6 +73,10 @@
67
73
 
68
74
  <custom-element name="ui-sheet-trigger" slot="trigger">
69
75
  <style>
76
+ :host,
77
+ * {
78
+ touch-action: manipulation;
79
+ }
70
80
  :host,
71
81
  span {
72
82
  display: contents;
@@ -78,6 +88,10 @@
78
88
 
79
89
  <custom-element name="ui-sheet-close">
80
90
  <style>
91
+ :host,
92
+ * {
93
+ touch-action: manipulation;
94
+ }
81
95
  :host,
82
96
  span {
83
97
  display: contents;
@@ -89,6 +103,10 @@
89
103
 
90
104
  <custom-element name="ui-sheet-header" slot="header">
91
105
  <style>
106
+ :host,
107
+ * {
108
+ touch-action: manipulation;
109
+ }
92
110
  :host {
93
111
  display: grid;
94
112
  gap: calc(var(--spacing) * 2);
@@ -100,6 +118,10 @@
100
118
 
101
119
  <custom-element name="ui-sheet-title">
102
120
  <style>
121
+ :host,
122
+ * {
123
+ touch-action: manipulation;
124
+ }
103
125
  :host {
104
126
  display: block;
105
127
  }
@@ -116,6 +138,10 @@
116
138
 
117
139
  <custom-element name="ui-sheet-description">
118
140
  <style>
141
+ :host,
142
+ * {
143
+ touch-action: manipulation;
144
+ }
119
145
  :host {
120
146
  display: block;
121
147
  }
@@ -131,6 +157,10 @@
131
157
 
132
158
  <custom-element name="ui-sheet-footer" slot="footer">
133
159
  <style>
160
+ :host,
161
+ * {
162
+ touch-action: manipulation;
163
+ }
134
164
  :host {
135
165
  display: flex;
136
166
  flex-wrap: wrap;