@avakhula/ui 0.1.20 → 0.1.22

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 (86) hide show
  1. package/dist/index.css +1 -0
  2. package/dist/index.js +13643 -12635
  3. package/dist/index.umd.cjs +91 -83
  4. package/package.json +6 -5
  5. package/src/assets/scss/mixins/dropdown-list-item.scss +3 -3
  6. package/src/assets/scss/mixins/tooltip-position.scss +7 -0
  7. package/src/assets/scss/mixins.scss +2 -2
  8. package/src/assets/scss/style.scss +4 -4
  9. package/src/components/Accordion/Accordion.scss +3 -3
  10. package/src/components/Accordion/Accordion.vue +2 -2
  11. package/src/components/Alert/Alert.vue +1 -1
  12. package/src/components/Alert/alert.scss +2 -2
  13. package/src/components/Avatar/Avatar.vue +2 -2
  14. package/src/components/Badge/Badge.vue +2 -2
  15. package/src/components/Breadcrumbs/Breadcrumbs.vue +7 -2
  16. package/src/components/Breadcrumbs/breadcrumbs.scss +5 -5
  17. package/src/components/Button/Button.vue +2 -2
  18. package/src/components/Button/button.scss +3 -3
  19. package/src/components/Chips/Chips.vue +3 -3
  20. package/src/components/Dropdown/Dropdown.spec.js +0 -0
  21. package/src/components/Dropdown/Dropdown.vue +104 -27
  22. package/src/components/Dropdown/DropdownDivider.vue +1 -1
  23. package/src/components/Dropdown/DropdownItem.vue +1 -1
  24. package/src/components/Dropdown/DropdownList.vue +11 -1
  25. package/src/components/Form/CharactersCount.vue +2 -2
  26. package/src/components/Form/Checkbox/Checkbox.scss +4 -4
  27. package/src/components/Form/Checkbox/Checkbox.vue +1 -1
  28. package/src/components/Form/DatePicker/DatePicker.scss +4 -4
  29. package/src/components/Form/DatePicker/DatePicker.vue +1 -1
  30. package/src/components/Form/FormGroup/FormGroup.vue +2 -2
  31. package/src/components/Form/FormGroup/FormGroupSet.vue +1 -1
  32. package/src/components/Form/Input/Input.vue +7 -4
  33. package/src/components/Form/Input/input.scss +3 -3
  34. package/src/components/Form/Label/Label.vue +2 -2
  35. package/src/components/Form/PhoneInput/PhoneInput.vue +56 -21
  36. package/src/components/Form/PhoneInput/phoneInput.scss +4 -4
  37. package/src/components/Form/Radio/Radio.vue +1 -1
  38. package/src/components/Form/Radio/radio.scss +3 -3
  39. package/src/components/Form/TextEditor/TextEditor.vue +27 -168
  40. package/src/components/Form/TextEditor/Toolbar.vue +723 -0
  41. package/src/components/Form/TextEditor/icons/toolbarIcons.js +8 -0
  42. package/src/components/Form/TextEditor/plugins/imageBlot.js +23 -0
  43. package/src/components/Form/TextEditor/setupTextEditor.js +71 -0
  44. package/src/components/Form/TextEditor/textEditor.scss +9 -357
  45. package/src/components/Form/Textarea/Textarea.spec.js +0 -0
  46. package/src/components/Form/Textarea/Textarea.vue +2 -1
  47. package/src/components/Form/Textarea/textarea.scss +3 -3
  48. package/src/components/Form/Toggle/Toggle.vue +1 -1
  49. package/src/components/Form/Toggle/toggle.scss +3 -3
  50. package/src/components/IconButton/IconButton.scss +2 -2
  51. package/src/components/IconButton/IconButton.vue +6 -4
  52. package/src/components/List.vue +1 -1
  53. package/src/components/Modal/Modal.vue +85 -49
  54. package/src/components/Pagination/Pagination.vue +28 -3
  55. package/src/components/Pagination/pagination.scss +20 -4
  56. package/src/components/Panel/Panel.vue +4 -4
  57. package/src/components/Popover/Popover.vue +7 -2
  58. package/src/components/Popover/popover.scss +3 -3
  59. package/src/components/ProgressBar/ProgressBar.vue +1 -1
  60. package/src/components/ProgressBar/progressBar.scss +1 -1
  61. package/src/components/Sorting/Sorting.vue +1 -1
  62. package/src/components/Sorting/sorting.scss +5 -5
  63. package/src/components/SplitButton/SplitButton.vue +1 -1
  64. package/src/components/SplitButton/SplitButtonItem.vue +1 -1
  65. package/src/components/SplitButton/splitButton.scss +3 -3
  66. package/src/components/StatusIndicator/StatusIndicator.vue +2 -2
  67. package/src/components/Table/Cells/Cell.vue +2 -2
  68. package/src/components/Table/Cells/CheckboxCell.vue +0 -0
  69. package/src/components/Table/Row.vue +1 -1
  70. package/src/components/Table/Table.stories.js +0 -0
  71. package/src/components/Table/Table.vue +0 -0
  72. package/src/components/Tabs/TabDropdown.vue +1 -1
  73. package/src/components/Tabs/Tabs.vue +9 -5
  74. package/src/components/Tabs/tabs.scss +4 -4
  75. package/src/components/TagPill/TagPill.vue +2 -2
  76. package/src/components/ToggleTip/ToggleTip.vue +1 -1
  77. package/src/components/ToggleTip/toggleTip.scss +5 -5
  78. package/src/components/Tooltip/Tooltip.vue +3 -3
  79. package/src/components/TreeSelect/Option.vue +16 -14
  80. package/src/components/TreeSelect/Select.vue +233 -134
  81. package/src/components/TreeSelect/scss/option.scss +6 -6
  82. package/src/components/TreeSelect/scss/select.scss +53 -4
  83. package/src/directives/tooltip/tooltip.js +46 -0
  84. package/src/index.js +6 -1
  85. package/vite.config.js +0 -0
  86. package/dist/style.css +0 -1
@@ -0,0 +1,723 @@
1
+ <template>
2
+ <div class="ib-toolbar toolbar" ref="toolbar">
3
+ <div
4
+ class="toolbar-group header-toolbar-group"
5
+ v-show="placeholders.length"
6
+ >
7
+ <label class="toolbar-group__label" for="placeholders"
8
+ >Placeholder Selector</label
9
+ >
10
+ <select id="placeholders" class="ql-placeholder">
11
+ <option selected value="default" class="disabled"></option>
12
+ <option
13
+ v-for="placeholder in placeholders"
14
+ :key="placeholder.id"
15
+ :value="placeholder.id"
16
+ >
17
+ {{ placeholder.label }}
18
+ </option>
19
+ </select>
20
+ </div>
21
+
22
+ <div
23
+ v-if="!isElementHidden('header')"
24
+ class="toolbar-group header-toolbar-group"
25
+ v-tooltip="lang('text_style', langComponents.COMPONENT_SYSTEM)"
26
+ >
27
+ <label class="toolbar-group__label" :for="'header-selector' + uid"
28
+ >Header Selector</label
29
+ >
30
+ <select :id="'header-selector' + uid" class="ql-header">
31
+ <option value="1"></option>
32
+ <option value="2"></option>
33
+ <option value="3"></option>
34
+ <option value="4"></option>
35
+ <option value="5"></option>
36
+ <option value="6"></option>
37
+ <option selected></option>
38
+ </select>
39
+ </div>
40
+
41
+ <div
42
+ v-if="!isElementHidden('font-size')"
43
+ class="toolbar-group header-toolbar-group"
44
+ v-tooltip="lang('font_size', langComponents.COMPONENT_SYSTEM)"
45
+ >
46
+ <label class="toolbar-group__label" :for="'font-size-selector' + uid"
47
+ >Font Size Selector</label
48
+ >
49
+ <select :id="'font-size-selector' + uid" class="ql-size ql-header">
50
+ <option value="12px">12 px</option>
51
+ <option value="14px">14 px</option>
52
+ <option value="16px">16 px</option>
53
+ <option value="20px">20 px</option>
54
+ <option value="24px">24 px</option>
55
+ <option value="36px">36 px</option>
56
+ <option value="48px">48 px</option>
57
+ </select>
58
+ </div>
59
+
60
+ <div class="toolbar-group">
61
+ <ib-icon-button
62
+ v-if="!isElementHidden('bold')"
63
+ v-tooltip="lang('bold', langComponents.COMPONENT_SYSTEM)"
64
+ aria-label="button-bold"
65
+ class="toolbar-item ql-bold"
66
+ kind="ghost"
67
+ ></ib-icon-button>
68
+
69
+ <ib-icon-button
70
+ v-if="!isElementHidden('italic')"
71
+ v-tooltip="lang('italic', langComponents.COMPONENT_SYSTEM)"
72
+ aria-label="button-italic"
73
+ class="toolbar-item ql-italic"
74
+ kind="ghost"
75
+ ></ib-icon-button>
76
+
77
+ <ib-icon-button
78
+ v-if="!isElementHidden('underline')"
79
+ v-tooltip="lang('underline', langComponents.COMPONENT_SYSTEM)"
80
+ aria-label="button-underline"
81
+ class="toolbar-item ql-underline"
82
+ kind="ghost"
83
+ ></ib-icon-button>
84
+
85
+ <ib-icon-button
86
+ v-if="!isElementHidden('strike')"
87
+ v-tooltip="lang('strikethrough', langComponents.COMPONENT_SYSTEM)"
88
+ aria-label="button-strike"
89
+ class="toolbar-item ql-strike"
90
+ kind="ghost"
91
+ ></ib-icon-button>
92
+ </div>
93
+
94
+ <div class="toolbar-group">
95
+ <div v-tooltip="lang('highlight_color', langComponents.COMPONENT_SYSTEM)">
96
+ <label
97
+ class="toolbar-group__label"
98
+ :for="'background-selector' + uid"
99
+ v-tooltip="lang('highlight_color', langComponents.COMPONENT_SYSTEM)"
100
+ >
101
+ Background Selector
102
+ </label>
103
+
104
+ <select v-tooltip="lang('highlight_color', langComponents.COMPONENT_SYSTEM)" :id="'background-selector' + uid" class="ql-background"></select>
105
+ </div>
106
+
107
+ <div v-tooltip="lang('text_color', langComponents.COMPONENT_SYSTEM)">
108
+ <label class="toolbar-group__label" :for="'color-selector' + uid"
109
+ v-tooltip="lang('text_color', langComponents.COMPONENT_SYSTEM)"
110
+ >Background Color Selector</label
111
+ >
112
+ <select :id="'color-selector' + uid" class="ql-color"></select>
113
+ </div>
114
+ </div>
115
+
116
+ <div class="toolbar-group">
117
+ <ib-icon-button
118
+ v-if="!isElementHidden('code')"
119
+ v-tooltip="lang('code_snippet', langComponents.COMPONENT_SYSTEM)"
120
+ aria-label="button-code-block"
121
+ class="toolbar-item ql-code-block"
122
+ kind="ghost"
123
+ ></ib-icon-button>
124
+
125
+ <ib-icon-button
126
+ v-if="!isElementHidden('image')"
127
+ v-tooltip="lang('insert_image', langComponents.COMPONENT_SYSTEM)"
128
+ aria-label="button-image"
129
+ class="toolbar-item ql-image"
130
+ kind="ghost"
131
+ ></ib-icon-button>
132
+
133
+ <ib-icon-button
134
+ v-if="!isElementHidden('link')"
135
+ v-tooltip="lang('insert_link', langComponents.COMPONENT_SYSTEM)"
136
+ aria-label="button-link"
137
+ class="toolbar-item ql-link"
138
+ kind="ghost"
139
+ ></ib-icon-button>
140
+ </div>
141
+
142
+ <div class="toolbar-group">
143
+ <ib-icon-button
144
+ v-if="!isElementHidden('align')"
145
+ v-tooltip="lang('align_left', langComponents.COMPONENT_SYSTEM)"
146
+ aria-label="button-align"
147
+ class="toolbar-item ql-align"
148
+ kind="ghost"
149
+ ></ib-icon-button>
150
+
151
+ <ib-icon-button
152
+ v-if="!isElementHidden('align-center')"
153
+ v-tooltip="lang('align_center', langComponents.COMPONENT_SYSTEM)"
154
+ aria-label="button-align-center"
155
+ class="ql-align toolbar-item"
156
+ value="center"
157
+ kind="ghost"
158
+ ></ib-icon-button>
159
+
160
+ <ib-icon-button
161
+ v-if="!isElementHidden('align-right')"
162
+ v-tooltip="lang('align_right', langComponents.COMPONENT_SYSTEM)"
163
+ aria-label="button-align-right"
164
+ class="ql-align toolbar-item"
165
+ value="right"
166
+ kind="ghost"
167
+ ></ib-icon-button>
168
+
169
+ <ib-icon-button
170
+ v-if="!isElementHidden('align-justify')"
171
+ v-tooltip="lang('justify', langComponents.COMPONENT_SYSTEM)"
172
+ aria-label="button-align-justify"
173
+ class="ql-align toolbar-item"
174
+ value="justify"
175
+ kind="ghost"
176
+ ></ib-icon-button>
177
+ </div>
178
+
179
+ <div class="toolbar-group">
180
+ <ib-icon-button
181
+ v-if="!isElementHidden('ordered-list')"
182
+ v-tooltip="lang('number_list', langComponents.COMPONENT_SYSTEM)"
183
+ aria-label="button-ordered-list"
184
+ class="ql-list toolbar-item"
185
+ value="ordered"
186
+ kind="ghost"
187
+ ></ib-icon-button>
188
+
189
+ <ib-icon-button
190
+ v-if="!isElementHidden('bullet-list')"
191
+ v-tooltip="lang('bullet_list', langComponents.COMPONENT_SYSTEM)"
192
+ aria-label="button-bullet-list"
193
+ class="ql-list toolbar-item"
194
+ value="bullet"
195
+ kind="ghost"
196
+ ></ib-icon-button>
197
+
198
+ <ib-icon-button
199
+ v-if="!isElementHidden('alphabet-list')"
200
+ v-tooltip="lang('alphabet_list', langComponents.COMPONENT_SYSTEM)"
201
+ aria-label="button-alphabet-list"
202
+ class="ql-alphabet-list alphabet-list toolbar-item"
203
+ kind="ghost"
204
+ ></ib-icon-button>
205
+ </div>
206
+
207
+ <div v-if="$slots.actions" class="toolbar-group">
208
+ <ib-dropdown-list>
209
+ <template #trigger>
210
+ <ib-icon-button v-tooltip="lang('actions', langComponents.COMPONENT_SYSTEM)" kind="ghost">
211
+ <ib-icon name="ellipsis-horizontal-sharp" />
212
+ </ib-icon-button>
213
+ </template>
214
+
215
+ <template #body>
216
+ <slot name="actions"></slot>
217
+ </template>
218
+ </ib-dropdown-list>
219
+ </div>
220
+ </div>
221
+ </template>
222
+
223
+ <script>
224
+ import IbIconButton from "../../IconButton/IconButton.vue";
225
+ import IbIcon from "../../Icon.vue";
226
+ import IbDropdownList from "../../Dropdown/DropdownList.vue";
227
+ import { TooltipDirective as Tooltip } from "../../../directives/tooltip/tooltip"
228
+
229
+ export default {
230
+ props: {
231
+ placeholders: {
232
+ type: Array,
233
+ default: [],
234
+ },
235
+ uid: {
236
+ type: String,
237
+ default: "",
238
+ },
239
+ hiddenElements: {
240
+ type: Array,
241
+ default: () => [],
242
+ },
243
+
244
+ },
245
+ mounted() {
246
+ this.$nextTick(() => {
247
+ this.$refs.toolbar?.classList.remove("ql-toolbar");
248
+ });
249
+ },
250
+ methods: {
251
+ isElementHidden(element) {
252
+ return this.hiddenElements.includes(element);
253
+ },
254
+ },
255
+ components: {
256
+ IbIconButton,
257
+ IbIcon,
258
+ IbDropdownList,
259
+ },
260
+ directives: {
261
+ Tooltip,
262
+ },
263
+ };
264
+ </script>
265
+
266
+ <style lang="scss">
267
+ @use "../../../assets/scss/variables/colors.scss" as *;
268
+ @use "../../../assets/scss/variables/shadows.scss" as *;
269
+ @use "../../../assets/scss/mixins.scss" as *;
270
+ @use "../../../assets/scss/typography.scss" as *;
271
+
272
+ @use "./textEditor.scss" as *;
273
+ .ib-toolbar.toolbar {
274
+ padding: 0 !important;
275
+ border: none !important;
276
+ display: flex;
277
+ flex-wrap: wrap;
278
+ margin: 0 -10px;
279
+ transition: background-color 0.3s;
280
+
281
+ .toolbar-item {
282
+ &:hover {
283
+ svg {
284
+ .fill {
285
+ fill: $blue-800 !important;
286
+ }
287
+ .stroke {
288
+ stroke: $blue-800 !important;
289
+ }
290
+ }
291
+ }
292
+
293
+ &.ql-active {
294
+ background-color: $blue-200 !important;
295
+ }
296
+
297
+ &.ql-active,
298
+ &:active {
299
+ svg {
300
+ .fill {
301
+ fill: $blue-900 !important;
302
+ }
303
+ .stroke {
304
+ stroke: $blue-900 !important;
305
+ }
306
+ }
307
+ }
308
+ }
309
+
310
+ .toolbar-group {
311
+ position: relative;
312
+ display: flex;
313
+ padding: 0 10px;
314
+
315
+ &__label {
316
+ display: none;
317
+ }
318
+
319
+ &:last-child {
320
+ &::before {
321
+ display: none;
322
+ }
323
+ }
324
+
325
+ &::before {
326
+ content: "";
327
+ height: 16px;
328
+ width: 2px;
329
+ background-color: $gray-300;
330
+ position: absolute;
331
+ right: -1px;
332
+ top: 50%;
333
+ transform: translateY(-50%);
334
+ }
335
+
336
+ button {
337
+ &:not(:last-child) {
338
+ margin-right: 4px;
339
+ }
340
+ }
341
+ }
342
+ .toolbar-group {
343
+ position: relative;
344
+ display: flex;
345
+ padding: 0 10px;
346
+
347
+ &__label {
348
+ display: none;
349
+ }
350
+
351
+ &:last-child {
352
+ &::before {
353
+ display: none;
354
+ }
355
+ }
356
+
357
+ &::before {
358
+ content: "";
359
+ height: 16px;
360
+ width: 2px;
361
+ background-color: $gray-300;
362
+ position: absolute;
363
+ right: -1px;
364
+ top: 50%;
365
+ transform: translateY(-50%);
366
+ }
367
+
368
+ button {
369
+ &:not(:last-child) {
370
+ margin-right: 4px;
371
+ }
372
+ }
373
+ }
374
+
375
+ .ql-header.ql-picker {
376
+ width: 98px;
377
+ border-radius: 4px;
378
+
379
+ // Is Open
380
+ &.ql-expanded {
381
+ .ql-picker-label {
382
+ background-color: $blue-200;
383
+ border-color: transparent;
384
+
385
+ &:after {
386
+ // Transform color from $neutral-900(#1A1A1A) to $blue-900(#0057C2)
387
+ filter: invert(23%) sepia(50%) saturate(4320%) hue-rotate(204deg)
388
+ brightness(87%) contrast(101%);
389
+ transform: translateY(-50%) rotate(180deg);
390
+ }
391
+
392
+ &::before {
393
+ color: $blue-900;
394
+ }
395
+ }
396
+ }
397
+
398
+ .ql-picker-label {
399
+ padding: 2.5px 3px;
400
+ border: 2px solid transparent;
401
+ border-radius: 4px;
402
+ overflow: hidden;
403
+ transition: border-color 0.3s, background-color 0.3s;
404
+
405
+ &::after {
406
+ content: "";
407
+ background-image: url(./icons/svg/chevron-down.svg);
408
+ width: 16px;
409
+ height: 16px;
410
+ position: absolute;
411
+ top: 50%;
412
+ transform: translateY(-50%);
413
+ right: 0;
414
+ transition: transform 0.3s;
415
+ }
416
+
417
+ &:before {
418
+ color: $neutral-900;
419
+ @include Ib-H4-regular;
420
+ line-height: 15px;
421
+ transition: color 0.3s;
422
+ }
423
+
424
+ &:focus {
425
+ border-radius: 4px;
426
+ @include focus(4px);
427
+ }
428
+
429
+ svg {
430
+ display: none;
431
+ }
432
+
433
+ &:hover {
434
+ border-color: $blue-300;
435
+ background-color: $blue-100;
436
+
437
+ &:before {
438
+ color: $blue-800;
439
+ }
440
+
441
+ &::after {
442
+ // Transform color from $neutral-900(#1A1A1A) to $blue-800(#0060D6)
443
+ filter: invert(76%) sepia(94%) saturate(5659%) hue-rotate(215deg)
444
+ brightness(101%) contrast(100%);
445
+ }
446
+ }
447
+
448
+ &:active {
449
+ border-color: transparent;
450
+ background-color: $blue-200;
451
+
452
+ &:before {
453
+ color: $blue-900;
454
+ }
455
+
456
+ &::after {
457
+ // Transform color from $neutral-900(#1A1A1A) to $blue-900(#0057C2)
458
+ filter: invert(23%) sepia(50%) saturate(4320%) hue-rotate(204deg)
459
+ brightness(87%) contrast(101%);
460
+ }
461
+ }
462
+ }
463
+ }
464
+ .ql-color-picker {
465
+ .ql-picker-label {
466
+ padding: 0;
467
+ width: 24px;
468
+ height: 24px;
469
+ max-width: 24px;
470
+ max-height: 24px;
471
+ min-width: 24px;
472
+ min-height: 24px;
473
+ line-height: 1px;
474
+ display: flex;
475
+ align-items: center;
476
+ justify-content: center;
477
+ border: 2px solid transparent;
478
+
479
+ &:hover {
480
+ background-color: $blue-100;
481
+ border-color: $blue-300;
482
+ border-radius: 4px;
483
+
484
+ svg {
485
+ .ql-stroke {
486
+ stroke: $blue-800;
487
+ }
488
+ }
489
+ }
490
+
491
+ &:active {
492
+ border-color: transparent;
493
+ background-color: $blue-200;
494
+
495
+ svg {
496
+ .ql-stroke {
497
+ stroke: $blue-900;
498
+ }
499
+ }
500
+ }
501
+
502
+ &:focus {
503
+ border-radius: 4px;
504
+ @include focus(2px);
505
+ }
506
+
507
+ svg {
508
+ width: 20px;
509
+ height: 20px;
510
+
511
+ .ql-stroke {
512
+ transition: stroke 0.3s;
513
+ stroke: $neutral-900;
514
+ }
515
+ }
516
+ }
517
+
518
+ &.ql-expanded {
519
+ .ql-picker-label {
520
+ border-radius: 4px;
521
+ background-color: $blue-200;
522
+
523
+ svg {
524
+ .ql-stroke {
525
+ stroke: $blue-900;
526
+ }
527
+ }
528
+ }
529
+ }
530
+
531
+ &.ql-background {
532
+ .ql-picker-item {
533
+ &:not([data-value]) {
534
+ border: 1px solid $gray-600;
535
+ background-color: $white !important;
536
+ position: relative;
537
+
538
+ &::after {
539
+ content: "";
540
+ width: 14px;
541
+ height: 1px;
542
+ background-color: $gray-600;
543
+ position: absolute;
544
+ top: 50%;
545
+ left: 50%;
546
+ transform: translate(-50%, -50%) rotate(-45deg);
547
+ border-radius: 10px;
548
+ }
549
+
550
+ &:hover {
551
+ background-color: $white !important;
552
+ }
553
+ }
554
+ }
555
+ }
556
+
557
+ .ql-picker-options {
558
+ padding: 7.5px;
559
+ width: 162px;
560
+
561
+ .ql-picker-item {
562
+ width: 16px;
563
+ height: 16px;
564
+ padding: 0;
565
+ border: none;
566
+ border-radius: 4px;
567
+ margin: 2.5px;
568
+ transition: transform 0.2s;
569
+
570
+ &[data-value="#ffffff"] {
571
+ border: 1px solid $gray-600;
572
+ position: relative;
573
+ }
574
+
575
+ &:hover {
576
+ transform: scale(1.2);
577
+ }
578
+
579
+ &:focus {
580
+ @include focus(1px);
581
+ }
582
+
583
+ &.ql-selected {
584
+ position: relative;
585
+
586
+ &:first-child {
587
+ background-color: black;
588
+ }
589
+
590
+ &::before {
591
+ content: "";
592
+ width: calc(100% + 5px);
593
+ height: calc(100% + 5px);
594
+ border-radius: 4px;
595
+ background-color: transparent;
596
+ border: 1px solid $gray-600;
597
+ position: absolute;
598
+ top: -2.5px;
599
+ bottom: -2.5px;
600
+ right: -2.5px;
601
+ left: -2.5px;
602
+ }
603
+ }
604
+ }
605
+ }
606
+ }
607
+
608
+ .ql-picker-options {
609
+ left: -2px;
610
+ margin-top: 5px !important;
611
+ border-radius: 4px;
612
+ padding: 6.5px 0;
613
+ background-color: $white;
614
+ box-shadow: $ib-shadow-4;
615
+
616
+ .ql-picker-item {
617
+ height: 36px;
618
+ padding: 0px 15px 0px 13px;
619
+ display: flex;
620
+ align-items: center;
621
+ border-left: 2px solid transparent;
622
+ transition: border-color 0.3s, background-color 0.3s;
623
+ @include focus();
624
+
625
+ &:before {
626
+ color: $neutral-900;
627
+ }
628
+
629
+ &:hover {
630
+ background-color: $gray-100;
631
+ }
632
+
633
+ &.ql-selected {
634
+ border-color: $blue-900;
635
+ background-color: $gray-100;
636
+
637
+ &:hover {
638
+ background-color: $blue-50;
639
+ }
640
+ }
641
+ }
642
+ }
643
+ .ql-snow {
644
+ .toolbar-item {
645
+ &:hover {
646
+ svg {
647
+ .fill {
648
+ fill: $blue-800;
649
+ }
650
+ .stroke {
651
+ stroke: $blue-800;
652
+ }
653
+ }
654
+ }
655
+
656
+ &.ql-active {
657
+ background-color: $blue-200;
658
+ }
659
+
660
+ &.ql-active,
661
+ &:active {
662
+ svg {
663
+ .fill {
664
+ fill: $blue-900;
665
+ }
666
+ .stroke {
667
+ stroke: $blue-900;
668
+ }
669
+ }
670
+ }
671
+ }
672
+ }
673
+
674
+ .ql-snow .ql-picker.ql-header .ql-picker-item {
675
+ &::before {
676
+ @include Ib-H4-regular;
677
+ }
678
+
679
+ &[data-value="1"]::before {
680
+ @include Ib-H1-medium;
681
+ }
682
+
683
+ &[data-value="2"]::before {
684
+ @include Ib-H2-medium;
685
+ }
686
+
687
+ &[data-value="3"]::before {
688
+ @include Ib-H3-medium;
689
+ }
690
+
691
+ &[data-value="4"]::before {
692
+ @include Ib-H4-medium;
693
+ }
694
+
695
+ &[data-value="5"]::before {
696
+ @include Ib-H5-medium;
697
+ }
698
+
699
+ &[data-value="6"]::before {
700
+ @include Ib-H6-medium;
701
+ }
702
+ }
703
+ .ql-picker.ql-placeholder {
704
+ width: 118px;
705
+
706
+ .ql-picker-options {
707
+ [data-value="default"] {
708
+ display: none;
709
+ }
710
+ }
711
+ }
712
+
713
+ .ql-picker.ql-placeholder > span.ql-picker-label::before {
714
+ content: "Placeholders";
715
+ }
716
+
717
+ .ql-picker.ql-placeholder
718
+ > span.ql-picker-options
719
+ > span.ql-picker-item::before {
720
+ content: attr(data-label);
721
+ }
722
+ }
723
+ </style>