bare-ui-kit 0.2.0 → 0.3.0

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 (89) hide show
  1. package/CMakeLists.txt +7 -1
  2. package/README.md +42 -1
  3. package/binding.m +558 -2
  4. package/index.d.ts +41 -0
  5. package/index.js +16 -0
  6. package/lib/activity-indicator-view.d.ts +29 -0
  7. package/lib/activity-indicator-view.h +181 -0
  8. package/lib/activity-indicator-view.js +56 -0
  9. package/lib/alert-action.d.ts +33 -0
  10. package/lib/alert-action.js +48 -0
  11. package/lib/alert-controller.d.ts +20 -0
  12. package/lib/alert-controller.h +199 -0
  13. package/lib/alert-controller.js +33 -0
  14. package/lib/attributed-string.d.ts +45 -0
  15. package/lib/attributed-string.h +176 -0
  16. package/lib/attributed-string.js +51 -0
  17. package/lib/attributes.js +34 -0
  18. package/lib/bezier-path.d.ts +26 -0
  19. package/lib/bezier-path.h +145 -0
  20. package/lib/bezier-path.js +51 -0
  21. package/lib/bridging.h +600 -2
  22. package/lib/color.d.ts +86 -0
  23. package/lib/color.h +286 -0
  24. package/lib/color.js +170 -0
  25. package/lib/events.js +35 -0
  26. package/lib/font-descriptor.d.ts +30 -0
  27. package/lib/font-descriptor.h +96 -0
  28. package/lib/font-descriptor.js +47 -0
  29. package/lib/font-metrics.d.ts +38 -0
  30. package/lib/font-metrics.h +109 -0
  31. package/lib/font-metrics.js +58 -0
  32. package/lib/font.d.ts +59 -0
  33. package/lib/font.h +424 -0
  34. package/lib/font.js +100 -0
  35. package/lib/handle.d.ts +5 -0
  36. package/lib/handle.js +6 -0
  37. package/lib/image-view.d.ts +15 -0
  38. package/lib/image-view.h +75 -0
  39. package/lib/image-view.js +27 -0
  40. package/lib/image.d.ts +37 -0
  41. package/lib/image.h +205 -0
  42. package/lib/image.js +60 -0
  43. package/lib/label.d.ts +51 -0
  44. package/lib/label.h +331 -0
  45. package/lib/label.js +94 -0
  46. package/lib/paragraph-style.d.ts +20 -0
  47. package/lib/paragraph-style.h +94 -0
  48. package/lib/paragraph-style.js +42 -0
  49. package/lib/pasteboard.d.ts +31 -0
  50. package/lib/pasteboard.h +123 -0
  51. package/lib/pasteboard.js +63 -0
  52. package/lib/retain.js +12 -0
  53. package/lib/runtime.m +92 -15
  54. package/lib/scene.d.ts +30 -0
  55. package/lib/scene.h +87 -0
  56. package/lib/scene.js +48 -0
  57. package/lib/scratch.js +4 -0
  58. package/lib/screen.d.ts +26 -0
  59. package/lib/screen.h +194 -0
  60. package/lib/screen.js +52 -0
  61. package/lib/scroll-view.d.ts +39 -0
  62. package/lib/scroll-view.h +246 -0
  63. package/lib/scroll-view.js +64 -0
  64. package/lib/switch.d.ts +22 -0
  65. package/lib/switch.h +166 -0
  66. package/lib/switch.js +42 -0
  67. package/lib/text-field.d.ts +103 -0
  68. package/lib/text-field.h +562 -0
  69. package/lib/text-field.js +183 -0
  70. package/lib/text-view.d.ts +59 -0
  71. package/lib/text-view.h +497 -0
  72. package/lib/text-view.js +138 -0
  73. package/lib/view-controller.d.ts +37 -0
  74. package/lib/view-controller.h +108 -20
  75. package/lib/view-controller.js +50 -5
  76. package/lib/view.d.ts +158 -0
  77. package/lib/view.h +1385 -20
  78. package/lib/view.js +276 -7
  79. package/lib/window.d.ts +44 -0
  80. package/lib/window.h +167 -27
  81. package/lib/window.js +62 -9
  82. package/lib/wrap.js +7 -0
  83. package/package.json +12 -3
  84. package/prebuilds/ios-arm64/bare +0 -0
  85. package/prebuilds/ios-arm64/bare-ui-kit.bare +0 -0
  86. package/prebuilds/ios-arm64-simulator/bare +0 -0
  87. package/prebuilds/ios-arm64-simulator/bare-ui-kit.bare +0 -0
  88. package/prebuilds/ios-x64-simulator/bare +0 -0
  89. package/prebuilds/ios-x64-simulator/bare-ui-kit.bare +0 -0
package/lib/label.h ADDED
@@ -0,0 +1,331 @@
1
+ #import <assert.h>
2
+ #import <bare.h>
3
+ #import <js.h>
4
+
5
+ #import <UIKit/UIKit.h>
6
+
7
+ #import "bridging.h"
8
+
9
+ static js_value_t *
10
+ bare_ui_kit_label_init(js_env_t *env, js_callback_info_t *info) {
11
+ int err;
12
+
13
+ size_t argc = 4;
14
+ js_value_t *argv[4];
15
+
16
+ bare_ui_kit_state_t *state;
17
+ err = js_get_callback_info(env, info, &argc, argv, NULL, (void **) &state);
18
+ assert(err == 0);
19
+
20
+ assert(argc == 4);
21
+
22
+ double x;
23
+ if (!bare_ui_kit__read_double(env, argv[0], "x", &x)) return NULL;
24
+
25
+ double y;
26
+ if (!bare_ui_kit__read_double(env, argv[1], "y", &y)) return NULL;
27
+
28
+ double width;
29
+ if (!bare_ui_kit__read_double(env, argv[2], "width", &width)) return NULL;
30
+
31
+ double height;
32
+ if (!bare_ui_kit__read_double(env, argv[3], "height", &height)) return NULL;
33
+
34
+ js_value_t *result;
35
+
36
+ @autoreleasepool {
37
+ UILabel *handle = [[[UILabel alloc]
38
+ initWithFrame:CGRectMake(x, y, width, height)] autorelease];
39
+
40
+ result = bare_foundation_bridge(env, state->registry, handle);
41
+ }
42
+
43
+ return result;
44
+ }
45
+
46
+ static js_value_t *
47
+ bare_ui_kit_label_text(js_env_t *env, js_callback_info_t *info) {
48
+ int err;
49
+
50
+ size_t argc = 2;
51
+ js_value_t *argv[2];
52
+
53
+ bare_ui_kit_state_t *state;
54
+ err = js_get_callback_info(env, info, &argc, argv, NULL, (void **) &state);
55
+ assert(err == 0);
56
+
57
+ assert(argc == 1 || argc == 2);
58
+
59
+ void *handle;
60
+ if (bare_foundation_read_tag(env, state->registry, argv[0], "handle", &handle) < 0) return NULL;
61
+
62
+ js_value_t *result = NULL;
63
+
64
+ @autoreleasepool {
65
+ UILabel *label = (__bridge UILabel *) handle;
66
+
67
+ if (argc == 1) {
68
+ result = bare_ui_kit__from_string(env, label.text);
69
+ } else {
70
+ label.text = bare_ui_kit__to_string(env, argv[1]);
71
+ }
72
+ }
73
+
74
+ return result;
75
+ }
76
+
77
+ static js_value_t *
78
+ bare_ui_kit_label_font(js_env_t *env, js_callback_info_t *info) {
79
+ int err;
80
+
81
+ size_t argc = 2;
82
+ js_value_t *argv[2];
83
+
84
+ bare_ui_kit_state_t *state;
85
+ err = js_get_callback_info(env, info, &argc, argv, NULL, (void **) &state);
86
+ assert(err == 0);
87
+
88
+ assert(argc == 1 || argc == 2);
89
+
90
+ void *handle;
91
+ if (bare_foundation_read_tag(env, state->registry, argv[0], "handle", &handle) < 0) return NULL;
92
+
93
+ js_value_t *result = NULL;
94
+
95
+ @autoreleasepool {
96
+ UILabel *label = (__bridge UILabel *) handle;
97
+
98
+ if (argc == 1) {
99
+ result = bare_foundation_bridge(env, state->registry, label.font);
100
+ } else {
101
+ label.font = bare_foundation_to_object(env, state->registry, argv[1]);
102
+ }
103
+ }
104
+
105
+ return result;
106
+ }
107
+
108
+ static js_value_t *
109
+ bare_ui_kit_label_text_color(js_env_t *env, js_callback_info_t *info) {
110
+ int err;
111
+
112
+ size_t argc = 2;
113
+ js_value_t *argv[2];
114
+
115
+ bare_ui_kit_state_t *state;
116
+ err = js_get_callback_info(env, info, &argc, argv, NULL, (void **) &state);
117
+ assert(err == 0);
118
+
119
+ assert(argc == 1 || argc == 2);
120
+
121
+ void *handle;
122
+ if (bare_foundation_read_tag(env, state->registry, argv[0], "handle", &handle) < 0) return NULL;
123
+
124
+ js_value_t *result = NULL;
125
+
126
+ @autoreleasepool {
127
+ UILabel *label = (__bridge UILabel *) handle;
128
+
129
+ if (argc == 1) {
130
+ result = bare_foundation_bridge(env, state->registry, label.textColor);
131
+ } else {
132
+ label.textColor = bare_foundation_to_object(env, state->registry, argv[1]);
133
+ }
134
+ }
135
+
136
+ return result;
137
+ }
138
+
139
+ static js_value_t *
140
+ bare_ui_kit_label_text_alignment(js_env_t *env, js_callback_info_t *info) {
141
+ int err;
142
+
143
+ size_t argc = 2;
144
+ js_value_t *argv[2];
145
+
146
+ bare_ui_kit_state_t *state;
147
+ err = js_get_callback_info(env, info, &argc, argv, NULL, (void **) &state);
148
+ assert(err == 0);
149
+
150
+ assert(argc == 1 || argc == 2);
151
+
152
+ void *handle;
153
+ if (bare_foundation_read_tag(env, state->registry, argv[0], "handle", &handle) < 0) return NULL;
154
+
155
+ js_value_t *result = NULL;
156
+
157
+ @autoreleasepool {
158
+ UILabel *label = (__bridge UILabel *) handle;
159
+
160
+ if (argc == 1) {
161
+ err = js_create_int32(env, (int32_t) label.textAlignment, &result);
162
+ assert(err == 0);
163
+ } else {
164
+ int32_t text_alignment;
165
+ if (!bare_ui_kit__read_int32(env, argv[1], "text_alignment", &text_alignment)) return NULL;
166
+
167
+ label.textAlignment = text_alignment;
168
+ }
169
+ }
170
+
171
+ return result;
172
+ }
173
+
174
+ static void
175
+ bare_ui_kit_label_text_alignment_typed(js_value_t *receiver, int32_t bare_tag, int32_t text_alignment, js_typed_callback_info_t *info) {
176
+ int err;
177
+
178
+ bare_ui_kit_state_t *state;
179
+ err = js_get_typed_callback_info(info, NULL, (void **) &state);
180
+ assert(err == 0);
181
+
182
+ id bare_object = bare_foundation_object(state->registry, bare_tag);
183
+
184
+ if (bare_object == nil) return;
185
+
186
+ @autoreleasepool {
187
+ UILabel *label = (UILabel *) bare_object;
188
+
189
+ label.textAlignment = text_alignment;
190
+ }
191
+ }
192
+
193
+ static js_value_t *
194
+ bare_ui_kit_label_number_of_lines(js_env_t *env, js_callback_info_t *info) {
195
+ int err;
196
+
197
+ size_t argc = 2;
198
+ js_value_t *argv[2];
199
+
200
+ bare_ui_kit_state_t *state;
201
+ err = js_get_callback_info(env, info, &argc, argv, NULL, (void **) &state);
202
+ assert(err == 0);
203
+
204
+ assert(argc == 1 || argc == 2);
205
+
206
+ void *handle;
207
+ if (bare_foundation_read_tag(env, state->registry, argv[0], "handle", &handle) < 0) return NULL;
208
+
209
+ js_value_t *result = NULL;
210
+
211
+ @autoreleasepool {
212
+ UILabel *label = (__bridge UILabel *) handle;
213
+
214
+ if (argc == 1) {
215
+ err = js_create_int32(env, (int32_t) label.numberOfLines, &result);
216
+ assert(err == 0);
217
+ } else {
218
+ int32_t number_of_lines;
219
+ if (!bare_ui_kit__read_int32(env, argv[1], "number_of_lines", &number_of_lines)) return NULL;
220
+
221
+ label.numberOfLines = number_of_lines;
222
+ }
223
+ }
224
+
225
+ return result;
226
+ }
227
+
228
+ static void
229
+ bare_ui_kit_label_number_of_lines_typed(js_value_t *receiver, int32_t bare_tag, int32_t number_of_lines, js_typed_callback_info_t *info) {
230
+ int err;
231
+
232
+ bare_ui_kit_state_t *state;
233
+ err = js_get_typed_callback_info(info, NULL, (void **) &state);
234
+ assert(err == 0);
235
+
236
+ id bare_object = bare_foundation_object(state->registry, bare_tag);
237
+
238
+ if (bare_object == nil) return;
239
+
240
+ @autoreleasepool {
241
+ UILabel *label = (UILabel *) bare_object;
242
+
243
+ label.numberOfLines = number_of_lines;
244
+ }
245
+ }
246
+
247
+ static js_value_t *
248
+ bare_ui_kit_label_line_break_mode(js_env_t *env, js_callback_info_t *info) {
249
+ int err;
250
+
251
+ size_t argc = 2;
252
+ js_value_t *argv[2];
253
+
254
+ bare_ui_kit_state_t *state;
255
+ err = js_get_callback_info(env, info, &argc, argv, NULL, (void **) &state);
256
+ assert(err == 0);
257
+
258
+ assert(argc == 1 || argc == 2);
259
+
260
+ void *handle;
261
+ if (bare_foundation_read_tag(env, state->registry, argv[0], "handle", &handle) < 0) return NULL;
262
+
263
+ js_value_t *result = NULL;
264
+
265
+ @autoreleasepool {
266
+ UILabel *label = (__bridge UILabel *) handle;
267
+
268
+ if (argc == 1) {
269
+ err = js_create_int32(env, (int32_t) label.lineBreakMode, &result);
270
+ assert(err == 0);
271
+ } else {
272
+ int32_t line_break_mode;
273
+ if (!bare_ui_kit__read_int32(env, argv[1], "line_break_mode", &line_break_mode)) return NULL;
274
+
275
+ label.lineBreakMode = line_break_mode;
276
+ }
277
+ }
278
+
279
+ return result;
280
+ }
281
+
282
+ static void
283
+ bare_ui_kit_label_line_break_mode_typed(js_value_t *receiver, int32_t bare_tag, int32_t line_break_mode, js_typed_callback_info_t *info) {
284
+ int err;
285
+
286
+ bare_ui_kit_state_t *state;
287
+ err = js_get_typed_callback_info(info, NULL, (void **) &state);
288
+ assert(err == 0);
289
+
290
+ id bare_object = bare_foundation_object(state->registry, bare_tag);
291
+
292
+ if (bare_object == nil) return;
293
+
294
+ @autoreleasepool {
295
+ UILabel *label = (UILabel *) bare_object;
296
+
297
+ label.lineBreakMode = line_break_mode;
298
+ }
299
+ }
300
+
301
+
302
+ static js_value_t *
303
+ bare_ui_kit_label_attributed_text(js_env_t *env, js_callback_info_t *info) {
304
+ int err;
305
+
306
+ size_t argc = 2;
307
+ js_value_t *argv[2];
308
+
309
+ bare_ui_kit_state_t *state;
310
+ err = js_get_callback_info(env, info, &argc, argv, NULL, (void **) &state);
311
+ assert(err == 0);
312
+
313
+ assert(argc == 1 || argc == 2);
314
+
315
+ void *handle;
316
+ if (bare_foundation_read_tag(env, state->registry, argv[0], "handle", &handle) < 0) return NULL;
317
+
318
+ js_value_t *result = NULL;
319
+
320
+ @autoreleasepool {
321
+ UILabel *label = (__bridge UILabel *) handle;
322
+
323
+ if (argc == 1) {
324
+ result = bare_foundation_bridge(env, state->registry, label.attributedText);
325
+ } else {
326
+ label.attributedText = bare_foundation_to_object(env, state->registry, argv[1]);
327
+ }
328
+ }
329
+
330
+ return result;
331
+ }
package/lib/label.js ADDED
@@ -0,0 +1,94 @@
1
+ const binding = require('../binding')
2
+ const { adopt } = require('./handle')
3
+ const wrap = require('./wrap')
4
+ const UIKitAttributedString = require('./attributed-string')
5
+ const UIKitColor = require('./color')
6
+ const UIKitFont = require('./font')
7
+ const UIKitView = require('./view')
8
+
9
+ module.exports = exports = class UIKitLabel extends UIKitView {
10
+ _init(opts) {
11
+ const { x = 0, y = 0, width = 0, height = 0 } = opts
12
+
13
+ return binding.labelInit(x, y, width, height)
14
+ }
15
+
16
+ get text() {
17
+ return binding.labelText(this._tag)
18
+ }
19
+
20
+ set text(text) {
21
+ binding.labelText(this._tag, text)
22
+ }
23
+
24
+ get attributedText() {
25
+ return wrap(UIKitAttributedString, binding.labelAttributedText(this._tag))
26
+ }
27
+
28
+ set attributedText(value) {
29
+ binding.labelAttributedText(this._tag, adopt(value))
30
+ }
31
+
32
+ get font() {
33
+ return wrap(UIKitFont, binding.labelFont(this._tag))
34
+ }
35
+
36
+ set font(font) {
37
+ binding.labelFont(this._tag, adopt(font))
38
+ }
39
+
40
+ get textColor() {
41
+ return wrap(UIKitColor, binding.labelTextColor(this._tag))
42
+ }
43
+
44
+ set textColor(textColor) {
45
+ binding.labelTextColor(this._tag, adopt(textColor))
46
+ }
47
+
48
+ get textAlignment() {
49
+ return binding.labelTextAlignment(this._tag)
50
+ }
51
+
52
+ set textAlignment(textAlignment) {
53
+ binding.labelTextAlignment(this._tag, textAlignment)
54
+ }
55
+
56
+ get numberOfLines() {
57
+ return binding.labelNumberOfLines(this._tag)
58
+ }
59
+
60
+ set numberOfLines(numberOfLines) {
61
+ binding.labelNumberOfLines(this._tag, numberOfLines)
62
+ }
63
+
64
+ get lineBreakMode() {
65
+ return binding.labelLineBreakMode(this._tag)
66
+ }
67
+
68
+ set lineBreakMode(lineBreakMode) {
69
+ binding.labelLineBreakMode(this._tag, lineBreakMode)
70
+ }
71
+
72
+ [Symbol.for('bare.inspect')]() {
73
+ return {
74
+ __proto__: { constructor: UIKitLabel }
75
+ }
76
+ }
77
+ }
78
+
79
+ exports.TEXT_ALIGNMENT = {
80
+ LEFT: binding.TEXT_ALIGNMENT_LEFT,
81
+ RIGHT: binding.TEXT_ALIGNMENT_RIGHT,
82
+ CENTER: binding.TEXT_ALIGNMENT_CENTER,
83
+ JUSTIFIED: binding.TEXT_ALIGNMENT_JUSTIFIED,
84
+ NATURAL: binding.TEXT_ALIGNMENT_NATURAL
85
+ }
86
+
87
+ exports.LINE_BREAK_MODE = {
88
+ WORD_WRAPPING: binding.LINE_BREAK_MODE_WORD_WRAPPING,
89
+ CHAR_WRAPPING: binding.LINE_BREAK_MODE_CHAR_WRAPPING,
90
+ CLIPPING: binding.LINE_BREAK_MODE_CLIPPING,
91
+ TRUNCATING_HEAD: binding.LINE_BREAK_MODE_TRUNCATING_HEAD,
92
+ TRUNCATING_TAIL: binding.LINE_BREAK_MODE_TRUNCATING_TAIL,
93
+ TRUNCATING_MIDDLE: binding.LINE_BREAK_MODE_TRUNCATING_MIDDLE
94
+ }
@@ -0,0 +1,20 @@
1
+ import { tag, handle, Handle, Wrapper } from 'bare-foundation-registry'
2
+
3
+ /** How paragraphs in an attributed string are laid out, as an `NSMutableParagraphStyle`. */
4
+ interface UIKitParagraphStyle {
5
+ /** A `UIKitLabel.TEXT_ALIGNMENT` constant. */
6
+ alignment: number
7
+
8
+ /** A `UIKitLabel.LINE_BREAK_MODE` constant. */
9
+ lineBreakMode: number
10
+
11
+ readonly [tag]: number
12
+
13
+ readonly [handle]: Handle
14
+ }
15
+
16
+ declare class UIKitParagraphStyle {
17
+ constructor()
18
+ }
19
+
20
+ export = UIKitParagraphStyle
@@ -0,0 +1,94 @@
1
+ #import <assert.h>
2
+ #import <bare.h>
3
+ #import <js.h>
4
+
5
+ #import <UIKit/UIKit.h>
6
+
7
+ #import "bridging.h"
8
+
9
+ static js_value_t *
10
+ bare_ui_kit_paragraph_style_init(js_env_t *env, js_callback_info_t *info) {
11
+ int err;
12
+
13
+ bare_ui_kit_state_t *state;
14
+ err = js_get_callback_info(env, info, NULL, NULL, NULL, (void **) &state);
15
+ assert(err == 0);
16
+
17
+ js_value_t *result;
18
+
19
+ @autoreleasepool {
20
+ result = bare_foundation_bridge(env, state->registry, [[[NSMutableParagraphStyle alloc] init] autorelease]);
21
+ }
22
+
23
+ return result;
24
+ }
25
+
26
+ static js_value_t *
27
+ bare_ui_kit_paragraph_style_alignment(js_env_t *env, js_callback_info_t *info) {
28
+ int err;
29
+
30
+ size_t argc = 2;
31
+ js_value_t *argv[2];
32
+
33
+ bare_ui_kit_state_t *state;
34
+ err = js_get_callback_info(env, info, &argc, argv, NULL, (void **) &state);
35
+ assert(err == 0);
36
+
37
+ assert(argc == 1 || argc == 2);
38
+
39
+ void *handle;
40
+ if (bare_foundation_read_tag(env, state->registry, argv[0], "handle", &handle) < 0) return NULL;
41
+
42
+ js_value_t *result = NULL;
43
+
44
+ @autoreleasepool {
45
+ NSMutableParagraphStyle *style = (__bridge NSMutableParagraphStyle *) handle;
46
+
47
+ if (argc == 1) {
48
+ err = js_create_int32(env, (int32_t) style.alignment, &result);
49
+ assert(err == 0);
50
+ } else {
51
+ int32_t alignment;
52
+ if (!bare_ui_kit__read_int32(env, argv[1], "alignment", &alignment)) return NULL;
53
+
54
+ style.alignment = (NSTextAlignment) alignment;
55
+ }
56
+ }
57
+
58
+ return result;
59
+ }
60
+
61
+ static js_value_t *
62
+ bare_ui_kit_paragraph_style_line_break_mode(js_env_t *env, js_callback_info_t *info) {
63
+ int err;
64
+
65
+ size_t argc = 2;
66
+ js_value_t *argv[2];
67
+
68
+ bare_ui_kit_state_t *state;
69
+ err = js_get_callback_info(env, info, &argc, argv, NULL, (void **) &state);
70
+ assert(err == 0);
71
+
72
+ assert(argc == 1 || argc == 2);
73
+
74
+ void *handle;
75
+ if (bare_foundation_read_tag(env, state->registry, argv[0], "handle", &handle) < 0) return NULL;
76
+
77
+ js_value_t *result = NULL;
78
+
79
+ @autoreleasepool {
80
+ NSMutableParagraphStyle *style = (__bridge NSMutableParagraphStyle *) handle;
81
+
82
+ if (argc == 1) {
83
+ err = js_create_int32(env, (int32_t) style.lineBreakMode, &result);
84
+ assert(err == 0);
85
+ } else {
86
+ int32_t mode;
87
+ if (!bare_ui_kit__read_int32(env, argv[1], "lineBreakMode", &mode)) return NULL;
88
+
89
+ style.lineBreakMode = (NSLineBreakMode) mode;
90
+ }
91
+ }
92
+
93
+ return result;
94
+ }
@@ -0,0 +1,42 @@
1
+ const binding = require('../binding')
2
+ const registry = require('bare-foundation-registry')
3
+
4
+ module.exports = exports = class UIKitParagraphStyle {
5
+ constructor(opts = {}) {
6
+ const { tag = null } = opts
7
+
8
+ this._tag = tag === null ? binding.paragraphStyleInit() : tag
9
+
10
+ this._token = binding.claim(this._tag, this)
11
+ }
12
+
13
+ get [registry.tag]() {
14
+ return this._tag
15
+ }
16
+
17
+ get [registry.handle]() {
18
+ return binding.handle(this._tag)
19
+ }
20
+
21
+ get alignment() {
22
+ return binding.paragraphStyleAlignment(this._tag)
23
+ }
24
+
25
+ set alignment(value) {
26
+ binding.paragraphStyleAlignment(this._tag, value)
27
+ }
28
+
29
+ get lineBreakMode() {
30
+ return binding.paragraphStyleLineBreakMode(this._tag)
31
+ }
32
+
33
+ set lineBreakMode(value) {
34
+ binding.paragraphStyleLineBreakMode(this._tag, value)
35
+ }
36
+
37
+ [Symbol.for('bare.inspect')]() {
38
+ return {
39
+ __proto__: { constructor: UIKitParagraphStyle }
40
+ }
41
+ }
42
+ }
@@ -0,0 +1,31 @@
1
+ import { tag, handle, Handle, Wrapper } from 'bare-foundation-registry'
2
+
3
+ /** The clipboard, as a `UIPasteboard`. */
4
+ interface UIKitPasteboard {
5
+ string: string | null
6
+
7
+ readonly hasStrings: boolean
8
+
9
+ readonly hasURLs: boolean
10
+
11
+ readonly hasImages: boolean
12
+
13
+ readonly hasColors: boolean
14
+
15
+ readonly numberOfItems: number
16
+
17
+ /** A number that changes every time the contents change. */
18
+ readonly changeCount: number
19
+
20
+ readonly [tag]: number
21
+
22
+ readonly [handle]: Handle
23
+ }
24
+
25
+ declare class UIKitPasteboard {
26
+ protected constructor()
27
+
28
+ static readonly generalPasteboard: UIKitPasteboard
29
+ }
30
+
31
+ export = UIKitPasteboard