@pairbo/ui-kit 0.2.5 → 0.2.7

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/README.md ADDED
@@ -0,0 +1,186 @@
1
+ ## **🚀 V1 To-Do List**
2
+
3
+ ### **🔧 Pending Setup**
4
+
5
+ - [ ] **11ty setup is incomplete.**
6
+ - [ ] **Mock API needed** for:
7
+ - Fetching and submitting cards
8
+ - Processing handwritten images
9
+
10
+ ---
11
+
12
+ ## **🎨 Global Theme ([src/themes](src/themes))**
13
+
14
+ - [ ] Define global theme styles
15
+ - Identify `--sl-` global CSS variables in component styles, and replace with `--pbo-`
16
+ - Declare variables in [`default.css`](src/themes/default.css)
17
+
18
+ ---
19
+
20
+ ## **📌 Components Overview**
21
+
22
+ ### **🗂️ Drawer ([src/components/drawer](src/components/drawer))**
23
+
24
+ - [x] Implement **window-like title bar** with:
25
+ - **Left:** Back icon (if not on Card Selection page)
26
+ - **Center:** Current page name (**Card Selection** / **Card Editing**)
27
+ - **Right:** Close icon to dismiss drawer
28
+ - [x] Make styles more flexible:
29
+ - Support top/bottom/left/right drawers
30
+ - Allow setting drawer size (`30%`, `50%`, `60%`, `100%`)
31
+ - Add opening animations
32
+ - [ ] _(Optional)_ Customizable themes (background, colors, etc.)
33
+
34
+ ---
35
+
36
+ ### **✍️ Editor ([src/components/editor](src/components/editor))**
37
+
38
+ #### 🖥️ **Desktop Layout**
39
+
40
+ - [x] Implement responsive grid layout for desktop
41
+ - Grid rows: `1`
42
+ - Grid cols: `12`
43
+ - Image Slider:
44
+ - `sm`: col start `2`, end `7`
45
+ - `2xl`: col start `3`, end `7`
46
+ - Message Editor:
47
+ - `sm`: col start `7`, end `12`
48
+ - `2xl`: col start `7`, end `11`
49
+
50
+ #### 📱 **Mobile Layout**
51
+
52
+ - [x] Implement responsive flex layout for mobile
53
+ - `display: flex`
54
+ - `flex-direction: column`
55
+ - `gap: 1rem`
56
+
57
+ ---
58
+
59
+ ## **📝 Form Elements**
60
+
61
+ ### **📄 Type Form ([src/components/type-form](src/components/type-form))**
62
+
63
+ - [x] Add gap between form elements
64
+ - [ ] Implement submit logic:
65
+ - If message is empty → CTA button turns **red** and shows `Skip` link
66
+ - **❓ Where to implement validation logic?** (At type form level or button level?)
67
+ - [x] **Editor ↔️ Image Slider Communication**
68
+ - Auto-focus image slider when user types in textarea
69
+ - Improve communication logic between image slider and type form
70
+
71
+ ---
72
+
73
+ ### **🔠 Font Selector**
74
+
75
+ - [ ] **Extract** `font-selector` as a separate reusable component
76
+ - [ ] Optimize font variable passing
77
+ - [ ] Display font preview in dropdown
78
+ - [ ] Enable global font imports
79
+ - [ ] Improve font variable handling in `<pbo-selector>`
80
+
81
+ ---
82
+
83
+ ### **📝 Textarea ([src/components/textarea](src/components/textarea))**
84
+
85
+ - [x] Show **current/max characters** indicator
86
+ - [ ] _(Optional)_ Show **current/max lines** indicator
87
+
88
+ ---
89
+
90
+ ## **🎛️ Form Controls**
91
+
92
+ ### **️ Radio Button, Group, and Button Enhancements**
93
+
94
+ #### **✅ Submit Button ([src/components/button](src/components/button))**
95
+
96
+ - [ ] **Submit Button Logic**
97
+ - Add validation to check form inputs
98
+ - Support `pre-submit` & `post-submit` callbacks:
99
+ - `pre-submit`: E.g. validate stock before adding a card
100
+ - `post-submit`: E.g. update cart after adding a card
101
+
102
+ #### **🎛️ Button Group ([src/components/button-group](src/components/button-group))**
103
+
104
+ - [x] Define group styles
105
+ - [ ] Implement submit validation & error handling
106
+
107
+ #### **🔘 Radio Button ([src/components/radio-button](src/components/radio-button))**
108
+
109
+ - [x] Enhance styling and logic based on button component
110
+
111
+ #### **📻 Radio Group ([src/components/radio-group](src/components/radio-group))**
112
+
113
+ - [x] Define group styles
114
+ - [ ] Implement validation & error handling
115
+
116
+ ---
117
+
118
+ ## **📂 Category & Category Image Components**
119
+
120
+ ### **📦 Category ([src/components/category](src/components/category))**
121
+
122
+ - [x] Fix **image aspect ratio** (currently responsive)
123
+ - [x] Ensure **responsive slider**:
124
+ - **Desktop:** Show **4** cards
125
+ - **Mobile:** Show **2** cards
126
+ - Hide arrows if fewer than needed cards
127
+ - [x] Add **hover animations**
128
+ - [x] Improve **category title styling**
129
+
130
+ ## Roadmap
131
+
132
+ ### Preprepare
133
+
134
+ - [x] **Live Documentation for Development and Future Reference**
135
+ _Status_: The basic structure has been initialized using **11ty**. However, the bundling process for `src/components` is not fully configured. Additionally, rendering inline `` `html` `` within Markdown to actual HTML in **11ty** is not yet fully functional.
136
+
137
+ ---
138
+
139
+ ### Phase 1: Core Card Editor
140
+
141
+ - [x] **Font Dropdown Selector**
142
+ - [x] **Editor Dropdown Selector**
143
+ - [x] **Text Alignment Button Group**
144
+ - [x] **Text Color Block**
145
+ - [x] **Live Preview (Zoomed View)**
146
+ - [x] **Typing Live Preview**
147
+ - [ ] **Handwritten Live Preview**
148
+ - [x] **Image Slider**
149
+ - [ ] **CTA Button**
150
+ - [ ] **Handwritten Description Section**
151
+
152
+ ---
153
+
154
+ ### Phase 2: Core Card Selection
155
+
156
+ - [x] **Image Slider for Card Covers**
157
+ _(4 columns on desktop, 2 columns on mobile)_
158
+ - [x] **Category Selection**
159
+ - [x] **Image Components (Optional)**
160
+
161
+ ---
162
+
163
+ ### Phase 3: Integration Components
164
+
165
+ - [x] **Card Selection - Main Content**
166
+ - [x] **Card Editor (Typing) - Right Content Group**
167
+ - [ ] **Card Editor (Handwritten) - Right Content Group**
168
+ - [ ] **Card Editor (Handwritten) - Content Section**
169
+ - [x] **Card Editor (Typing) - Content Section**
170
+
171
+ ---
172
+
173
+ ### Phase 4: Modal/Pop-up
174
+
175
+ - [ ] **Checkboxes**
176
+ - [x] **Basic Modal Implementation**
177
+ - [x] **Sectioned Form in Modal**
178
+ - [ ] **Modal Submission API**
179
+
180
+ ---
181
+
182
+ ### Phase 5: Abstract Internal Logic
183
+
184
+ - **TBD** _(Detailed planning will be decided later.)_
185
+
186
+ This phase will focus on abstracting internal logic, such as retrieving card data and synchronizing editing information across different components.
@@ -0,0 +1 @@
1
+ :root,:host,.pbo-theme-default{--pbo-color-gray-50: rgb(249 249 250);--pbo-color-gray-100: rgb(235 236 238);--pbo-color-gray-200: rgb(220 222 225);--pbo-color-gray-300: rgb(204 207 211);--pbo-color-gray-400: rgb(183 186 193);--pbo-color-gray-500: rgb(155 160 169);--pbo-color-gray-600: rgb(126 132 144);--pbo-color-gray-700: rgb(102 108 122);--pbo-color-gray-800: rgb(84 89 100);--pbo-color-gray-900: rgb(59 63 71);--pbo-color-gray-950: rgb(36 39 44);--pbo-color-red-50: rgb(253 248 248);--pbo-color-red-100: rgb(248 233 233);--pbo-color-red-200: rgb(243 216 216);--pbo-color-red-300: rgb(237 197 197);--pbo-color-red-400: rgb(229 172 172);--pbo-color-red-500: rgb(219 138 138);--pbo-color-red-600: rgb(207 99 99);--pbo-color-red-700: rgb(195 59 59);--pbo-color-red-800: rgb(175 27 27);--pbo-color-red-900: rgb(127 19 19);--pbo-color-red-950: rgb(80 12 12);--pbo-color-orange-50: rgb(254 249 244);--pbo-color-orange-100: rgb(250 233 219);--pbo-color-orange-200: rgb(246 217 191);--pbo-color-orange-300: rgb(242 198 161);--pbo-color-orange-400: rgb(236 173 118);--pbo-color-orange-500: rgb(228 138 60);--pbo-color-orange-600: rgb(211 100 3);--pbo-color-orange-700: rgb(174 82 2);--pbo-color-orange-800: rgb(143 68 2);--pbo-color-orange-900: rgb(102 48 1);--pbo-color-orange-950: rgb(63 30 1);--pbo-color-amber-50: rgb(253 249 243);--pbo-color-amber-100: rgb(249 234 217);--pbo-color-amber-200: rgb(245 218 187);--pbo-color-amber-300: rgb(240 200 154);--pbo-color-amber-400: rgb(233 175 108);--pbo-color-amber-500: rgb(223 141 46);--pbo-color-amber-600: rgb(199 109 5);--pbo-color-amber-700: rgb(163 89 5);--pbo-color-amber-800: rgb(135 74 4);--pbo-color-amber-900: rgb(96 53 3);--pbo-color-amber-950: rgb(59 32 2);--pbo-color-yellow-50: rgb(253 249 237);--pbo-color-yellow-100: rgb(250 236 193);--pbo-color-yellow-200: rgb(245 221 143);--pbo-color-yellow-300: rgb(241 203 86);--pbo-color-yellow-400: rgb(232 178 8);--pbo-color-yellow-500: rgb(200 153 7);--pbo-color-yellow-600: rgb(165 126 6);--pbo-color-yellow-700: rgb(135 104 5);--pbo-color-yellow-800: rgb(112 85 4);--pbo-color-yellow-900: rgb(79 61 3);--pbo-color-yellow-950: rgb(49 37 2);--pbo-color-lime-50: rgb(247 250 243);--pbo-color-lime-100: rgb(230 240 215);--pbo-color-lime-200: rgb(211 228 185);--pbo-color-lime-300: rgb(189 216 151);--pbo-color-lime-400: rgb(160 198 106);--pbo-color-lime-500: rgb(121 175 45);--pbo-color-lime-600: rgb(91 147 12);--pbo-color-lime-700: rgb(75 120 10);--pbo-color-lime-800: rgb(62 99 8);--pbo-color-lime-900: rgb(44 71 6);--pbo-color-lime-950: rgb(27 43 3);--pbo-color-green-50: rgb(246 250 248);--pbo-color-green-100: rgb(226 239 231);--pbo-color-green-200: rgb(205 228 213);--pbo-color-green-300: rgb(180 215 193);--pbo-color-green-400: rgb(148 197 166);--pbo-color-green-500: rgb(106 174 131);--pbo-color-green-600: rgb(59 148 92);--pbo-color-green-700: rgb(20 124 59);--pbo-color-green-800: rgb(17 103 49);--pbo-color-green-900: rgb(12 73 35);--pbo-color-green-950: rgb(7 45 22);--pbo-color-emerald-50: rgb(245 251 249);--pbo-color-emerald-100: rgb(221 241 234);--pbo-color-emerald-200: rgb(194 230 219);--pbo-color-emerald-300: rgb(165 217 201);--pbo-color-emerald-400: rgb(125 200 177);--pbo-color-emerald-500: rgb(71 178 144);--pbo-color-emerald-600: rgb(6 150 106);--pbo-color-emerald-700: rgb(4 124 86);--pbo-color-emerald-800: rgb(3 102 71);--pbo-color-emerald-900: rgb(2 73 51);--pbo-color-emerald-950: rgb(2 45 32);--pbo-color-teal-50: rgb(245 251 250);--pbo-color-teal-100: rgb(221 240 238);--pbo-color-teal-200: rgb(195 229 226);--pbo-color-teal-300: rgb(167 216 212);--pbo-color-teal-400: rgb(127 199 192);--pbo-color-teal-500: rgb(75 175 166);--pbo-color-teal-600: rgb(13 148 136);--pbo-color-teal-700: rgb(11 121 112);--pbo-color-teal-800: rgb(9 100 92);--pbo-color-teal-900: rgb(6 71 66);--pbo-color-teal-950: rgb(4 44 41);--pbo-color-cyan-50: rgb(245 250 252);--pbo-color-cyan-100: rgb(221 240 244);--pbo-color-cyan-200: rgb(194 228 236);--pbo-color-cyan-300: rgb(165 215 227);--pbo-color-cyan-400: rgb(124 197 214);--pbo-color-cyan-500: rgb(70 172 197);--pbo-color-cyan-600: rgb(8 144 176);--pbo-color-cyan-700: rgb(7 118 145);--pbo-color-cyan-800: rgb(5 97 120);--pbo-color-cyan-900: rgb(4 69 85);--pbo-color-cyan-950: rgb(2 43 53);--pbo-color-sky-50: rgb(245 250 253);--pbo-color-sky-100: rgb(222 239 248);--pbo-color-sky-200: rgb(197 227 242);--pbo-color-sky-300: rgb(169 213 236);--pbo-color-sky-400: rgb(130 194 227);--pbo-color-sky-500: rgb(78 169 216);--pbo-color-sky-600: rgb(17 139 202);--pbo-color-sky-700: rgb(2 114 172);--pbo-color-sky-800: rgb(1 94 142);--pbo-color-sky-900: rgb(1 67 101);--pbo-color-sky-950: rgb(1 42 63);--pbo-color-blue-50: rgb(248 249 254);--pbo-color-blue-100: rgb(231 236 251);--pbo-color-blue-200: rgb(213 222 248);--pbo-color-blue-300: rgb(193 206 244);--pbo-color-blue-400: rgb(166 185 240);--pbo-color-blue-500: rgb(131 158 234);--pbo-color-blue-600: rgb(92 127 227);--pbo-color-blue-700: rgb(56 99 221);--pbo-color-blue-800: rgb(28 76 210);--pbo-color-blue-900: rgb(20 54 150);--pbo-color-blue-950: rgb(13 34 93);--pbo-color-indigo-50: rgb(249 249 254);--pbo-color-indigo-100: rgb(236 235 252);--pbo-color-indigo-200: rgb(221 219 250);--pbo-color-indigo-300: rgb(205 202 248);--pbo-color-indigo-400: rgb(183 179 244);--pbo-color-indigo-500: rgb(155 150 240);--pbo-color-indigo-600: rgb(124 117 236);--pbo-color-indigo-700: rgb(95 87 231);--pbo-color-indigo-800: rgb(73 65 213);--pbo-color-indigo-900: rgb(52 46 152);--pbo-color-indigo-950: rgb(33 29 94);--pbo-color-violet-50: rgb(251 248 254);--pbo-color-violet-100: rgb(240 233 253);--pbo-color-violet-200: rgb(229 216 251);--pbo-color-violet-300: rgb(217 198 250);--pbo-color-violet-400: rgb(201 173 248);--pbo-color-violet-500: rgb(179 140 245);--pbo-color-violet-600: rgb(154 103 241);--pbo-color-violet-700: rgb(130 67 238);--pbo-color-violet-800: rgb(108 51 207);--pbo-color-violet-900: rgb(77 36 148);--pbo-color-violet-950: rgb(48 23 92);--pbo-color-purple-50: rgb(251 248 254);--pbo-color-purple-100: rgb(243 232 253);--pbo-color-purple-200: rgb(234 215 251);--pbo-color-purple-300: rgb(224 196 249);--pbo-color-purple-400: rgb(210 170 246);--pbo-color-purple-500: rgb(192 135 243);--pbo-color-purple-600: rgb(170 95 239);--pbo-color-purple-700: rgb(149 54 234);--pbo-color-purple-800: rgb(124 43 197);--pbo-color-purple-900: rgb(89 31 141);--pbo-color-purple-950: rgb(55 19 88);--pbo-color-fuchsia-50: rgb(253 248 254);--pbo-color-fuchsia-100: rgb(248 231 250);--pbo-color-fuchsia-200: rgb(243 212 246);--pbo-color-fuchsia-300: rgb(237 192 242);--pbo-color-fuchsia-400: rgb(228 163 236);--pbo-color-fuchsia-500: rgb(217 125 229);--pbo-color-fuchsia-600: rgb(203 76 219);--pbo-color-fuchsia-700: rgb(180 36 198);--pbo-color-fuchsia-800: rgb(149 30 164);--pbo-color-fuchsia-900: rgb(107 21 118);--pbo-color-fuchsia-950: rgb(67 13 74);--pbo-color-pink-50: rgb(254 248 250);--pbo-color-pink-100: rgb(251 231 240);--pbo-color-pink-200: rgb(248 213 228);--pbo-color-pink-300: rgb(245 192 215);--pbo-color-pink-400: rgb(240 164 198);--pbo-color-pink-500: rgb(233 125 173);--pbo-color-pink-600: rgb(225 75 142);--pbo-color-pink-700: rgb(202 36 110);--pbo-color-pink-800: rgb(168 30 91);--pbo-color-pink-900: rgb(121 22 66);--pbo-color-pink-950: rgb(76 14 41);--pbo-color-rose-50: rgb(254 248 249);--pbo-color-rose-100: rgb(252 231 236);--pbo-color-rose-200: rgb(249 213 221);--pbo-color-rose-300: rgb(247 192 204);--pbo-color-rose-400: rgb(243 164 181);--pbo-color-rose-500: rgb(238 125 150);--pbo-color-rose-600: rgb(231 74 109);--pbo-color-rose-700: rgb(211 27 67);--pbo-color-rose-800: rgb(175 23 56);--pbo-color-rose-900: rgb(126 16 40);--pbo-color-rose-950: rgb(80 10 26);--pbo-color-primary-50: var(--pbo-color-sky-50);--pbo-color-primary-100: var(--pbo-color-sky-100);--pbo-color-primary-200: var(--pbo-color-sky-200);--pbo-color-primary-300: var(--pbo-color-sky-300);--pbo-color-primary-400: var(--pbo-color-sky-400);--pbo-color-primary-500: var(--pbo-color-sky-500);--pbo-color-primary-600: var(--pbo-color-sky-600);--pbo-color-primary-700: var(--pbo-color-sky-700);--pbo-color-primary-800: var(--pbo-color-sky-800);--pbo-color-primary-900: var(--pbo-color-sky-900);--pbo-color-primary-950: var(--pbo-color-sky-950);--pbo-color-success-50: var(--pbo-color-green-50);--pbo-color-success-100: var(--pbo-color-green-100);--pbo-color-success-200: var(--pbo-color-green-200);--pbo-color-success-300: var(--pbo-color-green-300);--pbo-color-success-400: var(--pbo-color-green-400);--pbo-color-success-500: var(--pbo-color-green-500);--pbo-color-success-600: var(--pbo-color-green-600);--pbo-color-success-700: var(--pbo-color-green-700);--pbo-color-success-800: var(--pbo-color-green-800);--pbo-color-success-900: var(--pbo-color-green-900);--pbo-color-success-950: var(--pbo-color-green-950);--pbo-color-warning-50: var(--pbo-color-amber-50);--pbo-color-warning-100: var(--pbo-color-amber-100);--pbo-color-warning-200: var(--pbo-color-amber-200);--pbo-color-warning-300: var(--pbo-color-amber-300);--pbo-color-warning-400: var(--pbo-color-amber-400);--pbo-color-warning-500: var(--pbo-color-amber-500);--pbo-color-warning-600: var(--pbo-color-amber-600);--pbo-color-warning-700: var(--pbo-color-amber-700);--pbo-color-warning-800: var(--pbo-color-amber-800);--pbo-color-warning-900: var(--pbo-color-amber-900);--pbo-color-warning-950: var(--pbo-color-amber-950);--pbo-color-danger-50: var(--pbo-color-red-50);--pbo-color-danger-100: var(--pbo-color-red-100);--pbo-color-danger-200: var(--pbo-color-red-200);--pbo-color-danger-300: var(--pbo-color-red-300);--pbo-color-danger-400: var(--pbo-color-red-400);--pbo-color-danger-500: var(--pbo-color-red-500);--pbo-color-danger-600: var(--pbo-color-red-600);--pbo-color-danger-700: var(--pbo-color-red-700);--pbo-color-danger-800: var(--pbo-color-red-800);--pbo-color-danger-900: var(--pbo-color-red-900);--pbo-color-danger-950: var(--pbo-color-red-950);--pbo-color-neutral-50: var(--pbo-color-gray-50);--pbo-color-neutral-100: var(--pbo-color-gray-100);--pbo-color-neutral-200: var(--pbo-color-gray-200);--pbo-color-neutral-300: var(--pbo-color-gray-300);--pbo-color-neutral-400: var(--pbo-color-gray-400);--pbo-color-neutral-500: var(--pbo-color-gray-500);--pbo-color-neutral-600: var(--pbo-color-gray-600);--pbo-color-neutral-700: var(--pbo-color-gray-700);--pbo-color-neutral-800: var(--pbo-color-gray-800);--pbo-color-neutral-900: var(--pbo-color-gray-900);--pbo-color-neutral-950: var(--pbo-color-gray-950);--pbo-color-neutral-0: rgb(255 255 255);--pbo-color-neutral-1000: rgb(0 0 0);--pbo-border-radius-small: .125rem;--pbo-border-radius-medium: .25rem;--pbo-border-radius-large: .5rem;--pbo-border-radius-x-large: 1rem;--pbo-shadow-x-small: 0 1px 2px hsl(240 3.8% 46.1% / 6%);--pbo-shadow-small: 0 1px 2px hsl(240 3.8% 46.1% / 12%);--pbo-shadow-medium: 0 2px 4px hsl(240 3.8% 46.1% / 12%);--pbo-shadow-large: 0 2px 8px hsl(240 3.8% 46.1% / 12%);--pbo-shadow-x-large: 0 4px 16px hsl(240 3.8% 46.1% / 12%);--pbo-spacing-3x-small: .125rem;--pbo-spacing-2x-small: .25rem;--pbo-spacing-x-small: .5rem;--pbo-spacing-small: .75rem;--pbo-spacing-medium: 1rem;--pbo-spacing-large: 1.25rem;--pbo-spacing-x-large: 1.75rem;--pbo-spacing-2x-large: 2.25rem;--pbo-spacing-3x-large: 3rem;--pbo-spacing-4x-large: 4.5rem;--pbo-transition-x-slow: 1s;--pbo-transition-slow: .5s;--pbo-transition-medium: .25s;--pbo-transition-fast: .15s;--pbo-transition-x-fast: 50ms;--pbo-font-mono: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace;--pbo-font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--pbo-font-serif: Georgia, "Times New Roman", serif;--pbo-font-size-2x-small: .625rem;--pbo-font-size-x-small: .75rem;--pbo-font-size-small: .875rem;--pbo-font-size-medium: 1rem;--pbo-font-size-large: 1.25rem;--pbo-font-size-x-large: 1.5rem;--pbo-font-size-2x-large: 2.25rem;--pbo-font-size-3x-large: 3rem;--pbo-font-size-4x-large: 4.5rem;--pbo-font-weight-light: 300;--pbo-font-weight-normal: 400;--pbo-font-weight-semibold: 500;--pbo-font-weight-bold: 700;--pbo-letter-spacing-denser: -.03em;--pbo-letter-spacing-dense: -.015em;--pbo-letter-spacing-normal: normal;--pbo-letter-spacing-loose: .075em;--pbo-letter-spacing-looser: .15em;--pbo-line-height-denser: 1;--pbo-line-height-dense: 1.4;--pbo-line-height-normal: 1.8;--pbo-line-height-loose: 2.2;--pbo-line-height-looser: 2.6;--pbo-focus-ring-color: var(--pbo-color-primary-600);--pbo-focus-ring-style: solid;--pbo-focus-ring-width: 3px;--pbo-focus-ring: var(--pbo-focus-ring-style) var(--pbo-focus-ring-width) var(--pbo-focus-ring-color);--pbo-focus-ring-offset: 1px;--pbo-button-font-size-small: var(--pbo-font-size-x-small);--pbo-button-font-size-medium: var(--pbo-font-size-small);--pbo-button-font-size-large: var(--pbo-font-size-medium);--pbo-input-height-small: 1.875rem;--pbo-input-height-medium: 2.5rem;--pbo-input-height-large: 3.125rem;--pbo-input-background-color: var(--pbo-color-neutral-0);--pbo-input-background-color-hover: var(--pbo-input-background-color);--pbo-input-background-color-focus: var(--pbo-input-background-color);--pbo-input-background-color-disabled: var(--pbo-color-neutral-100);--pbo-input-border-color: var(--pbo-color-neutral-300);--pbo-input-border-color-hover: var(--pbo-color-neutral-400);--pbo-input-border-color-focus: var(--pbo-color-primary-500);--pbo-input-border-color-disabled: var(--pbo-color-neutral-300);--pbo-input-border-width: 1px;--pbo-input-required-content: "*";--pbo-input-required-content-offset: -2px;--pbo-input-required-content-color: var(--pbo-input-label-color);--pbo-input-border-radius-small: var(--pbo-border-radius-medium);--pbo-input-border-radius-medium: var(--pbo-border-radius-medium);--pbo-input-border-radius-large: var(--pbo-border-radius-medium);--pbo-input-font-family: var(--pbo-font-sans);--pbo-input-font-weight: var(--pbo-font-weight-normal);--pbo-input-font-size-small: var(--pbo-font-size-small);--pbo-input-font-size-medium: var(--pbo-font-size-medium);--pbo-input-font-size-large: var(--pbo-font-size-large);--pbo-input-letter-spacing: var(--pbo-letter-spacing-normal);--pbo-input-color: var(--pbo-color-neutral-700);--pbo-input-color-hover: var(--pbo-color-neutral-700);--pbo-input-color-focus: var(--pbo-color-neutral-700);--pbo-input-color-disabled: var(--pbo-color-neutral-900);--pbo-input-icon-color: var(--pbo-color-neutral-500);--pbo-input-icon-color-hover: var(--pbo-color-neutral-600);--pbo-input-icon-color-focus: var(--pbo-color-neutral-600);--pbo-input-placeholder-color: var(--pbo-color-neutral-500);--pbo-input-placeholder-color-disabled: var(--pbo-color-neutral-600);--pbo-input-spacing-small: var(--pbo-spacing-small);--pbo-input-spacing-medium: var(--pbo-spacing-medium);--pbo-input-spacing-large: var(--pbo-spacing-large);--pbo-input-focus-ring-color: hsl(198.6 88.7% 48.4% / 40%);--pbo-input-focus-ring-offset: 0;--pbo-input-filled-background-color: var(--pbo-color-neutral-100);--pbo-input-filled-background-color-hover: var(--pbo-color-neutral-100);--pbo-input-filled-background-color-focus: var(--pbo-color-neutral-100);--pbo-input-filled-background-color-disabled: var(--pbo-color-neutral-100);--pbo-input-filled-color: var(--pbo-color-neutral-800);--pbo-input-filled-color-hover: var(--pbo-color-neutral-800);--pbo-input-filled-color-focus: var(--pbo-color-neutral-700);--pbo-input-filled-color-disabled: var(--pbo-color-neutral-800);--pbo-input-label-font-size-small: var(--pbo-font-size-small);--pbo-input-label-font-size-medium: var(--pbo-font-size-medium);--pbo-input-label-font-size-large: var(--pbo-font-size-large);--pbo-input-label-color: inherit;--pbo-input-help-text-font-size-small: var(--pbo-font-size-x-small);--pbo-input-help-text-font-size-medium: var(--pbo-font-size-small);--pbo-input-help-text-font-size-large: var(--pbo-font-size-medium);--pbo-input-help-text-color: var(--pbo-color-neutral-500);--pbo-toggle-size-small: .875rem;--pbo-toggle-size-medium: 1.125rem;--pbo-toggle-size-large: 1.375rem;--pbo-overlay-background-color: hsl(240 3.8% 46.1% / 33%);--pbo-panel-background-color: var(--pbo-color-neutral-0);--pbo-panel-border-color: var(--pbo-color-neutral-200);--pbo-panel-border-width: 1px;--pbo-tooltip-border-radius: var(--pbo-border-radius-medium);--pbo-tooltip-background-color: var(--pbo-color-neutral-800);--pbo-tooltip-color: var(--pbo-color-neutral-0);--pbo-tooltip-font-family: var(--pbo-font-sans);--pbo-tooltip-font-weight: var(--pbo-font-weight-normal);--pbo-tooltip-font-size: var(--pbo-font-size-small);--pbo-tooltip-line-height: var(--pbo-line-height-dense);--pbo-tooltip-padding: var(--pbo-spacing-2x-small) var(--pbo-spacing-x-small);--pbo-tooltip-arrow-size: 6px;--pbo-z-index-drawer: 700;--pbo-z-index-dialog: 800;--pbo-z-index-dropdown: 900;--pbo-z-index-toast: 950;--pbo-z-index-tooltip: 1000}
@@ -0,0 +1 @@
1
+ class w{constructor({getCards:e,getCategories:t,drawer:c,pageManager:l,giftOptions:f,selectionGroupBy:o="category",submitTypeForm:a,submitHandwrittenForm:g,getProcessedImg:h}){this._isLoading={isLoading:!1,isError:!1},this._cards=[],this._categories=[],this.setDrawer(c||null),this.setPageManager(l||null),this.setGiftOptions(f||null);const r=this.getDrawer(),s=this.getPageManager(),i=this.getGiftOptions();if(!s)throw new Error("Page manager element is required");if(r&&(console.log(r),document.addEventListener("pbo-open-drawer",n=>{console.log("pbo-open-drawer event triggered",n),r==null||r.show()})),r==null||r.addEventListener("pbo-after-drawer-closed",()=>{i==null||i.setPremiumEnabled(!1)}),s.onClose=()=>{r==null||r.hide()},o==="category"){if(!t)throw new Error("getCategories function is required when selectionGroupBy is 'category'");this.setIsLoading(!0),t().then(n=>{this.setCategories(n)}).catch(n=>{console.error("Failed to fetch categories:",n),this.setIsError(!0)}).finally(()=>{this.setIsLoading(!1)})}if(o==="none"){if(!e)throw new Error("getCards function is required when selectionGroupBy is 'none'");this.setIsLoading(!0),e().then(n=>{this.setCards(n)}).catch(n=>{console.error("Failed to fetch cards:",n),this.setIsError(!0)}).finally(()=>{this.setIsLoading(!1)})}a&&(s.submitTypeForm=a),g&&(s.submitHandwrittenForm=g),h&&(s.getProcessedImg=h)}setDrawer(e){if(this._drawer===null||this._drawer)throw new Error("Drawer can only be set during initialization");if(e===null){this._drawer=null;return}switch(typeof e){case"string":const t=document.querySelector(e);if(!t)throw new Error(`Drawer element with selector ${e} not found`);this._drawer=t;break;case"object":if(e instanceof PboDrawer){this._drawer=e;break}throw new Error("Drawer must be a string or an instance of PboDrawer");default:throw new Error("Drawer must be a string or an instance of PboDrawer")}}getDrawer(){return this._drawer}setGiftOptions(e){if(this._giftOptions===null||this._giftOptions)throw new Error("Gift options can only be set during initialization");if(e===null){this._giftOptions=null;return}switch(typeof e){case"string":const t=document.querySelector(e);if(!t)throw new Error(`Gift options element with selector "${e}" not found`);this._giftOptions=t;return;case"object":if(e instanceof PboDrawer){this._giftOptions=e;return}throw new Error("Gift options must be a string or an instance of PboDrawer");default:throw new Error("Gift options must be a string or an instance of PboDrawer")}}getGiftOptions(){return this._giftOptions}setPageManager(e){if(this._pageManager===null||this._pageManager)throw new Error("Page manager can only be set during initialization");if(e===null){this._pageManager=null;return}switch(typeof e){case"string":const t=document.querySelector(e);if(!t)throw new Error(`Page manager element with selector "${e}" not found`);this._pageManager=t;return;case"object":if(e instanceof PboPageManager){this._pageManager=e;return}throw new Error("Page manager must be a string or an instance of PboDrawer");default:throw new Error("Page manager must be a string or an instance of PboDrawer")}}getPageManager(){return this._pageManager}getCategories(){return this._categories}setCategories(e){this._categories=e,this._pageManager?this._pageManager.categories=e:console.warn("Page manager is not set, categories will not be updated")}getCards(){return this._cards}setCards(e){this._cards=e,this._pageManager||console.warn("Page manager is not set, cards will not be updated")}setIsLoading(e){this._isLoading.isLoading=e}setIsError(e){this._isLoading.isError=e}}export{w as PboBridge};