@elogroup-sereduc/portal-aluno-tour 1.0.8 → 1.0.9

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 CHANGED
@@ -39,12 +39,12 @@ function MyComponent() {
39
39
 
40
40
  const steps = [
41
41
  {
42
- element: ".my-element",
42
+ element: "my-element", // Usa data-onboard="my-element"
43
43
  intro: "Este é o primeiro passo do tour",
44
44
  position: "bottom",
45
45
  },
46
46
  {
47
- element: ".another-element",
47
+ element: ".another-element", // Seletor CSS também funciona
48
48
  intro: "Este é o segundo passo",
49
49
  position: "right",
50
50
  },
@@ -82,7 +82,11 @@ function MyComponent() {
82
82
 
83
83
  ### TourStep
84
84
 
85
- - `element: string` - Seletor CSS do elemento
85
+ - `element: string` - Seletor CSS do elemento ou valor do atributo `data-onboard`
86
+ - Se começar com `.`, `#`, `[`, `:`, `>`, `+`, `~`, ou espaço: usa como seletor CSS
87
+ - Caso contrário: busca `[data-onboard="valor"]`
88
+ - Exemplo: `element: "student-card"` busca `[data-onboard="student-card"]`
89
+ - Exemplo: `element: ".my-class"` usa o seletor CSS `.my-class`
86
90
  - `intro: string` - Texto explicativo
87
91
  - `position?: "top" | "bottom" | "left" | "right"` - Posição da tooltip
88
92
  - `title?: string` - Título do passo (opcional)
@@ -1 +1 @@
1
- {"version":3,"file":"Tour.d.ts","sourceRoot":"","sources":["../../src/components/Tour.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAY,MAAM,UAAU,CAAC;AAG/C;;GAEG;AACH,wBAAgB,IAAI,CAAC,EACnB,OAAO,EACP,KAAK,EACL,WAAe,EACf,OAAY,EACZ,MAAM,EACN,UAAU,GACX,EAAE,SAAS,kDAqmBX"}
1
+ {"version":3,"file":"Tour.d.ts","sourceRoot":"","sources":["../../src/components/Tour.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAY,MAAM,UAAU,CAAC;AAG/C;;GAEG;AACH,wBAAgB,IAAI,CAAC,EACnB,OAAO,EACP,KAAK,EACL,WAAe,EACf,OAAY,EACZ,MAAM,EACN,UAAU,GACX,EAAE,SAAS,kDA8mBX"}
@@ -258,6 +258,15 @@ export function Tour({ enabled, steps, initialStep = 0, options = {}, onExit, on
258
258
  setTooltipPosition(null);
259
259
  }
260
260
  }, [enabled, steps.length, isVisible, initialStep]);
261
+ // Função auxiliar para buscar elemento por seletor CSS ou data-onboard
262
+ const findElement = useCallback((selector) => {
263
+ // Se o seletor começa com caracteres de seletor CSS (. # [ etc), usa diretamente
264
+ if (/^[.#\[:>+\s~]/.test(selector)) {
265
+ return document.querySelector(selector);
266
+ }
267
+ // Caso contrário, assume que é um valor de data-onboard
268
+ return document.querySelector(`[data-onboard="${selector}"]`);
269
+ }, []);
261
270
  // Destaca o elemento atual
262
271
  useEffect(() => {
263
272
  if (!isVisible || currentStep < 0 || currentStep >= steps.length) {
@@ -266,9 +275,9 @@ export function Tour({ enabled, steps, initialStep = 0, options = {}, onExit, on
266
275
  return;
267
276
  }
268
277
  const step = steps[currentStep];
269
- const element = document.querySelector(step.element);
278
+ const element = findElement(step.element);
270
279
  if (!element) {
271
- console.warn(`Elemento não encontrado: ${step.element}`);
280
+ console.warn(`Elemento não encontrado: ${step.element}. Tentando buscar [data-onboard="${step.element}"]`);
272
281
  return;
273
282
  }
274
283
  setHighlightedElement(element);
@@ -302,7 +311,7 @@ export function Tour({ enabled, steps, initialStep = 0, options = {}, onExit, on
302
311
  window.removeEventListener("resize", handleResize);
303
312
  document.removeEventListener("scroll", handleScroll, true);
304
313
  };
305
- }, [isVisible, currentStep, steps, calculateTooltipPosition]);
314
+ }, [isVisible, currentStep, steps, calculateTooltipPosition, findElement]);
306
315
  // Adiciona overlay e highlight ao elemento
307
316
  useEffect(() => {
308
317
  if (!highlightedElement) {
@@ -3,7 +3,9 @@
3
3
  */
4
4
  export interface TourStep {
5
5
  /**
6
- * Seletor CSS do elemento a ser destacado
6
+ * Seletor CSS do elemento a ser destacado ou valor do atributo data-onboard
7
+ * - Se for um seletor CSS (começa com ., #, [, etc.), será usado diretamente
8
+ * - Caso contrário, será usado como valor do atributo data-onboard: [data-onboard="valor"]
7
9
  */
8
10
  element: string;
9
11
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,QAAQ;IACvB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IAExD;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,KAAK,EAAE,QAAQ,EAAE,CAAC;IAElB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IAEpB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,QAAQ;IACvB;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IAExD;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,KAAK,EAAE,QAAQ,EAAE,CAAC;IAElB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IAEpB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elogroup-sereduc/portal-aluno-tour",
3
- "version": "1.0.8",
3
+ "version": "1.0.9",
4
4
  "description": "Componente de tour guiado customizado usando HeroUI para o Portal do Aluno",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -39,5 +39,4 @@
39
39
  "publishConfig": {
40
40
  "access": "public"
41
41
  }
42
- }
43
-
42
+ }
@@ -40,7 +40,7 @@ export function Tour({
40
40
  const rect = element.getBoundingClientRect();
41
41
  const viewportWidth = window.innerWidth;
42
42
  const viewportHeight = window.innerHeight;
43
-
43
+
44
44
  // Tamanho estimado da tooltip
45
45
  const tooltipWidth = 384; // max-w-sm = 384px
46
46
  const tooltipHeight = 250; // altura estimada
@@ -51,10 +51,10 @@ export function Tour({
51
51
  let finalPosition = position;
52
52
 
53
53
  // Verifica se o elemento está visível na viewport
54
- const isElementVisible =
55
- rect.top < viewportHeight &&
56
- rect.bottom > 0 &&
57
- rect.left < viewportWidth &&
54
+ const isElementVisible =
55
+ rect.top < viewportHeight &&
56
+ rect.bottom > 0 &&
57
+ rect.left < viewportWidth &&
58
58
  rect.right > 0;
59
59
 
60
60
  // Se o elemento não estiver visível, tenta posicionar próximo à borda mais próxima
@@ -92,7 +92,7 @@ export function Tour({
92
92
 
93
93
  // Determina a melhor posição baseado no espaço disponível
94
94
  let bestPosition: "top" | "bottom" | "left" | "right";
95
-
95
+
96
96
  // Se position for "auto" ou não especificado, calcula automaticamente a melhor posição
97
97
  if (!position || position === "auto") {
98
98
  // Escolhe automaticamente a direção com mais espaço disponível
@@ -104,12 +104,12 @@ export function Tour({
104
104
  } else {
105
105
  // Posição específica foi fornecida - tenta usar ela primeiro
106
106
  // Verifica se a posição especificada tem espaço suficiente
107
- const hasEnoughSpace =
107
+ const hasEnoughSpace =
108
108
  (position === "top" && spaceAbove >= tooltipHeight + spacing + 8) ||
109
109
  (position === "bottom" && spaceBelow >= tooltipHeight + spacing + 8) ||
110
110
  (position === "left" && spaceLeft >= tooltipWidth + spacing + 8) ||
111
111
  (position === "right" && spaceRight >= tooltipWidth + spacing + 8);
112
-
112
+
113
113
  if (hasEnoughSpace) {
114
114
  // Tem espaço suficiente, usa a posição especificada
115
115
  bestPosition = position as "top" | "bottom" | "left" | "right";
@@ -118,7 +118,7 @@ export function Tour({
118
118
  // Para posições verticais (top/bottom), compara entre elas
119
119
  if (position === "top" || position === "bottom") {
120
120
  bestPosition = spaceAbove > spaceBelow ? "top" : "bottom";
121
- }
121
+ }
122
122
  // Para posições horizontais (left/right), compara entre elas
123
123
  else if (position === "left" || position === "right") {
124
124
  bestPosition = spaceLeft > spaceRight ? "left" : "right";
@@ -168,7 +168,7 @@ export function Tour({
168
168
  const elementCenterX = rect.left + rect.width / 2;
169
169
  const minLeft = tooltipWidth / 2 + 8;
170
170
  const maxLeft = viewportWidth - tooltipWidth / 2 - 8;
171
-
171
+
172
172
  // Mantém o mais próximo possível do centro do elemento
173
173
  if (elementCenterX < minLeft) {
174
174
  left = minLeft;
@@ -177,7 +177,7 @@ export function Tour({
177
177
  } else {
178
178
  left = elementCenterX; // Mantém centralizado no elemento
179
179
  }
180
-
180
+
181
181
  // Verifica espaço vertical e ajusta posição se necessário
182
182
  if (finalPosition === "bottom") {
183
183
  const spaceBelow = viewportHeight - rect.bottom;
@@ -204,14 +204,14 @@ export function Tour({
204
204
  }
205
205
  }
206
206
  }
207
- }
207
+ }
208
208
  // Ajusta verticalmente para tooltips left/right - mantém próximo ao elemento
209
209
  else if (finalPosition === "left" || finalPosition === "right") {
210
210
  // Centraliza no elemento verticalmente
211
211
  const elementCenterY = rect.top + rect.height / 2;
212
212
  const minTop = tooltipHeight / 2 + 8;
213
213
  const maxTop = viewportHeight - tooltipHeight / 2 - 8;
214
-
214
+
215
215
  // Mantém o mais próximo possível do centro do elemento
216
216
  if (elementCenterY < minTop) {
217
217
  top = minTop;
@@ -220,7 +220,7 @@ export function Tour({
220
220
  } else {
221
221
  top = elementCenterY; // Mantém centralizado no elemento
222
222
  }
223
-
223
+
224
224
  // Verifica espaço horizontal e ajusta posição se necessário
225
225
  if (finalPosition === "left") {
226
226
  const spaceLeft = rect.left;
@@ -274,6 +274,16 @@ export function Tour({
274
274
  }
275
275
  }, [enabled, steps.length, isVisible, initialStep]);
276
276
 
277
+ // Função auxiliar para buscar elemento por seletor CSS ou data-onboard
278
+ const findElement = useCallback((selector: string): HTMLElement | null => {
279
+ // Se o seletor começa com caracteres de seletor CSS (. # [ etc), usa diretamente
280
+ if (/^[.#\[:>+\s~]/.test(selector)) {
281
+ return document.querySelector(selector) as HTMLElement;
282
+ }
283
+ // Caso contrário, assume que é um valor de data-onboard
284
+ return document.querySelector(`[data-onboard="${selector}"]`) as HTMLElement;
285
+ }, []);
286
+
277
287
  // Destaca o elemento atual
278
288
  useEffect(() => {
279
289
  if (!isVisible || currentStep < 0 || currentStep >= steps.length) {
@@ -283,10 +293,10 @@ export function Tour({
283
293
  }
284
294
 
285
295
  const step = steps[currentStep];
286
- const element = document.querySelector(step.element) as HTMLElement;
296
+ const element = findElement(step.element);
287
297
 
288
298
  if (!element) {
289
- console.warn(`Elemento não encontrado: ${step.element}`);
299
+ console.warn(`Elemento não encontrado: ${step.element}. Tentando buscar [data-onboard="${step.element}"]`);
290
300
  return;
291
301
  }
292
302
 
@@ -328,7 +338,7 @@ export function Tour({
328
338
  window.removeEventListener("resize", handleResize);
329
339
  document.removeEventListener("scroll", handleScroll, true);
330
340
  };
331
- }, [isVisible, currentStep, steps, calculateTooltipPosition]);
341
+ }, [isVisible, currentStep, steps, calculateTooltipPosition, findElement]);
332
342
 
333
343
  // Adiciona overlay e highlight ao elemento
334
344
  useEffect(() => {
@@ -525,11 +535,10 @@ export function Tour({
525
535
  <button
526
536
  key={index}
527
537
  onClick={() => setCurrentStep(index)}
528
- className={`tour:w-2 tour:h-2 tour:rounded-full tour:transition-all ${
529
- index === currentStep
538
+ className={`tour:w-2 tour:h-2 tour:rounded-full tour:transition-all ${index === currentStep
530
539
  ? "tour:bg-brand-primary tour:w-6"
531
540
  : "tour:bg-gray-300 tour:hover:bg-gray-400"
532
- }`}
541
+ }`}
533
542
  aria-label={`Ir para passo ${index + 1}`}
534
543
  />
535
544
  ))}
@@ -4,7 +4,9 @@
4
4
 
5
5
  export interface TourStep {
6
6
  /**
7
- * Seletor CSS do elemento a ser destacado
7
+ * Seletor CSS do elemento a ser destacado ou valor do atributo data-onboard
8
+ * - Se for um seletor CSS (começa com ., #, [, etc.), será usado diretamente
9
+ * - Caso contrário, será usado como valor do atributo data-onboard: [data-onboard="valor"]
8
10
  */
9
11
  element: string;
10
12
 
package/dist/tour.css DELETED
@@ -1,566 +0,0 @@
1
- /*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */
2
- @layer properties;
3
- @layer theme, base, components, utilities;
4
- @layer theme {
5
- :root, :host {
6
- --tour-color-gray-100: oklch(96.7% 0.003 264.542);
7
- --tour-color-gray-200: oklch(92.8% 0.006 264.531);
8
- --tour-color-gray-300: oklch(87.2% 0.01 258.338);
9
- --tour-color-gray-400: oklch(70.7% 0.022 261.325);
10
- --tour-color-gray-500: oklch(55.1% 0.027 264.364);
11
- --tour-color-gray-700: oklch(37.3% 0.034 259.733);
12
- --tour-color-gray-900: oklch(21% 0.034 264.665);
13
- --tour-color-white: #fff;
14
- --tour-spacing: 0.25rem;
15
- --tour-container-sm: 24rem;
16
- --tour-text-xs: 0.75rem;
17
- --tour-text-xs--line-height: calc(1 / 0.75);
18
- --tour-text-lg: 1.125rem;
19
- --tour-text-lg--line-height: calc(1.75 / 1.125);
20
- --tour-font-weight-semibold: 600;
21
- --tour-radius-lg: 0.5rem;
22
- }
23
- }
24
- @layer base {
25
- *, ::after, ::before, ::backdrop, ::file-selector-button {
26
- box-sizing: border-box;
27
- margin: 0;
28
- padding: 0;
29
- border: 0 solid;
30
- }
31
- html, :host {
32
- line-height: 1.5;
33
- -webkit-text-size-adjust: 100%;
34
- tab-size: 4;
35
- font-family: var(--font-sans, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"), Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;
36
- font-feature-settings: normal;
37
- font-variation-settings: normal;
38
- -webkit-tap-highlight-color: transparent;
39
- }
40
- hr {
41
- height: 0;
42
- color: inherit;
43
- border-top-width: 1px;
44
- }
45
- abbr:where([title]) {
46
- -webkit-text-decoration: underline dotted;
47
- text-decoration: underline dotted;
48
- }
49
- h1, h2, h3, h4, h5, h6 {
50
- font-size: inherit;
51
- font-weight: inherit;
52
- }
53
- a {
54
- color: inherit;
55
- -webkit-text-decoration: inherit;
56
- text-decoration: inherit;
57
- }
58
- b, strong {
59
- font-weight: bolder;
60
- }
61
- code, kbd, samp, pre {
62
- font-family: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace), Fira Code, Fira Mono, Courier New, monospace;
63
- font-feature-settings: normal;
64
- font-variation-settings: normal;
65
- font-size: 1em;
66
- }
67
- small {
68
- font-size: 80%;
69
- }
70
- sub, sup {
71
- font-size: 75%;
72
- line-height: 0;
73
- position: relative;
74
- vertical-align: baseline;
75
- }
76
- sub {
77
- bottom: -0.25em;
78
- }
79
- sup {
80
- top: -0.5em;
81
- }
82
- table {
83
- text-indent: 0;
84
- border-color: inherit;
85
- border-collapse: collapse;
86
- }
87
- :-moz-focusring {
88
- outline: auto;
89
- }
90
- progress {
91
- vertical-align: baseline;
92
- }
93
- summary {
94
- display: list-item;
95
- }
96
- ol, ul, menu {
97
- list-style: none;
98
- }
99
- img, svg, video, canvas, audio, iframe, embed, object {
100
- display: block;
101
- vertical-align: middle;
102
- }
103
- img, video {
104
- max-width: 100%;
105
- height: auto;
106
- }
107
- button, input, select, optgroup, textarea, ::file-selector-button {
108
- font: inherit;
109
- font-feature-settings: inherit;
110
- font-variation-settings: inherit;
111
- letter-spacing: inherit;
112
- color: inherit;
113
- border-radius: 0;
114
- background-color: transparent;
115
- opacity: 1;
116
- }
117
- :where(select:is([multiple], [size])) optgroup {
118
- font-weight: bolder;
119
- }
120
- :where(select:is([multiple], [size])) optgroup option {
121
- padding-inline-start: 20px;
122
- }
123
- ::file-selector-button {
124
- margin-inline-end: 4px;
125
- }
126
- ::placeholder {
127
- opacity: 1;
128
- }
129
- @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {
130
- ::placeholder {
131
- color: currentcolor;
132
- @supports (color: color-mix(in lab, red, red)) {
133
- color: color-mix(in oklab, currentcolor 50%, transparent);
134
- }
135
- }
136
- }
137
- textarea {
138
- resize: vertical;
139
- }
140
- ::-webkit-search-decoration {
141
- -webkit-appearance: none;
142
- }
143
- ::-webkit-date-and-time-value {
144
- min-height: 1lh;
145
- text-align: inherit;
146
- }
147
- ::-webkit-datetime-edit {
148
- display: inline-flex;
149
- }
150
- ::-webkit-datetime-edit-fields-wrapper {
151
- padding: 0;
152
- }
153
- ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {
154
- padding-block: 0;
155
- }
156
- ::-webkit-calendar-picker-indicator {
157
- line-height: 1;
158
- }
159
- :-moz-ui-invalid {
160
- box-shadow: none;
161
- }
162
- button, input:where([type="button"], [type="reset"], [type="submit"]), ::file-selector-button {
163
- appearance: button;
164
- }
165
- ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {
166
- height: auto;
167
- }
168
- [hidden]:where(:not([hidden="until-found"])) {
169
- display: none !important;
170
- }
171
- }
172
- @layer utilities {
173
- .tour\:absolute {
174
- position: absolute;
175
- }
176
- .tour\:relative {
177
- position: relative;
178
- }
179
- .tour\:top-2 {
180
- top: calc(var(--tour-spacing) * 2);
181
- }
182
- .tour\:right-2 {
183
- right: calc(var(--tour-spacing) * 2);
184
- }
185
- .tour\:z-10 {
186
- z-index: 10;
187
- }
188
- .tour\:mt-1 {
189
- margin-top: calc(var(--tour-spacing) * 1);
190
- }
191
- .tour\:mb-2 {
192
- margin-bottom: calc(var(--tour-spacing) * 2);
193
- }
194
- .tour\:mb-4 {
195
- margin-bottom: calc(var(--tour-spacing) * 4);
196
- }
197
- .tour\:flex {
198
- display: flex;
199
- }
200
- .tour\:h-0 {
201
- height: calc(var(--tour-spacing) * 0);
202
- }
203
- .tour\:h-2 {
204
- height: calc(var(--tour-spacing) * 2);
205
- }
206
- .tour\:h-4 {
207
- height: calc(var(--tour-spacing) * 4);
208
- }
209
- .tour\:h-5 {
210
- height: calc(var(--tour-spacing) * 5);
211
- }
212
- .tour\:w-0 {
213
- width: calc(var(--tour-spacing) * 0);
214
- }
215
- .tour\:w-2 {
216
- width: calc(var(--tour-spacing) * 2);
217
- }
218
- .tour\:w-4 {
219
- width: calc(var(--tour-spacing) * 4);
220
- }
221
- .tour\:w-5 {
222
- width: calc(var(--tour-spacing) * 5);
223
- }
224
- .tour\:w-6 {
225
- width: calc(var(--tour-spacing) * 6);
226
- }
227
- .tour\:w-full {
228
- width: 100%;
229
- }
230
- .tour\:max-w-sm {
231
- max-width: var(--tour-container-sm);
232
- }
233
- .tour\:items-center {
234
- align-items: center;
235
- }
236
- .tour\:justify-between {
237
- justify-content: space-between;
238
- }
239
- .tour\:justify-center {
240
- justify-content: center;
241
- }
242
- .tour\:gap-1 {
243
- gap: calc(var(--tour-spacing) * 1);
244
- }
245
- .tour\:gap-2 {
246
- gap: calc(var(--tour-spacing) * 2);
247
- }
248
- .tour\:rounded-full {
249
- border-radius: calc(infinity * 1px);
250
- }
251
- .tour\:rounded-lg {
252
- border-radius: var(--tour-radius-lg);
253
- }
254
- .tour\:border-8 {
255
- border-style: var(--tw-border-style);
256
- border-width: 8px;
257
- }
258
- .tour\:border-transparent {
259
- border-color: transparent;
260
- }
261
- .tour\:bg-brand-primary {
262
- background-color: var(--brand-primary);
263
- }
264
- .tour\:bg-gray-200 {
265
- background-color: var(--tour-color-gray-200);
266
- }
267
- .tour\:bg-gray-300 {
268
- background-color: var(--tour-color-gray-300);
269
- }
270
- .tour\:bg-white {
271
- background-color: var(--tour-color-white);
272
- }
273
- .tour\:p-1 {
274
- padding: calc(var(--tour-spacing) * 1);
275
- }
276
- .tour\:p-6 {
277
- padding: calc(var(--tour-spacing) * 6);
278
- }
279
- .tour\:pr-6 {
280
- padding-right: calc(var(--tour-spacing) * 6);
281
- }
282
- .tour\:text-center {
283
- text-align: center;
284
- }
285
- .tour\:text-lg {
286
- font-size: var(--tour-text-lg);
287
- line-height: var(--tw-leading, var(--tour-text-lg--line-height));
288
- }
289
- .tour\:text-xs {
290
- font-size: var(--tour-text-xs);
291
- line-height: var(--tw-leading, var(--tour-text-xs--line-height));
292
- }
293
- .tour\:font-semibold {
294
- --tw-font-weight: var(--tour-font-weight-semibold);
295
- font-weight: var(--tour-font-weight-semibold);
296
- }
297
- .tour\:text-gray-500 {
298
- color: var(--tour-color-gray-500);
299
- }
300
- .tour\:text-gray-700 {
301
- color: var(--tour-color-gray-700);
302
- }
303
- .tour\:text-gray-900 {
304
- color: var(--tour-color-gray-900);
305
- }
306
- .tour\:shadow-xl {
307
- --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
308
- box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
309
- }
310
- .tour\:transition-all {
311
- transition-property: all;
312
- transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
313
- transition-duration: var(--tw-duration, var(--default-transition-duration));
314
- }
315
- .tour\:transition-colors {
316
- transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
317
- transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
318
- transition-duration: var(--tw-duration, var(--default-transition-duration));
319
- }
320
- .tour\:duration-300 {
321
- --tw-duration: 300ms;
322
- transition-duration: 300ms;
323
- }
324
- .tour\:hover\:bg-gray-100 {
325
- &:hover {
326
- @media (hover: hover) {
327
- background-color: var(--tour-color-gray-100);
328
- }
329
- }
330
- }
331
- .tour\:hover\:bg-gray-400 {
332
- &:hover {
333
- @media (hover: hover) {
334
- background-color: var(--tour-color-gray-400);
335
- }
336
- }
337
- }
338
- }
339
- @layer base {
340
- :root, [data-theme] {
341
- color: hsl(var(--heroui-foreground));
342
- background-color: hsl(var(--heroui-background));
343
- }
344
- }
345
- @layer base {
346
- :root, [data-theme=light] {
347
- color-scheme: light;
348
- --heroui-background: 0 0% 100%;
349
- --heroui-foreground-50: 0 0% 98.04%;
350
- --heroui-foreground-100: 240 4.76% 95.88%;
351
- --heroui-foreground-200: 240 5.88% 90%;
352
- --heroui-foreground-300: 240 4.88% 83.92%;
353
- --heroui-foreground-400: 240 5.03% 64.9%;
354
- --heroui-foreground-500: 240 3.83% 46.08%;
355
- --heroui-foreground-600: 240 5.2% 33.92%;
356
- --heroui-foreground-700: 240 5.26% 26.08%;
357
- --heroui-foreground-800: 240 3.7% 15.88%;
358
- --heroui-foreground-900: 240 5.88% 10%;
359
- --heroui-foreground: 201.81999999999994 24.44% 8.82%;
360
- --heroui-divider: 0 0% 6.67%;
361
- --heroui-focus: 212.01999999999998 100% 46.67%;
362
- --heroui-overlay: 0 0% 0%;
363
- --heroui-content1: 0 0% 100%;
364
- --heroui-content1-foreground: 201.81999999999994 24.44% 8.82%;
365
- --heroui-content2: 240 4.76% 95.88%;
366
- --heroui-content2-foreground: 240 3.7% 15.88%;
367
- --heroui-content3: 240 5.88% 90%;
368
- --heroui-content3-foreground: 240 5.26% 26.08%;
369
- --heroui-content4: 240 4.88% 83.92%;
370
- --heroui-content4-foreground: 240 5.2% 33.92%;
371
- --heroui-default-50: 0 0% 98.04%;
372
- --heroui-default-100: 240 4.76% 95.88%;
373
- --heroui-default-200: 240 5.88% 90%;
374
- --heroui-default-300: 240 4.88% 83.92%;
375
- --heroui-default-400: 240 5.03% 64.9%;
376
- --heroui-default-500: 240 3.83% 46.08%;
377
- --heroui-default-600: 240 5.2% 33.92%;
378
- --heroui-default-700: 240 5.26% 26.08%;
379
- --heroui-default-800: 240 3.7% 15.88%;
380
- --heroui-default-900: 240 5.88% 10%;
381
- --heroui-default-foreground: 0 0% 0%;
382
- --heroui-default: 240 4.88% 83.92%;
383
- --heroui-primary-50: 212.5 92.31% 94.9%;
384
- --heroui-primary-100: 211.84000000000003 92.45% 89.61%;
385
- --heroui-primary-200: 211.84000000000003 92.45% 79.22%;
386
- --heroui-primary-300: 212.24 92.45% 68.82%;
387
- --heroui-primary-400: 212.14 92.45% 58.43%;
388
- --heroui-primary-500: 212.01999999999998 100% 46.67%;
389
- --heroui-primary-600: 212.14 100% 38.43%;
390
- --heroui-primary-700: 212.24 100% 28.82%;
391
- --heroui-primary-800: 211.84000000000003 100% 19.22%;
392
- --heroui-primary-900: 211.84000000000003 100% 9.61%;
393
- --heroui-primary-foreground: 0 0% 100%;
394
- --heroui-primary: 212.01999999999998 100% 46.67%;
395
- --heroui-secondary-50: 270 61.54% 94.9%;
396
- --heroui-secondary-100: 270 59.26% 89.41%;
397
- --heroui-secondary-200: 270 59.26% 78.82%;
398
- --heroui-secondary-300: 270 59.26% 68.24%;
399
- --heroui-secondary-400: 270 59.26% 57.65%;
400
- --heroui-secondary-500: 270 66.67% 47.06%;
401
- --heroui-secondary-600: 270 66.67% 37.65%;
402
- --heroui-secondary-700: 270 66.67% 28.24%;
403
- --heroui-secondary-800: 270 66.67% 18.82%;
404
- --heroui-secondary-900: 270 66.67% 9.41%;
405
- --heroui-secondary-foreground: 0 0% 100%;
406
- --heroui-secondary: 270 66.67% 47.06%;
407
- --heroui-success-50: 146.66999999999996 64.29% 94.51%;
408
- --heroui-success-100: 145.71000000000004 61.4% 88.82%;
409
- --heroui-success-200: 146.2 61.74% 77.45%;
410
- --heroui-success-300: 145.78999999999996 62.57% 66.47%;
411
- --heroui-success-400: 146.01 62.45% 55.1%;
412
- --heroui-success-500: 145.96000000000004 79.46% 43.92%;
413
- --heroui-success-600: 146.01 79.89% 35.1%;
414
- --heroui-success-700: 145.78999999999996 79.26% 26.47%;
415
- --heroui-success-800: 146.2 79.78% 17.45%;
416
- --heroui-success-900: 145.71000000000004 77.78% 8.82%;
417
- --heroui-success-foreground: 0 0% 0%;
418
- --heroui-success: 145.96000000000004 79.46% 43.92%;
419
- --heroui-warning-50: 54.55000000000001 91.67% 95.29%;
420
- --heroui-warning-100: 37.139999999999986 91.3% 90.98%;
421
- --heroui-warning-200: 37.139999999999986 91.3% 81.96%;
422
- --heroui-warning-300: 36.95999999999998 91.24% 73.14%;
423
- --heroui-warning-400: 37.00999999999999 91.26% 64.12%;
424
- --heroui-warning-500: 37.02999999999997 91.27% 55.1%;
425
- --heroui-warning-600: 37.00999999999999 74.22% 44.12%;
426
- --heroui-warning-700: 36.95999999999998 73.96% 33.14%;
427
- --heroui-warning-800: 37.139999999999986 75% 21.96%;
428
- --heroui-warning-900: 37.139999999999986 75% 10.98%;
429
- --heroui-warning-foreground: 0 0% 0%;
430
- --heroui-warning: 37.02999999999997 91.27% 55.1%;
431
- --heroui-danger-50: 339.13 92% 95.1%;
432
- --heroui-danger-100: 340 91.84% 90.39%;
433
- --heroui-danger-200: 339.3299999999999 90% 80.39%;
434
- --heroui-danger-300: 339.11 90.6% 70.78%;
435
- --heroui-danger-400: 339 90% 60.78%;
436
- --heroui-danger-500: 339.20000000000005 90.36% 51.18%;
437
- --heroui-danger-600: 339 86.54% 40.78%;
438
- --heroui-danger-700: 339.11 85.99% 30.78%;
439
- --heroui-danger-800: 339.3299999999999 86.54% 20.39%;
440
- --heroui-danger-900: 340 84.91% 10.39%;
441
- --heroui-danger-foreground: 0 0% 100%;
442
- --heroui-danger: 339.20000000000005 90.36% 51.18%;
443
- --heroui-divider-weight: 1px;
444
- --heroui-disabled-opacity: .5;
445
- --heroui-font-size-tiny: 0.75rem;
446
- --heroui-font-size-small: 0.875rem;
447
- --heroui-font-size-medium: 1rem;
448
- --heroui-font-size-large: 1.125rem;
449
- --heroui-line-height-tiny: 1rem;
450
- --heroui-line-height-small: 1.25rem;
451
- --heroui-line-height-medium: 1.5rem;
452
- --heroui-line-height-large: 1.75rem;
453
- --heroui-radius-small: 8px;
454
- --heroui-radius-medium: 12px;
455
- --heroui-radius-large: 14px;
456
- --heroui-border-width-small: 1px;
457
- --heroui-border-width-medium: 2px;
458
- --heroui-border-width-large: 3px;
459
- --heroui-box-shadow-small: 0px 0px 5px 0px rgb(0 0 0 / 0.02), 0px 2px 10px 0px rgb(0 0 0 / 0.06), 0px 0px 1px 0px rgb(0 0 0 / 0.3);
460
- --heroui-box-shadow-medium: 0px 0px 15px 0px rgb(0 0 0 / 0.03), 0px 2px 30px 0px rgb(0 0 0 / 0.08), 0px 0px 1px 0px rgb(0 0 0 / 0.3);
461
- --heroui-box-shadow-large: 0px 0px 30px 0px rgb(0 0 0 / 0.04), 0px 30px 60px 0px rgb(0 0 0 / 0.12), 0px 0px 1px 0px rgb(0 0 0 / 0.3);
462
- --heroui-hover-opacity: .8;
463
- }
464
- }
465
- @property --tw-border-style {
466
- syntax: "*";
467
- inherits: false;
468
- initial-value: solid;
469
- }
470
- @property --tw-font-weight {
471
- syntax: "*";
472
- inherits: false;
473
- }
474
- @property --tw-shadow {
475
- syntax: "*";
476
- inherits: false;
477
- initial-value: 0 0 #0000;
478
- }
479
- @property --tw-shadow-color {
480
- syntax: "*";
481
- inherits: false;
482
- }
483
- @property --tw-shadow-alpha {
484
- syntax: "<percentage>";
485
- inherits: false;
486
- initial-value: 100%;
487
- }
488
- @property --tw-inset-shadow {
489
- syntax: "*";
490
- inherits: false;
491
- initial-value: 0 0 #0000;
492
- }
493
- @property --tw-inset-shadow-color {
494
- syntax: "*";
495
- inherits: false;
496
- }
497
- @property --tw-inset-shadow-alpha {
498
- syntax: "<percentage>";
499
- inherits: false;
500
- initial-value: 100%;
501
- }
502
- @property --tw-ring-color {
503
- syntax: "*";
504
- inherits: false;
505
- }
506
- @property --tw-ring-shadow {
507
- syntax: "*";
508
- inherits: false;
509
- initial-value: 0 0 #0000;
510
- }
511
- @property --tw-inset-ring-color {
512
- syntax: "*";
513
- inherits: false;
514
- }
515
- @property --tw-inset-ring-shadow {
516
- syntax: "*";
517
- inherits: false;
518
- initial-value: 0 0 #0000;
519
- }
520
- @property --tw-ring-inset {
521
- syntax: "*";
522
- inherits: false;
523
- }
524
- @property --tw-ring-offset-width {
525
- syntax: "<length>";
526
- inherits: false;
527
- initial-value: 0px;
528
- }
529
- @property --tw-ring-offset-color {
530
- syntax: "*";
531
- inherits: false;
532
- initial-value: #fff;
533
- }
534
- @property --tw-ring-offset-shadow {
535
- syntax: "*";
536
- inherits: false;
537
- initial-value: 0 0 #0000;
538
- }
539
- @property --tw-duration {
540
- syntax: "*";
541
- inherits: false;
542
- }
543
- @layer properties {
544
- @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
545
- *, ::before, ::after, ::backdrop {
546
- --tw-border-style: solid;
547
- --tw-font-weight: initial;
548
- --tw-shadow: 0 0 #0000;
549
- --tw-shadow-color: initial;
550
- --tw-shadow-alpha: 100%;
551
- --tw-inset-shadow: 0 0 #0000;
552
- --tw-inset-shadow-color: initial;
553
- --tw-inset-shadow-alpha: 100%;
554
- --tw-ring-color: initial;
555
- --tw-ring-shadow: 0 0 #0000;
556
- --tw-inset-ring-color: initial;
557
- --tw-inset-ring-shadow: 0 0 #0000;
558
- --tw-ring-inset: initial;
559
- --tw-ring-offset-width: 0px;
560
- --tw-ring-offset-color: #fff;
561
- --tw-ring-offset-shadow: 0 0 #0000;
562
- --tw-duration: initial;
563
- }
564
- }
565
- }
566
-