@venite/components 0.16.6 → 0.16.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/dist/cjs/{index-5e2cc9e9.js → book-1a92678a.js} +1 -92
  2. package/dist/cjs/{heading-d3809e59.js → heading-5afc2b24.js} +2 -2
  3. package/dist/cjs/{image-f0ace076.js → image-3bee3e73.js} +2 -2
  4. package/dist/cjs/ion-button_13.cjs.entry.js +1 -2
  5. package/dist/cjs/ion-card-content_6.cjs.entry.js +2 -3
  6. package/dist/cjs/ion-checkbox_3.cjs.entry.js +1 -2
  7. package/dist/cjs/ion-input_2.cjs.entry.js +1 -1
  8. package/dist/cjs/ion-segment_16.cjs.entry.js +25 -22
  9. package/dist/cjs/ldf-day-name_5.cjs.entry.js +73 -70
  10. package/dist/cjs/ldf-editable-add-block-menu.cjs.entry.js +9 -10
  11. package/dist/cjs/ldf-editable-condition-piece.cjs.entry.js +5 -6
  12. package/dist/cjs/ldf-editable-condition.cjs.entry.js +3 -4
  13. package/dist/cjs/ldf-editable-filter-documents.cjs.entry.js +10 -11
  14. package/dist/cjs/ldf-editable-lookup_2.cjs.entry.js +8 -9
  15. package/dist/cjs/ldf-editable-metadata.cjs.entry.js +9 -10
  16. package/dist/cjs/ldf-editable-preference-option.cjs.entry.js +1 -2
  17. package/dist/cjs/ldf-editable-preference.cjs.entry.js +1 -2
  18. package/dist/cjs/ldf-editable-preferences.cjs.entry.js +1 -2
  19. package/dist/cjs/ldf-editable-string-list.cjs.entry.js +1 -2
  20. package/dist/cjs/ldf-editor.cjs.entry.js +12 -12
  21. package/dist/cjs/{option-1ebd4514.js → option-f9bf2d15.js} +4 -2
  22. package/dist/cjs/{refrain-a605892e.js → refrain-91fb446b.js} +2 -2
  23. package/dist/cjs/{rubric-662d8baa.js → rubric-5b467a6a.js} +8 -8
  24. package/dist/cjs/{specific-class-d80d272a.js → specific-class-92fb6923.js} +5 -5
  25. package/dist/cjs/{text-c5e8ca0a.js → text-5edb80f3.js} +2 -2
  26. package/dist/collection/components/bible-reading/bible-reading.js +6 -3
  27. package/dist/collection/components/bible-reading/dist/bible-reading.js +354 -0
  28. package/dist/collection/components/string/dist/string.js +2 -2
  29. package/dist/collection/components/string/string.js +3 -3
  30. package/dist/collection/components/text/dist/text.js +3 -2
  31. package/dist/collection/components/text/text.js +6 -3
  32. package/dist/esm/{index-f5b9b789.js → book-31b8cdde.js} +1 -92
  33. package/dist/esm/{heading-c9eb7d89.js → heading-cc5ffa8a.js} +1 -1
  34. package/dist/esm/{image-f0e35b01.js → image-c6a3f0c5.js} +1 -1
  35. package/dist/esm/ion-button_13.entry.js +1 -2
  36. package/dist/esm/ion-card-content_6.entry.js +2 -3
  37. package/dist/esm/ion-checkbox_3.entry.js +1 -2
  38. package/dist/esm/ion-input_2.entry.js +1 -1
  39. package/dist/esm/ion-segment_16.entry.js +12 -9
  40. package/dist/esm/ldf-day-name_5.entry.js +12 -9
  41. package/dist/esm/ldf-editable-add-block-menu.entry.js +7 -8
  42. package/dist/esm/ldf-editable-condition-piece.entry.js +1 -2
  43. package/dist/esm/ldf-editable-condition.entry.js +1 -2
  44. package/dist/esm/ldf-editable-filter-documents.entry.js +2 -3
  45. package/dist/esm/ldf-editable-lookup_2.entry.js +7 -8
  46. package/dist/esm/ldf-editable-metadata.entry.js +7 -8
  47. package/dist/esm/ldf-editable-preference-option.entry.js +1 -2
  48. package/dist/esm/ldf-editable-preference.entry.js +1 -2
  49. package/dist/esm/ldf-editable-preferences.entry.js +1 -2
  50. package/dist/esm/ldf-editable-string-list.entry.js +1 -2
  51. package/dist/esm/ldf-editor.entry.js +1 -1
  52. package/dist/esm/{option-47d50244.js → option-16f2891e.js} +3 -1
  53. package/dist/esm/{refrain-810c4de5.js → refrain-75a412cb.js} +1 -1
  54. package/dist/esm/{rubric-2330a030.js → rubric-91bf7fed.js} +1 -1
  55. package/dist/esm/{specific-class-28e26e40.js → specific-class-41302ce9.js} +5 -5
  56. package/dist/esm/{text-ce1ed17d.js → text-ed75fbd4.js} +1 -1
  57. package/dist/ldf/ldf.esm.js +1 -1
  58. package/dist/ldf/p-03afc8cb.entry.js +1 -0
  59. package/dist/ldf/{p-db435131.entry.js → p-23af1bc3.entry.js} +1 -1
  60. package/dist/ldf/p-2474dd18.entry.js +1 -0
  61. package/dist/ldf/p-2ae548b3.entry.js +1 -0
  62. package/dist/ldf/p-2da3f59d.js +1 -0
  63. package/dist/ldf/p-3f8ef67b.entry.js +1 -0
  64. package/dist/ldf/p-476327d6.js +1 -0
  65. package/dist/ldf/p-4aa9a6f2.js +1 -0
  66. package/dist/ldf/p-594fa9d4.entry.js +1 -0
  67. package/dist/ldf/{p-937ffc85.js → p-5b43e6be.js} +1 -1
  68. package/dist/ldf/{p-0f69db87.entry.js → p-5ca87785.entry.js} +1 -1
  69. package/dist/ldf/p-65563763.entry.js +1 -0
  70. package/dist/ldf/p-65d26c45.js +1 -0
  71. package/dist/ldf/p-65ea7ab3.entry.js +1 -0
  72. package/dist/ldf/p-69a5f5ed.entry.js +1 -0
  73. package/dist/ldf/p-800a115c.entry.js +1 -0
  74. package/dist/ldf/p-8c74a2fa.entry.js +1 -0
  75. package/dist/ldf/{p-9e82b403.js → p-8f67abb8.js} +1 -1
  76. package/dist/ldf/p-98591c4f.entry.js +1 -0
  77. package/dist/ldf/p-9c1973a6.entry.js +1 -0
  78. package/dist/ldf/p-a1729dbd.js +1 -0
  79. package/dist/ldf/p-c3c99023.js +1 -0
  80. package/dist/ldf/p-e4f0cd91.entry.js +1 -0
  81. package/dist/ldf/p-f0de7628.entry.js +1 -0
  82. package/dist/ldf/{p-c1bcd0a9.entry.js → p-fa191f47.entry.js} +1 -1
  83. package/package.json +2 -2
  84. package/dist/ldf/p-02ef484e.entry.js +0 -1
  85. package/dist/ldf/p-0651768a.entry.js +0 -1
  86. package/dist/ldf/p-1504379f.entry.js +0 -1
  87. package/dist/ldf/p-2fa1c501.entry.js +0 -1
  88. package/dist/ldf/p-37f356a4.entry.js +0 -1
  89. package/dist/ldf/p-4d392128.entry.js +0 -1
  90. package/dist/ldf/p-53c807a4.js +0 -1
  91. package/dist/ldf/p-5bf20b51.js +0 -1
  92. package/dist/ldf/p-698a3399.entry.js +0 -1
  93. package/dist/ldf/p-73a16936.entry.js +0 -1
  94. package/dist/ldf/p-7df11f48.entry.js +0 -1
  95. package/dist/ldf/p-8ee9ccd3.js +0 -1
  96. package/dist/ldf/p-972e4f2a.entry.js +0 -1
  97. package/dist/ldf/p-9cf557f9.js +0 -1
  98. package/dist/ldf/p-a98c89d1.entry.js +0 -1
  99. package/dist/ldf/p-b355bfa2.js +0 -1
  100. package/dist/ldf/p-ca7e0de9.entry.js +0 -1
  101. package/dist/ldf/p-d49a739d.js +0 -1
  102. package/dist/ldf/p-d7fa99cc.entry.js +0 -1
  103. package/dist/ldf/p-ff51dbd0.entry.js +0 -1
@@ -0,0 +1,354 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
14
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
15
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
16
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
17
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
18
+ };
19
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
20
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
21
+ return new (P || (P = Promise))(function (resolve, reject) {
22
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
23
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
24
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
25
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
26
+ });
27
+ };
28
+ var __generator = (this && this.__generator) || function (thisArg, body) {
29
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
30
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
31
+ function verb(n) { return function (v) { return step([n, v]); }; }
32
+ function step(op) {
33
+ if (f) throw new TypeError("Generator is already executing.");
34
+ while (_) try {
35
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
36
+ if (y = 0, t) op = [op[0] & 2, t.value];
37
+ switch (op[0]) {
38
+ case 0: case 1: t = op; break;
39
+ case 4: _.label++; return { value: op[1], done: false };
40
+ case 5: _.label++; y = op[1]; op = [0]; continue;
41
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
42
+ default:
43
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
44
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
45
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
46
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
47
+ if (t[2]) _.ops.pop();
48
+ _.trys.pop(); continue;
49
+ }
50
+ op = body.call(thisArg, _);
51
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
52
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
53
+ }
54
+ };
55
+ exports.__esModule = true;
56
+ exports.BibleReadingComponent = void 0;
57
+ var core_1 = require("@ionic/core");
58
+ var core_2 = require("@stencil/core");
59
+ var ldf_1 = require("@venite/ldf");
60
+ var locale_1 = require("../../utils/locale");
61
+ var bible_reading_i18n_en_json_1 = require("./bible-reading.i18n.en.json");
62
+ var bible_reading_i18n_es_json_1 = require("./bible-reading.i18n.es.json");
63
+ var fetch_reading_1 = require("./fetch-reading");
64
+ var LOCALE = {
65
+ 'en': bible_reading_i18n_en_json_1["default"],
66
+ 'es': bible_reading_i18n_es_json_1["default"]
67
+ };
68
+ var BibleReadingComponent = /** @class */ (function () {
69
+ function BibleReadingComponent() {
70
+ }
71
+ BibleReadingComponent.prototype.docChanged = function (newDoc) {
72
+ try {
73
+ if (typeof newDoc == 'string') {
74
+ this.obj = new ldf_1.BibleReading(JSON.parse(newDoc));
75
+ }
76
+ else {
77
+ this.obj = new ldf_1.BibleReading(newDoc);
78
+ }
79
+ this.processIntro();
80
+ }
81
+ catch (e) {
82
+ console.warn(e);
83
+ this.obj = new ldf_1.BibleReading();
84
+ }
85
+ this.loadVerses();
86
+ };
87
+ // Lifecycle events
88
+ BibleReadingComponent.prototype.componentWillLoad = function () {
89
+ return __awaiter(this, void 0, void 0, function () {
90
+ return __generator(this, function (_a) {
91
+ this.docChanged(this.doc);
92
+ this.loadLocaleStrings();
93
+ this.loadVerses();
94
+ this.processIntro();
95
+ return [2 /*return*/];
96
+ });
97
+ });
98
+ };
99
+ BibleReadingComponent.prototype.processIntro = function () {
100
+ var _a, _b;
101
+ // process intro
102
+ if ((_b = (_a = this.obj) === null || _a === void 0 ? void 0 : _a.metadata) === null || _b === void 0 ? void 0 : _b.intro) {
103
+ try {
104
+ this.obj.compileIntro();
105
+ this.obj = new ldf_1.BibleReading(__assign({}, this.obj));
106
+ }
107
+ catch (e) {
108
+ console.warn(e);
109
+ console.warn(this.obj);
110
+ }
111
+ }
112
+ };
113
+ // Private methods
114
+ BibleReadingComponent.prototype.loadLocaleStrings = function () {
115
+ return __awaiter(this, void 0, Promise, function () {
116
+ return __generator(this, function (_a) {
117
+ try {
118
+ this.localeStrings = LOCALE[locale_1.getComponentClosestLanguage(this.element)];
119
+ }
120
+ catch (e) {
121
+ console.warn(e);
122
+ }
123
+ return [2 /*return*/];
124
+ });
125
+ });
126
+ };
127
+ BibleReadingComponent.prototype.changeReading = function () {
128
+ var _a;
129
+ return __awaiter(this, void 0, void 0, function () {
130
+ var localeStrings, alert;
131
+ var _this = this;
132
+ return __generator(this, function (_b) {
133
+ switch (_b.label) {
134
+ case 0:
135
+ localeStrings = this.localeStrings || {};
136
+ return [4 /*yield*/, core_1.alertController.create({
137
+ header: localeStrings.changeReading,
138
+ inputs: [
139
+ {
140
+ name: 'citation',
141
+ type: 'text',
142
+ value: (_a = this.obj) === null || _a === void 0 ? void 0 : _a.citation,
143
+ placeholder: localeStrings.newCitation
144
+ },
145
+ ],
146
+ buttons: [
147
+ {
148
+ text: localeStrings.cancel,
149
+ role: 'cancel',
150
+ cssClass: 'secondary'
151
+ },
152
+ {
153
+ text: localeStrings.ok,
154
+ handler: function (data) { return __awaiter(_this, void 0, void 0, function () {
155
+ var loading, newReading;
156
+ var _a, _b, _c;
157
+ return __generator(this, function (_d) {
158
+ switch (_d.label) {
159
+ case 0:
160
+ this.ldfDocShouldChange.emit(new ldf_1.Change({
161
+ path: this.path,
162
+ op: [
163
+ {
164
+ type: 'set',
165
+ index: 'citation',
166
+ oldValue: (_a = this.obj) === null || _a === void 0 ? void 0 : _a.citation,
167
+ value: data === null || data === void 0 ? void 0 : data.citation
168
+ }
169
+ ]
170
+ }));
171
+ return [4 /*yield*/, core_1.loadingController.create({
172
+ message: localeStrings.loading
173
+ })];
174
+ case 1:
175
+ loading = _d.sent();
176
+ return [4 /*yield*/, loading.present()];
177
+ case 2:
178
+ _d.sent();
179
+ return [4 /*yield*/, fetch_reading_1.fetchReading(data.citation, ldf_1.versionToString((_b = this.obj) === null || _b === void 0 ? void 0 : _b.version))];
180
+ case 3:
181
+ newReading = _d.sent();
182
+ return [4 /*yield*/, loading.dismiss()];
183
+ case 4:
184
+ _d.sent();
185
+ this.ldfDocShouldChange.emit(new ldf_1.Change({
186
+ path: this.path,
187
+ op: [{
188
+ type: 'set',
189
+ index: 'value',
190
+ oldValue: (_c = this.obj) === null || _c === void 0 ? void 0 : _c.value,
191
+ value: (newReading === null || newReading === void 0 ? void 0 : newReading.value) || []
192
+ }]
193
+ }));
194
+ this.obj = new ldf_1.BibleReading(__assign(__assign({}, this.obj), { citation: data === null || data === void 0 ? void 0 : data.citation, value: (newReading === null || newReading === void 0 ? void 0 : newReading.value) || [] }));
195
+ this.loadVerses();
196
+ return [2 /*return*/];
197
+ }
198
+ });
199
+ }); }
200
+ }
201
+ ]
202
+ })];
203
+ case 1:
204
+ alert = _b.sent();
205
+ return [4 /*yield*/, alert.present()];
206
+ case 2:
207
+ _b.sent();
208
+ return [2 /*return*/];
209
+ }
210
+ });
211
+ });
212
+ };
213
+ BibleReadingComponent.prototype.loadVerses = function () {
214
+ this.verses = this.obj.value || [];
215
+ };
216
+ BibleReadingComponent.prototype.paragraphs = function () {
217
+ var paragraphs = new Array();
218
+ var currentParagraph = new Array();
219
+ this.verses.forEach(function (verse) {
220
+ if (verse.hasOwnProperty('type') && verse.type === 'heading') {
221
+ paragraphs.push(currentParagraph);
222
+ currentParagraph = new Array();
223
+ }
224
+ else {
225
+ currentParagraph.push(verse);
226
+ }
227
+ });
228
+ paragraphs.push(currentParagraph);
229
+ return paragraphs;
230
+ };
231
+ // Render
232
+ BibleReadingComponent.prototype.render = function () {
233
+ var _this = this;
234
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w;
235
+ var localeStrings = this.localeStrings || {};
236
+ if (this.verses) {
237
+ /* Editable version */
238
+ if (this.editable) {
239
+ var template_1 = __assign(__assign({}, this.verses[0]), { text: '' }), templateMaker_1 = function (text) { return (__assign(__assign({}, template_1), { text: text })); };
240
+ return (React.createElement("div", { lang: (_a = this.obj) === null || _a === void 0 ? void 0 : _a.language, "class": "editable bible-reading " + (((_b = this.obj) === null || _b === void 0 ? void 0 : _b.display_format) || 'default') },
241
+ this.editable && React.createElement("ldf-label-bar", null,
242
+ React.createElement("slot", { slot: 'end', name: 'controls' },
243
+ React.createElement("ion-buttons", null,
244
+ React.createElement("ion-button", { onClick: function () { return _this.changeReading(); } },
245
+ React.createElement("ion-icon", { name: "swap-horizontal", slot: "start" }),
246
+ React.createElement("ion-label", null, localeStrings.changeReading))))),
247
+ React.createElement("ldf-label-bar", null,
248
+ React.createElement("h3", { "class": "editable-label", slot: "start" },
249
+ React.createElement("ldf-editable-text", { id: "label", text: (_c = this.obj) === null || _c === void 0 ? void 0 : _c.label, path: this.path + "/label", placeholder: localeStrings.label })),
250
+ ((_d = this.obj) === null || _d === void 0 ? void 0 : _d.citation) && React.createElement("button", { "class": "citation-button", slot: "end", onClick: function () { return _this.changeReading(); } }, this.obj.citation)),
251
+ ((_f = (_e = this.obj) === null || _e === void 0 ? void 0 : _e.metadata) === null || _f === void 0 ? void 0 : _f.compiled_intro) && React.createElement("ldf-liturgical-document", { editable: true, doc: this.obj.metadata.intro, path: this.path + "/metadata/intro" }),
252
+ React.createElement("section", { "class": "verses" }, this.verses.map(function (verse, verseIndex) { return [
253
+ verse.hasOwnProperty('type') && verse.type === 'heading'
254
+ ? React.createElement("ldf-heading", { editable: true, doc: verse, path: _this.path + "/value/" + verseIndex })
255
+ : React.createElement("div", { "class": "editable-verse" },
256
+ React.createElement("div", { "class": "editable-citation" },
257
+ React.createElement("ldf-editable-text", { "class": "book", id: "verse-" + verseIndex + "-book", text: verse.book, path: _this.path + "/value/" + verseIndex + "/book", placeholder: localeStrings.book, short: true }),
258
+ React.createElement("ldf-editable-text", { id: "verse-" + verseIndex + "-chapter", text: verse.chapter, path: _this.path + "/value/" + verseIndex + "/chapter", placeholder: localeStrings.chapter, short: true }),
259
+ " :",
260
+ React.createElement("ldf-editable-text", { id: "verse-" + verseIndex + "-verse", text: verse.verse, path: _this.path + "/value/" + verseIndex + "/verse", placeholder: localeStrings.verse, short: true })),
261
+ React.createElement("ldf-editable-text", { id: "verse-" + verseIndex + "-text", text: verse.text, path: _this.path + "/value/" + verseIndex + "/text", placeholder: localeStrings.text, short: false, template: template_1, templateMaker: templateMaker_1 }))
262
+ ]; }))));
263
+ }
264
+ /* `short` renders a few verses, with a response and citation. */
265
+ else if (this.obj.style == 'short') {
266
+ var shortResponse = (((_h = (_g = this.obj) === null || _g === void 0 ? void 0 : _g.metadata) === null || _h === void 0 ? void 0 : _h.response) || localeStrings.amen).length <= 5;
267
+ var responseNode = void 0;
268
+ if (!((_k = (_j = this.obj) === null || _j === void 0 ? void 0 : _j.metadata) === null || _k === void 0 ? void 0 : _k.response)) {
269
+ responseNode = React.createElement("span", { "class": "response" },
270
+ " ",
271
+ localeStrings.amen);
272
+ }
273
+ else {
274
+ responseNode = React.createElement("span", { "class": "response" },
275
+ " ",
276
+ this.obj.metadata.response);
277
+ }
278
+ return (React.createElement(core_2.Host, null,
279
+ ((_l = this.obj) === null || _l === void 0 ? void 0 : _l.label) && React.createElement("ldf-heading", { doc: new ldf_1.Heading({ type: 'heading', metadata: { level: 3 }, value: [this.obj.label] }) }),
280
+ React.createElement("div", { lang: (_m = this.obj) === null || _m === void 0 ? void 0 : _m.language, "class": "bible-reading " + (((_o = this.obj) === null || _o === void 0 ? void 0 : _o.display_format) || 'default') },
281
+ React.createElement("p", null,
282
+ this.verses.map(function (verse, verseIndex) {
283
+ var _a;
284
+ return verse.hasOwnProperty('type') && verse.type === 'heading'
285
+ ? React.createElement("ldf-heading", { doc: new ldf_1.Heading(verse) })
286
+ : React.createElement("ldf-string", { citation: { book: verse.book, chapter: verse.chapter, verse: verse.verse }, id: _this.obj.uid, text: verse.text, fragment: _this.path, dropcap: ((_a = _this.obj) === null || _a === void 0 ? void 0 : _a.display_format) == "force_dropcap" && verseIndex === 0 ? "force" : "disabled" });
287
+ }),
288
+ shortResponse && !((_q = (_p = this.obj) === null || _p === void 0 ? void 0 : _p.metadata) === null || _q === void 0 ? void 0 : _q.omit_response) && responseNode,
289
+ React.createElement("span", { "class": "citation" }, this.obj.citation)),
290
+ !shortResponse && !((_s = (_r = this.obj) === null || _r === void 0 ? void 0 : _r.metadata) === null || _s === void 0 ? void 0 : _s.omit_response) && React.createElement("p", null, responseNode))));
291
+ }
292
+ /* `long` render a typical Bible reading in the liturgy */
293
+ else {
294
+ var paragraphs = this.paragraphs();
295
+ return (React.createElement("div", { lang: (_t = this.obj) === null || _t === void 0 ? void 0 : _t.language, "class": "bible-reading " + (((_u = this.obj) === null || _u === void 0 ? void 0 : _u.display_format) || 'default') },
296
+ React.createElement("ldf-heading", { doc: new ldf_1.Heading({ type: 'heading', metadata: { level: 3 }, value: [this.obj.label], citation: this.obj.citation }) }),
297
+ ((_w = (_v = this.obj) === null || _v === void 0 ? void 0 : _v.metadata) === null || _w === void 0 ? void 0 : _w.compiled_intro) && React.createElement("ldf-liturgical-document", { doc: this.obj.metadata.compiled_intro }),
298
+ paragraphs.map(function (paragraph, paragraphIndex) { return React.createElement("p", { lang: _this.obj.language }, paragraph.map(function (verse, verseIndex) {
299
+ return verse.hasOwnProperty('type') && verse.type === 'heading'
300
+ ? React.createElement("ldf-heading", { doc: new ldf_1.Heading(verse) })
301
+ : [
302
+ React.createElement("sup", null, verse.verse),
303
+ React.createElement("ldf-string", { citation: verse, dropcap: paragraphIndex == 0 && verseIndex == 0 ? 'force' : 'disabled', id: verse.chapter + "-" + verse.book + "-" + verse.verse, text: verse.text, index: verseIndex, fragment: _this.path })
304
+ ];
305
+ })); })));
306
+ }
307
+ }
308
+ else {
309
+ return this.loadingError ? React.createElement("pre", null, this.loadingError) : React.createElement("p", null, localeStrings.loading);
310
+ }
311
+ };
312
+ __decorate([
313
+ core_2.Element()
314
+ ], BibleReadingComponent.prototype, "element");
315
+ __decorate([
316
+ core_2.State()
317
+ ], BibleReadingComponent.prototype, "obj");
318
+ __decorate([
319
+ core_2.State()
320
+ ], BibleReadingComponent.prototype, "localeStrings");
321
+ __decorate([
322
+ core_2.State()
323
+ ], BibleReadingComponent.prototype, "verses");
324
+ __decorate([
325
+ core_2.State()
326
+ ], BibleReadingComponent.prototype, "loadingError");
327
+ __decorate([
328
+ core_2.Prop()
329
+ ], BibleReadingComponent.prototype, "doc");
330
+ __decorate([
331
+ core_2.Watch('doc')
332
+ ], BibleReadingComponent.prototype, "docChanged");
333
+ __decorate([
334
+ core_2.Prop({ reflect: true })
335
+ ], BibleReadingComponent.prototype, "path");
336
+ __decorate([
337
+ core_2.Prop()
338
+ ], BibleReadingComponent.prototype, "editable");
339
+ __decorate([
340
+ core_2.Event({ bubbles: true })
341
+ ], BibleReadingComponent.prototype, "ldfDocShouldChange");
342
+ __decorate([
343
+ core_2.Method()
344
+ ], BibleReadingComponent.prototype, "changeReading");
345
+ BibleReadingComponent = __decorate([
346
+ core_2.Component({
347
+ tag: 'ldf-bible-reading',
348
+ styleUrl: 'bible-reading.scss',
349
+ scoped: true
350
+ })
351
+ ], BibleReadingComponent);
352
+ return BibleReadingComponent;
353
+ }());
354
+ exports.BibleReadingComponent = BibleReadingComponent;
@@ -128,8 +128,8 @@ var StringComponent = /** @class */ (function () {
128
128
  if (firstChunk) {
129
129
  var splitTest = (firstChunk || '').split(/[\s.!?\\]/);
130
130
  var firstWord = splitTest ? splitTest[0] : '', re = firstWord.length > 2
131
- ? /^ ?([\"\'“”‘’\!\?\[\]\(\)\w\u0590-\u05ff\u0370-\u03ff])([\w\u0590-\u05ff\u0370-\u03ff]*)/
132
- : /^ ?([\"\'“”‘’\!\?\[\]\(\)\w\u0590-\u05ff\u0370-\u03ff])([\w\u0590-\u05ff\u0370-\u03ff]*[\s.!?]*[\w\u0590-\u05ff\u0370-\u03ff]*)/, reIncludingPunctuation = ((_a = firstWord[0]) === null || _a === void 0 ? void 0 : _a.match(/[\"\'“”‘’\!\?\[\]\(\)]/)) ? /^ ?([\"\'“”‘’\!\?\[\]\(\)\w\u0590-\u05ff\u0370-\u03ff]{2})\s*([\w\u0590-\u05ff\u0370-\u03ff]*)/
131
+ ? /^ ?([\"\'“”‘’\!\?\[\]\(\)\,\w\u0590-\u05ff\u0370-\u03ff])([\w\u0590-\u05ff\u0370-\u03ff\,]*)/
132
+ : /^ ?([\"\'“”‘’\!\?\[\]\(\)\,\w\u0590-\u05ff\u0370-\u03ff])([\w\u0590-\u05ff\u0370-\u03ff\,]*[\s.!?]*[\w\u0590-\u05ff\u0370-\u03ff]*)/, reIncludingPunctuation = ((_a = firstWord[0]) === null || _a === void 0 ? void 0 : _a.match(/[\"\'“”‘’\!\?\[\]\(\)]/)) ? /^ ?([\"\'“”‘’\!\?\[\]\(\)\,\w\u0590-\u05ff\u0370-\u03ff]{2})\s*([\w\u0590-\u05ff\u0370-\u03ff]*)/
133
133
  : re, buffer = firstWord.length == 1, split = firstChunk.split(reIncludingPunctuation).filter(function (s) { return s !== ''; }), match1 = split[0], match2 = split[1], nextWord = split[2];
134
134
  final = new Array(React.createElement("span", { "class": 'firstword' },
135
135
  React.createElement("span", { "class": buffer ? "drop buffered-drop drop-" + match1 : "drop drop-" + match1 }, match1),
@@ -117,9 +117,9 @@ export class StringComponent {
117
117
  if (firstChunk) {
118
118
  const splitTest = (firstChunk || '').split(/[\s.!?\\]/);
119
119
  const firstWord = splitTest ? splitTest[0] : '', re = firstWord.length > 2
120
- ? /^ ?([\"\'“”‘’\!\?\[\]\(\)\w\u0590-\u05ff\u0370-\u03ff])([\w\u0590-\u05ff\u0370-\u03ff]*)/
121
- : /^ ?([\"\'“”‘’\!\?\[\]\(\)\w\u0590-\u05ff\u0370-\u03ff])([\w\u0590-\u05ff\u0370-\u03ff]*[\s.!?]*[\w\u0590-\u05ff\u0370-\u03ff]*)/, reIncludingPunctuation = ((_a = firstWord[0]) === null || _a === void 0 ? void 0 : _a.match(/[\"\'“”‘’\!\?\[\]\(\)]/))
122
- ? /^ ?([\"\'“”‘’\!\?\[\]\(\)\w\u0590-\u05ff\u0370-\u03ff]{2})\s*([\w\u0590-\u05ff\u0370-\u03ff]*)/
120
+ ? /^ ?([\"\'“”‘’\!\?\[\]\(\)\,\w\u0590-\u05ff\u0370-\u03ff])([\w\u0590-\u05ff\u0370-\u03ff\,]*)/
121
+ : /^ ?([\"\'“”‘’\!\?\[\]\(\)\,\w\u0590-\u05ff\u0370-\u03ff])([\w\u0590-\u05ff\u0370-\u03ff\,]*[\s.!?]*[\w\u0590-\u05ff\u0370-\u03ff]*)/, reIncludingPunctuation = ((_a = firstWord[0]) === null || _a === void 0 ? void 0 : _a.match(/[\"\'“”‘’\!\?\[\]\(\)]/))
122
+ ? /^ ?([\"\'“”‘’\!\?\[\]\(\)\,\w\u0590-\u05ff\u0370-\u03ff]{2})\s*([\w\u0590-\u05ff\u0370-\u03ff]*)/
123
123
  : re, buffer = firstWord.length == 1, split = firstChunk.split(reIncludingPunctuation).filter(s => s !== ''), [match1, match2, nextWord] = split;
124
124
  final = new Array(h("span", { class: 'firstword' },
125
125
  h("span", { class: buffer ? `drop buffered-drop drop-${match1}` : `drop drop-${match1}` }, match1),
@@ -145,7 +145,7 @@ var TextComponent = /** @class */ (function () {
145
145
  var value = ((_c = (_b = this.obj) === null || _b === void 0 ? void 0 : _b.metadata) === null || _c === void 0 ? void 0 : _c.rollup) ? (((_d = this.obj) === null || _d === void 0 ? void 0 : _d.value) || []).map(function (s) { return s.replace(/\s+/g, ' '); })
146
146
  : (((_e = this.obj) === null || _e === void 0 ? void 0 : _e.value) || []);
147
147
  var compiledValue_1 = value.map(function (s) {
148
- return s.split(/([\*\w\n\s,:;\.\-–—'“✠”‘’\!\?”\[\]\%\(\)\/\u0041-\u024F]+([^\*\w\n\s,;:\.'“”✠‘’”\-–—\!\?\[\]\%\(\)\/\u0041-\u024F]))/g);
148
+ return s.split(/([\*\w\n\s,:;\.\-–—'“☩✠”‘’\!\?”\[\]\%\(\)\/\u0041-\u024F]+([^\*\w\n\s,;:\.'“”☩✠‘’”\-–—\!\?\[\]\%\(\)\/\u0041-\u024F]))/g);
149
149
  });
150
150
  if (!this.editable && ((_f = this.obj) === null || _f === void 0 ? void 0 : _f.display_format) === 'abbreviated') {
151
151
  var firstSection = compiledValue_1[0], lastSection = compiledValue_1[compiledValue_1.length - 1];
@@ -183,8 +183,9 @@ var TextComponent = /** @class */ (function () {
183
183
  var _a, _b, _c, _d;
184
184
  return React.createElement("p", { "class": "text-body", id: (_this.obj.uid || _this.obj.slug) + "-prayerIndex" }, prayer === null || prayer === void 0 ? void 0 :
185
185
  prayer.map(function (chunk, chunkIndex) {
186
+ var _a;
186
187
  return React.createElement("span", { id: (_this.obj.uid || _this.obj.slug) + "-" + prayerIndex + "-" + chunkIndex },
187
- React.createElement("ldf-string", { text: chunk, citation: { label: _this.obj.label }, dropcap: prayerIndex === 0 && chunkIndex <= 1 ? "enabled" : "disabled", index: prayerIndex + chunkIndex, fragment: _this.path }));
188
+ React.createElement("ldf-string", { text: chunk, citation: { label: _this.obj.label }, dropcap: ((_a = _this.obj) === null || _a === void 0 ? void 0 : _a.display_format) == "force_dropcap" && prayerIndex === 0 && chunkIndex === 0 ? "force" : (prayerIndex === 0 && chunkIndex <= 1 ? "enabled" : "disabled"), index: prayerIndex + chunkIndex, fragment: _this.path }));
188
189
  }),
189
190
  ((_b = (_a = _this.obj) === null || _a === void 0 ? void 0 : _a.metadata) === null || _b === void 0 ? void 0 : _b.response) && prayerIndex == compiledValue_1.length - 1 && React.createElement("span", { "class": "response" },
190
191
  " ",
@@ -74,7 +74,7 @@ export class TextComponent {
74
74
  ? (((_d = this.obj) === null || _d === void 0 ? void 0 : _d.value) || []).map(s => s.replace(/\s+/g, ' '))
75
75
  : (((_e = this.obj) === null || _e === void 0 ? void 0 : _e.value) || []);
76
76
  let compiledValue = value.map(s => {
77
- return s.split(/([\*\w\n\s,:;\.\-–—'“✠”‘’\!\?”\[\]\%\(\)\/\u0041-\u024F]+([^\*\w\n\s,;:\.'“”✠‘’”\-–—\!\?\[\]\%\(\)\/\u0041-\u024F]))/g);
77
+ return s.split(/([\*\w\n\s,:;\.\-–—'“☩✠”‘’\!\?”\[\]\%\(\)\/\u0041-\u024F]+([^\*\w\n\s,;:\.'“”☩✠‘’”\-–—\!\?\[\]\%\(\)\/\u0041-\u024F]))/g);
78
78
  });
79
79
  if (!this.editable && ((_f = this.obj) === null || _f === void 0 ? void 0 : _f.display_format) === 'abbreviated') {
80
80
  const firstSection = compiledValue[0], lastSection = compiledValue[compiledValue.length - 1];
@@ -109,8 +109,11 @@ export class TextComponent {
109
109
  compiledValue.map((prayer, prayerIndex) => {
110
110
  var _a, _b, _c, _d;
111
111
  return h("p", { class: "text-body", id: `${this.obj.uid || this.obj.slug}-prayerIndex` }, prayer === null || prayer === void 0 ? void 0 :
112
- prayer.map((chunk, chunkIndex) => h("span", { id: `${this.obj.uid || this.obj.slug}-${prayerIndex}-${chunkIndex}` },
113
- h("ldf-string", { text: chunk, citation: { label: this.obj.label }, dropcap: prayerIndex === 0 && chunkIndex <= 1 ? "enabled" : "disabled", index: prayerIndex + chunkIndex, fragment: this.path }))),
112
+ prayer.map((chunk, chunkIndex) => {
113
+ var _a;
114
+ return h("span", { id: `${this.obj.uid || this.obj.slug}-${prayerIndex}-${chunkIndex}` },
115
+ h("ldf-string", { text: chunk, citation: { label: this.obj.label }, dropcap: ((_a = this.obj) === null || _a === void 0 ? void 0 : _a.display_format) == "force_dropcap" && prayerIndex === 0 && chunkIndex === 0 ? "force" : (prayerIndex === 0 && chunkIndex <= 1 ? "enabled" : "disabled"), index: prayerIndex + chunkIndex, fragment: this.path }));
116
+ }),
114
117
  ((_b = (_a = this.obj) === null || _a === void 0 ? void 0 : _a.metadata) === null || _b === void 0 ? void 0 : _b.response) && prayerIndex == compiledValue.length - 1 && h("span", { class: "response" },
115
118
  " ",
116
119
  this.obj.metadata.response),
@@ -1,5 +1,3 @@
1
- import { c as createCommonjsModule } from './_commonjsHelpers-ba3f0406.js';
2
-
3
1
  // strip away everything but year, month, day
4
2
  function dateOnly(d) {
5
3
  d.setHours(0);
@@ -145,7 +143,7 @@ const TYPES = [
145
143
  'parallel',
146
144
  ];
147
145
  const LOOKUP_TYPES = ['lectionary', 'canticle', 'category', 'slug', 'collect'];
148
- const DISPLAY_FORMATS = ['default', 'omit', 'unison', 'abbreviated'];
146
+ const DISPLAY_FORMATS = ['default', 'omit', 'unison', 'abbreviated', 'force_dropcap'];
149
147
  /** Represents a liturgy of any scope and concreteness, from a complete bullletin to a single prayer. */
150
148
  class LiturgicalDocument {
151
149
  //** Constructor takes a Javascript object containing the class's properties */
@@ -281,93 +279,4 @@ var Book;
281
279
  Book["Bel"] = "Bel";
282
280
  })(Book || (Book = {}));
283
281
 
284
- createCommonjsModule(function (module, exports) {
285
- // Reference: https://www.geeksforgeeks.org/jaro-and-jaro-winkler-similarity/
286
- Object.defineProperty(exports, "__esModule", { value: true });
287
- exports.jaroWinkler = exports.jaro = void 0;
288
- /**
289
- *
290
- * @param str1 String 1 for compare
291
- * @param str2 String 2 for compare
292
- * @param options to control case sensitive or not
293
- */
294
- function jaro(str1, str2, options) {
295
- // Exit early if either are empty.
296
- if (str1.length === 0 || str2.length === 0) {
297
- return 0;
298
- }
299
- // Convert to upper if case-sensitive is false.
300
- if (options && !options.caseSensitive) {
301
- str1 = str1.toUpperCase();
302
- str2 = str2.toUpperCase();
303
- }
304
- // Exact match
305
- if (str1 === str2) {
306
- return 1;
307
- }
308
- // Number of matches
309
- var m = 0;
310
- // Length of two Strings
311
- var len1 = str1.length;
312
- var len2 = str2.length;
313
- // Maximum distance
314
- var window = Math.floor(Math.max(len1, len2) / 2) - 1;
315
- // Hash for matches
316
- var str1Hash = new Array(len1);
317
- var str2Hash = new Array(len2);
318
- for (var i = 0; i < len1; i++) {
319
- for (var j = Math.max(0, i - window); j <= Math.min(len2, i + window + 1); j++) {
320
- if (!str1Hash[i] && !str2Hash[j] && str1[i] === str2[j]) {
321
- ++m;
322
- str1Hash[i] = str2Hash[j] = true;
323
- break;
324
- }
325
- }
326
- }
327
- // Exit early if no matches were found.
328
- if (m === 0) {
329
- return 0;
330
- }
331
- // Count the transpositions.
332
- var t = 0;
333
- var point = 0;
334
- for (var i = 0; i < len1; i++) {
335
- if (str1Hash[i]) {
336
- while (!str2Hash[point]) {
337
- point++;
338
- }
339
- if (str1.charAt(i) !== str2.charAt(point++)) {
340
- t++;
341
- }
342
- }
343
- }
344
- t /= 2;
345
- return (m / len1 + m / len2 + (m - t) / m) / 3;
346
- }
347
- exports.jaro = jaro;
348
- /**
349
- *
350
- * @param str1 String 1 for compare
351
- * @param str2 String 2 for compare
352
- * @param options to control case sensitive or not
353
- */
354
- function jaroWinkler(str1, str2, options) {
355
- // Jaro Distance
356
- var jaroDist = jaro(str1, str2, options);
357
- // Same prefix length, maxium is 4
358
- var prefix = 0;
359
- if (jaroDist > 0.7) {
360
- var minIndex = Math.min(str1.length, str2.length);
361
- var i = 0;
362
- while (str1[i] === str2[i] && i < 4 && i < minIndex) {
363
- ++prefix;
364
- i++;
365
- }
366
- jaroDist += 0.1 * prefix * (1 - jaroDist);
367
- }
368
- return jaroDist;
369
- }
370
- exports.jaroWinkler = jaroWinkler;
371
- });
372
-
373
282
  export { Condition as C, LiturgicalDocument as L, Responsive as R, dateOnly as a, dateFromYMDString as d };
@@ -1,4 +1,4 @@
1
- import { L as LiturgicalDocument } from './index-f5b9b789.js';
1
+ import { L as LiturgicalDocument } from './book-31b8cdde.js';
2
2
 
3
3
  const STYLES = ['text', 'day', 'date'];
4
4
  class Heading extends LiturgicalDocument {
@@ -1,4 +1,4 @@
1
- import { L as LiturgicalDocument } from './index-f5b9b789.js';
1
+ import { L as LiturgicalDocument } from './book-31b8cdde.js';
2
2
 
3
3
  const STYLES = ['normal', 'slideshow', 'carousel'];
4
4
  /** Refrain represents a short text like the Gloria Patri, Hail Mary, or an Antiphon */
@@ -3,11 +3,10 @@ import { g as getIonMode$1, i as isPlatform, c as config } from './ionic-global-
3
3
  import { h as hasShadowDom, c as clamp, d as debounceEvent, r as raf } from './helpers-8c93393b.js';
4
4
  import { o as openURL, c as createColorClasses$1, h as hostContext } from './theme-74c22054.js';
5
5
  import { p as popoverController } from './overlays-06b43b65.js';
6
- import './index-f5b9b789.js';
6
+ import './book-31b8cdde.js';
7
7
  import { C as Change } from './change-ea574d32.js';
8
8
  import { g as getComponentClosestLanguage } from './locale-ec8e14e6.js';
9
9
  import './hardware-back-button-b3b61715.js';
10
- import './_commonjsHelpers-ba3f0406.js';
11
10
 
12
11
  const buttonIosCss = ":host{--overflow:hidden;--ripple-color:currentColor;--border-width:initial;--border-color:initial;--border-style:initial;--color-activated:var(--color);--color-focused:var(--color);--color-hover:var(--color);--box-shadow:none;display:inline-block;width:auto;color:var(--color);font-family:var(--ion-font-family, inherit);text-align:center;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;user-select:none;vertical-align:top;vertical-align:-webkit-baseline-middle;pointer-events:auto;font-kerning:none}:host(.button-disabled){cursor:default;opacity:0.5;pointer-events:none}:host(.button-solid){--background:var(--ion-color-primary, #3880ff);--color:var(--ion-color-primary-contrast, #fff)}:host(.button-outline){--border-color:var(--ion-color-primary, #3880ff);--background:transparent;--color:var(--ion-color-primary, #3880ff)}:host(.button-clear){--border-width:0;--background:transparent;--color:var(--ion-color-primary, #3880ff)}:host(.button-block){display:block}:host(.button-block) .button-native{margin-left:0;margin-right:0;display:block;width:100%;clear:both;contain:content}:host(.button-block) .button-native::after{clear:both}:host(.button-full){display:block}:host(.button-full) .button-native{margin-left:0;margin-right:0;display:block;width:100%;contain:content}:host(.button-full:not(.button-round)) .button-native{border-radius:0;border-right-width:0;border-left-width:0}.button-native{border-radius:var(--border-radius);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:block;position:relative;width:100%;height:100%;transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);outline:none;background:var(--background);line-height:1;box-shadow:var(--box-shadow);contain:layout style;cursor:pointer;opacity:var(--opacity);overflow:var(--overflow);z-index:0;box-sizing:border-box;appearance:none}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){.button-native{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.button-native::-moz-focus-inner{border:0}.button-inner{display:flex;position:relative;flex-flow:row nowrap;flex-shrink:0;align-items:center;justify-content:center;width:100%;height:100%;z-index:1}::slotted(ion-icon){font-size:1.4em;pointer-events:none}::slotted(ion-icon[slot=start]){margin-left:-0.3em;margin-right:0.3em;margin-top:0;margin-bottom:0}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){::slotted(ion-icon[slot=start]){margin-left:unset;margin-right:unset;-webkit-margin-start:-0.3em;margin-inline-start:-0.3em;-webkit-margin-end:0.3em;margin-inline-end:0.3em}}::slotted(ion-icon[slot=end]){margin-left:0.3em;margin-right:-0.2em;margin-top:0;margin-bottom:0}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){::slotted(ion-icon[slot=end]){margin-left:unset;margin-right:unset;-webkit-margin-start:0.3em;margin-inline-start:0.3em;-webkit-margin-end:-0.2em;margin-inline-end:-0.2em}}::slotted(ion-icon[slot=icon-only]){font-size:1.8em}ion-ripple-effect{color:var(--ripple-color)}.button-native::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\"\";opacity:0}:host(.ion-activated){color:var(--color-activated)}:host(.ion-activated) .button-native::after{background:var(--background-activated);opacity:var(--background-activated-opacity)}:host(.ion-focused){color:var(--color-focused)}:host(.ion-focused) .button-native::after{background:var(--background-focused);opacity:var(--background-focused-opacity)}@media (any-hover: hover){:host(:hover){color:var(--color-hover)}:host(:hover) .button-native::after{background:var(--background-hover);opacity:var(--background-hover-opacity)}}:host(.button-solid.ion-color) .button-native{background:var(--ion-color-base);color:var(--ion-color-contrast)}:host(.button-outline.ion-color) .button-native{border-color:var(--ion-color-base);background:transparent;color:var(--ion-color-base)}:host(.button-clear.ion-color) .button-native{background:transparent;color:var(--ion-color-base)}:host(.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native{color:var(--ion-toolbar-color, var(--color))}:host(.button-outline.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native{border-color:var(--ion-toolbar-color, var(--color, var(--border-color)))}:host(.button-solid.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native{background:var(--ion-toolbar-color, var(--background));color:var(--ion-toolbar-background, var(--color))}:host{--border-radius:10px;--padding-top:0;--padding-bottom:0;--padding-start:1em;--padding-end:1em;--transition:background-color, opacity 100ms linear;margin-left:2px;margin-right:2px;margin-top:4px;margin-bottom:4px;height:2.8em;font-size:16px;font-weight:500;letter-spacing:-0.03em}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host{margin-left:unset;margin-right:unset;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px}}:host(.button-solid){--background-activated:var(--ion-color-primary-shade, #3171e0);--background-focused:var(--ion-color-primary-shade, #3171e0);--background-hover:var(--ion-color-primary-tint, #4c8dff);--background-activated-opacity:1;--background-focused-opacity:1;--background-hover-opacity:1}:host(.button-outline){--border-radius:10px;--border-width:1px;--border-style:solid;--background-activated:var(--ion-color-primary, #3880ff);--background-focused:var(--ion-color-primary, #3880ff);--background-hover:transparent;--background-focused-opacity:.1;--color-activated:var(--ion-color-primary-contrast, #fff)}:host(.button-clear){--background-activated:transparent;--background-focused:var(--ion-color-primary, #3880ff);--background-hover:transparent;--background-focused-opacity:.1;font-size:17px;font-weight:normal;letter-spacing:0}:host(.button-large){--border-radius:12px;--padding-top:0;--padding-start:1em;--padding-end:1em;--padding-bottom:0;height:2.8em;font-size:20px}:host(.button-small){--border-radius:6px;--padding-top:0;--padding-start:0.9em;--padding-end:0.9em;--padding-bottom:0;height:2.1em;font-size:13px}:host(.button-round){--border-radius:64px;--padding-top:0;--padding-start:26px;--padding-end:26px;--padding-bottom:0}:host(.button-strong){font-weight:600}:host(.button-clear.ion-activated){opacity:0.4}:host(.button-outline.ion-activated.ion-color) .button-native{color:var(--ion-color-contrast)}:host(.button-outline.ion-activated.ion-color) .button-native::after{background:var(--ion-color-base)}:host(.button-solid.ion-color.ion-activated) .button-native::after{background:var(--ion-color-shade)}:host(.button-outline.ion-focused.ion-color) .button-native,:host(.button-clear.ion-focused.ion-color) .button-native{color:var(--ion-color-base)}:host(.button-outline.ion-focused.ion-color) .button-native::after,:host(.button-clear.ion-focused.ion-color) .button-native::after{background:var(--ion-color-base)}:host(.button-solid.ion-color.ion-focused) .button-native::after{background:var(--ion-color-shade)}@media (any-hover: hover){:host(.button-clear:hover),:host(.button-outline:hover){opacity:0.6}:host(.button-clear.ion-color:hover) .button-native,:host(.button-outline.ion-color:hover) .button-native{color:var(--ion-color-base)}:host(.button-clear.ion-color:hover) .button-native::after,:host(.button-outline.ion-color:hover) .button-native::after{background:transparent}:host(.button-solid.ion-color:hover) .button-native::after{background:var(--ion-color-tint)}:host(:hover.button-solid.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native::after{background:#fff;opacity:0.1}}";
13
12
 
@@ -2,12 +2,11 @@ import { r as registerInstance, h, H as Host, f as forceUpdate, c as createEvent
2
2
  import { g as getIonMode } from './ionic-global-ef89a0a5.js';
3
3
  import { c as createColorClasses } from './theme-74c22054.js';
4
4
  import { f as alertController } from './overlays-06b43b65.js';
5
- import './index-f5b9b789.js';
6
- import { R as Refrain } from './refrain-810c4de5.js';
5
+ import './book-31b8cdde.js';
6
+ import { R as Refrain } from './refrain-75a412cb.js';
7
7
  import { C as Change } from './change-ea574d32.js';
8
8
  import { g as getComponentClosestLanguage } from './locale-ec8e14e6.js';
9
9
  import './hardware-back-button-b3b61715.js';
10
- import './_commonjsHelpers-ba3f0406.js';
11
10
 
12
11
  const cardContentIosCss = "ion-card-content{display:block;position:relative}.card-content-ios{padding-left:20px;padding-right:20px;padding-top:20px;padding-bottom:20px;font-size:16px;line-height:1.4}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){.card-content-ios{padding-left:unset;padding-right:unset;-webkit-padding-start:20px;padding-inline-start:20px;-webkit-padding-end:20px;padding-inline-end:20px}}.card-content-ios h1{margin-left:0;margin-right:0;margin-top:0;margin-bottom:2px;font-size:24px;font-weight:normal}.card-content-ios h2{margin-left:0;margin-right:0;margin-top:2px;margin-bottom:2px;font-size:16px;font-weight:normal}.card-content-ios h3,.card-content-ios h4,.card-content-ios h5,.card-content-ios h6{margin-left:0;margin-right:0;margin-top:2px;margin-bottom:2px;font-size:14px;font-weight:normal}.card-content-ios p{margin-left:0;margin-right:0;margin-top:0;margin-bottom:2px;font-size:14px}ion-card-header+.card-content-ios{padding-top:0}";
13
12
 
@@ -2,11 +2,10 @@ import { r as registerInstance, c as createEvent, h, H as Host, a as getElement
2
2
  import { g as getIonMode } from './ionic-global-ef89a0a5.js';
3
3
  import { f as findItemLabel, b as renderHiddenInput } from './helpers-8c93393b.js';
4
4
  import { c as createColorClasses, h as hostContext } from './theme-74c22054.js';
5
- import './index-f5b9b789.js';
5
+ import './book-31b8cdde.js';
6
6
  import { C as Change } from './change-ea574d32.js';
7
7
  import { f as alertController } from './overlays-06b43b65.js';
8
8
  import { g as getComponentClosestLanguage } from './locale-ec8e14e6.js';
9
- import './_commonjsHelpers-ba3f0406.js';
10
9
  import './hardware-back-button-b3b61715.js';
11
10
 
12
11
  const checkboxIosCss = ":host{--background-checked:var(--ion-color-primary, #3880ff);--border-color-checked:var(--ion-color-primary, #3880ff);--checkmark-color:var(--ion-color-primary-contrast, #fff);--checkmark-width:1;--transition:none;display:inline-block;position:relative;user-select:none;z-index:2}:host(.ion-color){--background-checked:var(--ion-color-base);--border-color-checked:var(--ion-color-base);--checkmark-color:var(--ion-color-contrast)}button{left:0;top:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;position:absolute;width:100%;height:100%;border:0;background:transparent;cursor:pointer;appearance:none;outline:none}[dir=rtl] button,:host-context([dir=rtl]) button{left:unset;right:unset;right:0}button::-moz-focus-inner{border:0}.checkbox-icon{border-radius:var(--border-radius);display:block;position:relative;width:100%;height:100%;transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);box-sizing:border-box}.checkbox-icon path{fill:none;stroke:var(--checkmark-color);stroke-width:var(--checkmark-width);opacity:0}:host(.checkbox-checked) .checkbox-icon,:host(.checkbox-indeterminate) .checkbox-icon{border-color:var(--border-color-checked);background:var(--background-checked)}:host(.checkbox-checked) .checkbox-icon path,:host(.checkbox-indeterminate) .checkbox-icon path{opacity:1}:host(.checkbox-disabled){pointer-events:none}:host{--border-radius:50%;--border-width:1px;--border-style:solid;--border-color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.23);--background:var(--ion-item-background, var(--ion-background-color, #fff));--size:26px;width:var(--size);height:var(--size)}:host(.checkbox-disabled){opacity:0.3}:host(.in-item){margin-left:0;margin-right:8px;margin-top:10px;margin-bottom:9px;display:block;position:static}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host(.in-item){margin-left:unset;margin-right:unset;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:8px;margin-inline-end:8px}}:host(.in-item[slot=start]){margin-left:2px;margin-right:20px;margin-top:8px;margin-bottom:8px}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host(.in-item[slot=start]){margin-left:unset;margin-right:unset;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:20px;margin-inline-end:20px}}";
@@ -3,7 +3,7 @@ import { g as getIonMode } from './ionic-global-ef89a0a5.js';
3
3
  import { d as debounceEvent, f as findItemLabel } from './helpers-8c93393b.js';
4
4
  import { c as createColorClasses } from './theme-74c22054.js';
5
5
  import { D as Debounce } from './index-f08f6130.js';
6
- import './index-f5b9b789.js';
6
+ import './book-31b8cdde.js';
7
7
  import { C as Cursor } from './cursor-0e47f111.js';
8
8
  import { C as Change } from './change-ea574d32.js';
9
9
  import { c as createCommonjsModule } from './_commonjsHelpers-ba3f0406.js';