@bagelink/vue 1.15.102 → 1.15.104

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bagelink/vue",
3
3
  "type": "module",
4
- "version": "1.15.102",
4
+ "version": "1.15.104",
5
5
  "description": "Bagel core sdk packages",
6
6
  "author": {
7
7
  "name": "Bagel Studio",
@@ -51,12 +51,12 @@ watch(
51
51
  }"
52
52
  >
53
53
  <input
54
- :id="id" v-model="inputVal" class="border" type="color" :placeholder="resolveI18n(placeholder) || resolveI18n(label)"
54
+ :id="id" v-model="inputVal" type="color" :placeholder="resolveI18n(placeholder) || resolveI18n(label)"
55
55
  :class="{ 'no-edit': !editMode, 'opacity-1': !inputVal }" :required="required"
56
56
  v-bind="nativeInputAttrs"
57
57
  >
58
58
  <input
59
- v-if="!small" v-model="inputVal" class="flex-grow-1 border colorInputPick" type="text"
59
+ v-if="!small" v-model="inputVal" class="flex-grow-1 colorInputPick" type="text"
60
60
  :placeholder="$t('color.placeholder')"
61
61
  >
62
62
  <Btn
@@ -78,6 +78,17 @@ min-width: 50px !important;
78
78
  outline: none !important;
79
79
  }
80
80
 
81
+ /* Frame/outline belongs to the wrap only — suppress the global variant rules
82
+ (e.g. `.bagel-input.bgl-outline input`) that would border the inner field. */
83
+ .bagel-input .colorInputPick,
84
+ .bagel-input.frame .colorInputPick,
85
+ .bagel-input.bgl-outline .colorInputPick,
86
+ .bagel-input.underlined .colorInputPick {
87
+ border: none !important;
88
+ outline: none !important;
89
+ box-shadow: none !important;
90
+ }
91
+
81
92
  .colorInputPick:focus,
82
93
  .colorInputPick:focus-visible {
83
94
  outline: none !important;
@@ -88,7 +99,6 @@ box-shadow: none !important;
88
99
  box-shadow: inset 0 0 10px #00000021;
89
100
  }
90
101
 
91
- /* ── frame: transparent bg, outline that highlights on focus ── */
92
102
  .bagel-input.frame .colorInputPickWrap {
93
103
  background: transparent !important;
94
104
  outline: 1.5px solid var(--bgl-border-color);
@@ -100,20 +110,16 @@ outline-color: var(--bgl-input-label-active-color, var(--bgl-primary));
100
110
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--bgl-input-label-active-color, var(--bgl-primary)) 12%, transparent);
101
111
  }
102
112
 
103
- /* ── bgl-outline: border only ── */
104
113
  .bagel-input.bgl-outline .colorInputPickWrap {
105
114
  outline: 1.5px solid var(--bgl-border-color);
106
115
  outline-offset: -1px;
107
116
  }
108
117
 
109
- /* ── underlined: suppress global border-bottom on inner inputs ── */
110
118
  .bagel-input.underlined .colorInputPickWrap input {
111
- border-bottom: none !important;
112
119
  border-radius: 0 !important;
113
120
  padding-inline: 0.25rem !important;
114
121
  }
115
122
 
116
- /* ── underlined: bottom border only on the wrap itself ── */
117
123
  .bagel-input.underlined .colorInputPickWrap {
118
124
  background: transparent !important;
119
125
  border-radius: 0 !important;
@@ -123,7 +129,6 @@ transition: border-color 0.25s ease;
123
129
  position: relative;
124
130
  }
125
131
 
126
- /* animated fill line — matches the global underlined ::after pattern */
127
132
  .bagel-input.underlined .colorInputPickWrap::after {
128
133
  content: '';
129
134
  position: absolute;
@@ -117,10 +117,10 @@ defineExpose({ close })
117
117
  <template>
118
118
  <dialog
119
119
  ref="dialogRef" :class="[positionClass, { 'is-closing': isClosing }]"
120
- :style="{ '--dialog-width': widthStyle }" class="border-none shadow-30 p-0 testMe1" @click="onBackdropClick"
120
+ :style="{ '--dialog-width': widthStyle }" class="border-none shadow-30 p-0 testMe1 dialog-no-focus-outline" @click="onBackdropClick"
121
121
  @cancel="onCancel" @animationend="onAnimationEnd"
122
122
  >
123
- <div class="grid grid-dialog max-height-100-2" @click.stop>
123
+ <div class="grid grid-dialog max-height-100-2" tabindex="-1" autofocus @click.stop>
124
124
  <!-- Bottom-sheet grip handle -->
125
125
  <div v-if="showGrip" class="dialog-grip" aria-hidden="true" />
126
126
  <!-- Header -->
@@ -199,6 +199,15 @@ max-height: calc(100vh - 2rem);
199
199
  margin-top: 0.125rem;
200
200
  }
201
201
 
202
+ /* The dialog body gets the initial focus (via autofocus, so the close button
203
+ isn't auto-focused). It shouldn't show a focus ring itself. */
204
+ .dialog-no-focus-outline:focus,
205
+ .dialog-no-focus-outline:focus-visible,
206
+ .dialog-no-focus-outline .grid-dialog:focus,
207
+ .dialog-no-focus-outline .grid-dialog:focus-visible {
208
+ outline: none;
209
+ }
210
+
202
211
  .overlay-btn {
203
212
  opacity: 0;
204
213
  animation: fade-in 0.3s ease-out 0.1s forwards;
@@ -1,35 +1,9 @@
1
- /* ============================================================================
2
- * Dark Mode Theme — .bgl-dark-mode
3
- * ----------------------------------------------------------------------------
4
- * Activated by useTheme() which toggles the `.bgl-dark-mode` class on <html>.
5
- *
6
- * ARCHITECTURE (semantic, NOT inversion):
7
- * - We do NOT swap --bgl-black / --bgl-white. They keep their real meaning
8
- * (black = dark, white = light) so colored buttons (.pair-*) that use
9
- * `color: var(--bgl-white)` stay correct (light text on a colored fill).
10
- * - Instead we override only the SEMANTIC tokens (surfaces, text, borders)
11
- * with explicit dark values. Components that consume these tokens
12
- * (--bgl-bg, --bgl-box-bg, --bgl-text-color, …) become dark automatically.
13
- *
14
- * Single source of truth: the dark palette below (--bgl-dm-* raw values), which
15
- * the semantic tokens reference. If you ever need explicit opt-in dark classes
16
- * for components that use physical colors, build them on these same tokens.
17
- * ============================================================================ */
18
- /* .bgl-dark-mode {
19
- filter: invert(1);
20
- }
1
+ /* Dark Mode Theme — .bgl-dark-mode (toggled on <html> by useTheme()).
2
+ Semantic, not inversion: override only the semantic tokens (surfaces, text,
3
+ borders) with dark values; --bgl-black/--bgl-white keep their real meaning. */
21
4
 
22
- .bgl-dark-mode img,
23
- .bgl-dark-mode video,
24
- .bgl-dark-mode svg,
25
- .bgl-dark-mode iframe {
26
- filter: invert(1);
27
- } */
28
-
29
- /* `:root.bgl-dark-mode` (the class lives on <html>) raises specificity to
30
- (0,2,0) so these tokens win over any project that redefines colors in its
31
- own `:root {}` (e.g. udi sets --bgl-blue: #7ad3f7). The bare .bgl-dark-mode
32
- is kept as a fallback in case the class is applied to a non-root element. */
5
+ /* `:root.bgl-dark-mode` raises specificity to (0,2,0) so these tokens win over a
6
+ project's own `:root {}`; bare `.bgl-dark-mode` is a non-root fallback. */
33
7
  :root.bgl-dark-mode,
34
8
  .bgl-dark-mode {
35
9
  /* ---- Dark palette (raw values) ---------------------------------------- */