reke-ui 0.1.1 → 0.2.0

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/README.md +23 -0
  2. package/cli/install-skills.mjs +169 -0
  3. package/custom-elements.json +472 -128
  4. package/dist/__type-checks__/no-lit-in-public-types.d.ts +2 -0
  5. package/dist/__type-checks__/no-lit-in-public-types.d.ts.map +1 -0
  6. package/dist/_virtual/_@oxc-project_runtime@0.137.0/helpers/esm/decorate.js +9 -0
  7. package/dist/components/reke-alert/reke-alert.d.ts.map +1 -1
  8. package/dist/components/reke-alert/reke-alert.js +45 -0
  9. package/dist/components/reke-alert/reke-alert.styles.d.ts.map +1 -1
  10. package/dist/components/reke-alert/reke-alert.styles.js +103 -0
  11. package/dist/components/reke-badge/reke-badge.d.ts +4 -2
  12. package/dist/components/reke-badge/reke-badge.d.ts.map +1 -1
  13. package/dist/components/reke-badge/reke-badge.js +30 -0
  14. package/dist/components/reke-badge/reke-badge.styles.d.ts.map +1 -1
  15. package/dist/components/reke-badge/reke-badge.styles.js +92 -0
  16. package/dist/components/reke-button/reke-button.d.ts.map +1 -1
  17. package/dist/components/reke-button/reke-button.js +53 -0
  18. package/dist/components/reke-button/reke-button.styles.d.ts.map +1 -1
  19. package/dist/components/reke-button/reke-button.styles.js +226 -0
  20. package/dist/components/reke-card/reke-card.d.ts +7 -0
  21. package/dist/components/reke-card/reke-card.d.ts.map +1 -1
  22. package/dist/components/reke-card/reke-card.js +50 -0
  23. package/dist/components/reke-card/reke-card.styles.d.ts.map +1 -1
  24. package/dist/components/reke-card/reke-card.styles.js +147 -0
  25. package/dist/components/reke-checkbox/reke-checkbox.js +57 -0
  26. package/dist/components/reke-checkbox/reke-checkbox.styles.d.ts.map +1 -1
  27. package/dist/components/reke-checkbox/reke-checkbox.styles.js +79 -0
  28. package/dist/components/reke-chip/reke-chip.d.ts.map +1 -1
  29. package/dist/components/reke-chip/reke-chip.js +62 -0
  30. package/dist/components/reke-chip/reke-chip.styles.d.ts.map +1 -1
  31. package/dist/components/reke-chip/reke-chip.styles.js +128 -0
  32. package/dist/components/reke-date-range/reke-date-range.d.ts.map +1 -1
  33. package/dist/components/reke-date-range/reke-date-range.js +326 -0
  34. package/dist/components/reke-date-range/reke-date-range.styles.d.ts.map +1 -1
  35. package/dist/components/reke-date-range/reke-date-range.styles.js +335 -0
  36. package/dist/components/reke-dialog/reke-dialog.d.ts.map +1 -1
  37. package/dist/components/reke-dialog/reke-dialog.js +77 -0
  38. package/dist/components/reke-dialog/reke-dialog.styles.d.ts.map +1 -1
  39. package/dist/components/reke-dialog/reke-dialog.styles.js +132 -0
  40. package/dist/components/reke-file-upload/reke-file-upload.d.ts.map +1 -1
  41. package/dist/components/reke-file-upload/reke-file-upload.js +84 -0
  42. package/dist/components/reke-file-upload/reke-file-upload.styles.js +104 -0
  43. package/dist/components/reke-input/reke-input.js +54 -0
  44. package/dist/components/reke-input/reke-input.styles.d.ts.map +1 -1
  45. package/dist/components/reke-input/reke-input.styles.js +78 -0
  46. package/dist/components/reke-select/reke-select.d.ts.map +1 -1
  47. package/dist/components/reke-select/reke-select.js +89 -0
  48. package/dist/components/reke-select/reke-select.styles.d.ts.map +1 -1
  49. package/dist/components/reke-select/reke-select.styles.js +120 -0
  50. package/dist/components/reke-table/reke-table.d.ts +144 -13
  51. package/dist/components/reke-table/reke-table.d.ts.map +1 -1
  52. package/dist/components/reke-table/reke-table.js +291 -0
  53. package/dist/components/reke-table/reke-table.styles.d.ts.map +1 -1
  54. package/dist/components/reke-table/reke-table.styles.js +265 -0
  55. package/dist/components/reke-textarea/reke-textarea.js +54 -0
  56. package/dist/components/reke-textarea/reke-textarea.styles.js +73 -0
  57. package/dist/components/reke-toast/reke-toast.d.ts.map +1 -1
  58. package/dist/components/reke-toast/reke-toast.js +74 -0
  59. package/dist/components/reke-toast/reke-toast.styles.d.ts.map +1 -1
  60. package/dist/components/reke-toast/reke-toast.styles.js +183 -0
  61. package/dist/components/reke-toggle/reke-toggle.js +50 -0
  62. package/dist/components/reke-toggle/reke-toggle.styles.js +68 -0
  63. package/dist/components/reke-tooltip/reke-tooltip.js +51 -0
  64. package/dist/components/reke-tooltip/reke-tooltip.styles.js +64 -0
  65. package/dist/index.d.ts +23 -23
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +18 -0
  68. package/dist/node_modules/lit/directives/ref.js +1 -0
  69. package/dist/node_modules/lit-html/async-directive.js +55 -0
  70. package/dist/node_modules/lit-html/directive-helpers.js +5 -0
  71. package/dist/node_modules/lit-html/directive.js +28 -0
  72. package/dist/node_modules/lit-html/directives/ref.js +30 -0
  73. package/dist/node_modules/lit-html/lit-html.js +234 -0
  74. package/dist/react-bridge/table.d.ts +58 -0
  75. package/dist/react-bridge/table.d.ts.map +1 -0
  76. package/dist/react-bridge/table.js +115 -0
  77. package/dist/react.d.ts +12 -26
  78. package/dist/react.d.ts.map +1 -1
  79. package/dist/react.js +111 -132
  80. package/dist/shared/base-element.js +14 -0
  81. package/dist/shared/tailwind-styles.js +6 -0
  82. package/dist/shared/tailwind.js +4 -0
  83. package/dist/tokens/reke-tokens.css +70 -0
  84. package/package.json +43 -23
  85. package/dist/reke-chip-DexKxhxn.js +0 -3358
  86. package/dist/reke-ui.js +0 -20
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=no-lit-in-public-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"no-lit-in-public-types.d.ts","sourceRoot":"","sources":["../../src/__type-checks__/no-lit-in-public-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ //#region \0@oxc-project+runtime@0.137.0/helpers/esm/decorate.js
2
+ function e(e, t, n, r) {
3
+ var i = arguments.length, a = i < 3 ? t : r === null ? r = Object.getOwnPropertyDescriptor(t, n) : r, o;
4
+ if (typeof Reflect == "object" && typeof Reflect.decorate == "function") a = Reflect.decorate(e, t, n, r);
5
+ else for (var s = e.length - 1; s >= 0; s--) (o = e[s]) && (a = (i < 3 ? o(a) : i > 3 ? o(t, n, a) : o(t, n)) || a);
6
+ return i > 3 && a && Object.defineProperty(t, n, a), a;
7
+ }
8
+ //#endregion
9
+ export { e as __decorate };
@@ -1 +1 @@
1
- {"version":3,"file":"reke-alert.d.ts","sourceRoot":"","sources":["../../../src/components/reke-alert/reke-alert.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAG3D,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAEpE;;;;;;;;;;;;;;;GAeG;AACH,qBACa,SAAU,SAAQ,WAAW;IACxC,OAAgB,MAAM,4BAAU;IAGhC,OAAO,EAAE,YAAY,CAAU;IAG/B,WAAW,UAAS;IAEpB,OAAO,CAAC,WAAW;IAKV,MAAM;CAyBhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,SAAS,CAAC;KACzB;CACF"}
1
+ {"version":3,"file":"reke-alert.d.ts","sourceRoot":"","sources":["../../../src/components/reke-alert/reke-alert.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAG3D,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAEpE;;;;;;;;;;;;;;;GAeG;AACH,qBACa,SAAU,SAAQ,WAAW;IACxC,OAAgB,MAAM,4BAAU;IAGhC,OAAO,EAAE,YAAY,CAAU;IAG/B,WAAW,UAAS;IAEpB,OAAO,CAAC,WAAW;IAKV,MAAM;CA2BhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,SAAS,CAAC;KACzB;CACF"}
@@ -0,0 +1,45 @@
1
+ import { RekeElement as e } from "../../shared/base-element.js";
2
+ import { styles as t } from "./reke-alert.styles.js";
3
+ import { __decorate as n } from "../../_virtual/_@oxc-project_runtime@0.137.0/helpers/esm/decorate.js";
4
+ import { html as r, nothing as i } from "lit";
5
+ import { customElement as a, property as o } from "lit/decorators.js";
6
+ import { classMap as s } from "lit/directives/class-map.js";
7
+ //#region src/components/reke-alert/reke-alert.ts
8
+ var c = class extends e {
9
+ constructor(...e) {
10
+ super(...e), this.variant = "info", this.dismissible = !1;
11
+ }
12
+ static {
13
+ this.styles = t;
14
+ }
15
+ handleClose() {
16
+ this.emit("reke-close"), this.remove();
17
+ }
18
+ render() {
19
+ return r`
20
+ <div part="alert" class=${s({
21
+ alert: !0,
22
+ [`alert--${this.variant}`]: !0
23
+ })} role="alert">
24
+ <span class="alert__content">
25
+ <slot></slot>
26
+ </span>
27
+ ${this.dismissible ? r`
28
+ <button
29
+ class="alert__close"
30
+ @click=${this.handleClose}
31
+ aria-label="Close"
32
+ >
33
+ &times;
34
+ </button>
35
+ ` : i}
36
+ </div>
37
+ `;
38
+ }
39
+ };
40
+ n([o({ reflect: !0 })], c.prototype, "variant", void 0), n([o({
41
+ type: Boolean,
42
+ reflect: !0
43
+ })], c.prototype, "dismissible", void 0), c = n([a("reke-alert")], c);
44
+ //#endregion
45
+ export { c as RekeAlert };
@@ -1 +1 @@
1
- {"version":3,"file":"reke-alert.styles.d.ts","sourceRoot":"","sources":["../../../src/components/reke-alert/reke-alert.styles.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,MAAM,2BAkFlB,CAAC"}
1
+ {"version":3,"file":"reke-alert.styles.d.ts","sourceRoot":"","sources":["../../../src/components/reke-alert/reke-alert.styles.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,MAAM,2BAoGlB,CAAC"}
@@ -0,0 +1,103 @@
1
+ import { tailwindStyles as e } from "../../shared/tailwind-styles.js";
2
+ import { css as t } from "lit";
3
+ //#region src/components/reke-alert/reke-alert.styles.ts
4
+ var n = [e, t`
5
+ :host {
6
+ display: block;
7
+ }
8
+
9
+ .alert {
10
+ display: flex;
11
+ align-items: center;
12
+ gap: var(--reke-space-sm, 12px);
13
+ padding: 12px var(--reke-space-md, 16px);
14
+ border-radius: var(--reke-radius, 4px);
15
+ border: none;
16
+ border-left: 3px solid;
17
+ font-family: var(--reke-font-mono, 'JetBrains Mono', ui-monospace, monospace);
18
+ font-size: var(--reke-font-size-xs, 12px);
19
+ line-height: 1.5;
20
+ box-sizing: border-box;
21
+ }
22
+
23
+ /* === Variants === */
24
+
25
+ .alert--success {
26
+ background-color: color-mix(in srgb, var(--reke-color-primary, #22C55E) 10%, transparent);
27
+ border-color: var(--reke-color-primary, #22C55E);
28
+ color: var(--reke-color-primary, #22C55E);
29
+ }
30
+
31
+ .alert--error {
32
+ background-color: color-mix(in srgb, var(--reke-color-danger, #EF4444) 10%, transparent);
33
+ border-color: var(--reke-color-danger, #EF4444);
34
+ color: var(--reke-color-danger, #EF4444);
35
+ }
36
+
37
+ .alert--warning {
38
+ background-color: color-mix(in srgb, var(--reke-color-warning, #F59E0B) 10%, transparent);
39
+ border-color: var(--reke-color-warning, #F59E0B);
40
+ color: var(--reke-color-warning, #F59E0B);
41
+ }
42
+
43
+ .alert--info {
44
+ background-color: color-mix(in srgb, var(--reke-color-secondary, #3B82F6) 10%, transparent);
45
+ border-color: var(--reke-color-secondary, #3B82F6);
46
+ color: var(--reke-color-secondary, #3B82F6);
47
+ }
48
+
49
+ /* === Content === */
50
+
51
+ .alert__content {
52
+ flex: 1;
53
+ min-width: 0;
54
+ }
55
+
56
+ /* === Dismissible === */
57
+
58
+ .alert__close {
59
+ flex-shrink: 0;
60
+ display: flex;
61
+ align-items: center;
62
+ justify-content: center;
63
+ width: 20px;
64
+ height: 20px;
65
+ background: transparent;
66
+ border: none;
67
+ color: currentColor;
68
+ opacity: 0.5;
69
+ cursor: pointer;
70
+ padding: 0;
71
+ font-size: 16px;
72
+ line-height: 1;
73
+ transition: opacity 0.15s ease;
74
+ }
75
+
76
+ .alert__close:hover {
77
+ opacity: 1;
78
+ }
79
+
80
+ .alert__close:focus-visible {
81
+ outline: 2px solid currentColor;
82
+ outline-offset: 2px;
83
+ }
84
+
85
+ /* === Enter animation === */
86
+
87
+ :host {
88
+ animation: alert-in var(--reke-transition-normal, 0.2s ease) both;
89
+ }
90
+
91
+ @keyframes alert-in {
92
+ from {
93
+ opacity: 0;
94
+ transform: translateY(-4px);
95
+ }
96
+ to {
97
+ opacity: 1;
98
+ transform: translateY(0);
99
+ }
100
+ }
101
+ `];
102
+ //#endregion
103
+ export { n as styles };
@@ -1,6 +1,7 @@
1
1
  import { RekeElement } from '../../shared/base-element.js';
2
- export type BadgeVariant = 'default' | 'primary' | 'secondary' | 'danger' | 'warning' | 'success';
3
- export type BadgeSize = 'sm' | 'md';
2
+ export type BadgeVariant = 'default' | 'primary' | 'secondary' | 'danger' | 'warning' | 'success' | 'outline';
3
+ export type BadgeSize = 'sm' | 'md' | 'lg';
4
+ export type BadgeShape = 'pill' | 'square';
4
5
  /**
5
6
  * @tag reke-badge
6
7
  * @summary A badge component for displaying labels, statuses, and counts.
@@ -19,6 +20,7 @@ export declare class RekeBadge extends RekeElement {
19
20
  static styles: import("lit").CSSResult[];
20
21
  variant: BadgeVariant;
21
22
  size: BadgeSize;
23
+ shape: BadgeShape;
22
24
  render(): import("lit-html").TemplateResult<1>;
23
25
  }
24
26
  declare global {
@@ -1 +1 @@
1
- {"version":3,"file":"reke-badge.d.ts","sourceRoot":"","sources":["../../../src/components/reke-badge/reke-badge.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAG3D,MAAM,MAAM,YAAY,GACpB,SAAS,GACT,SAAS,GACT,WAAW,GACX,QAAQ,GACR,SAAS,GACT,SAAS,CAAC;AAEd,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC;AAEpC;;;;;;;;;;;;;GAaG;AACH,qBACa,SAAU,SAAQ,WAAW;IACxC,OAAgB,MAAM,4BAAU;IAGhC,OAAO,EAAE,YAAY,CAAa;IAGlC,IAAI,EAAE,SAAS,CAAQ;IAEd,MAAM;CAahB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,SAAS,CAAC;KACzB;CACF"}
1
+ {"version":3,"file":"reke-badge.d.ts","sourceRoot":"","sources":["../../../src/components/reke-badge/reke-badge.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAG3D,MAAM,MAAM,YAAY,GACpB,SAAS,GACT,SAAS,GACT,WAAW,GACX,QAAQ,GACR,SAAS,GACT,SAAS,GACT,SAAS,CAAC;AAEd,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAC3C,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE3C;;;;;;;;;;;;;GAaG;AACH,qBACa,SAAU,SAAQ,WAAW;IACxC,OAAgB,MAAM,4BAAU;IAGhC,OAAO,EAAE,YAAY,CAAa;IAGlC,IAAI,EAAE,SAAS,CAAQ;IAGvB,KAAK,EAAE,UAAU,CAAU;IAElB,MAAM;CAchB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,SAAS,CAAC;KACzB;CACF"}
@@ -0,0 +1,30 @@
1
+ import { RekeElement as e } from "../../shared/base-element.js";
2
+ import { __decorate as t } from "../../_virtual/_@oxc-project_runtime@0.137.0/helpers/esm/decorate.js";
3
+ import { styles as n } from "./reke-badge.styles.js";
4
+ import { html as r } from "lit";
5
+ import { customElement as i, property as a } from "lit/decorators.js";
6
+ import { classMap as o } from "lit/directives/class-map.js";
7
+ //#region src/components/reke-badge/reke-badge.ts
8
+ var s = class extends e {
9
+ constructor(...e) {
10
+ super(...e), this.variant = "default", this.size = "md", this.shape = "pill";
11
+ }
12
+ static {
13
+ this.styles = n;
14
+ }
15
+ render() {
16
+ return r`
17
+ <span part="badge" class=${o({
18
+ badge: !0,
19
+ [`badge--${this.variant}`]: !0,
20
+ [`badge--${this.size}`]: !0,
21
+ [`badge--${this.shape}`]: !0
22
+ })}>
23
+ <slot></slot>
24
+ </span>
25
+ `;
26
+ }
27
+ };
28
+ t([a({ reflect: !0 })], s.prototype, "variant", void 0), t([a({ reflect: !0 })], s.prototype, "size", void 0), t([a({ reflect: !0 })], s.prototype, "shape", void 0), s = t([i("reke-badge")], s);
29
+ //#endregion
30
+ export { s as RekeBadge };
@@ -1 +1 @@
1
- {"version":3,"file":"reke-badge.styles.d.ts","sourceRoot":"","sources":["../../../src/components/reke-badge/reke-badge.styles.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,MAAM,2BAqElB,CAAC"}
1
+ {"version":3,"file":"reke-badge.styles.d.ts","sourceRoot":"","sources":["../../../src/components/reke-badge/reke-badge.styles.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,MAAM,2BAyFlB,CAAC"}
@@ -0,0 +1,92 @@
1
+ import { tailwindStyles as e } from "../../shared/tailwind-styles.js";
2
+ import { css as t } from "lit";
3
+ //#region src/components/reke-badge/reke-badge.styles.ts
4
+ var n = [e, t`
5
+ :host {
6
+ display: inline-block;
7
+ }
8
+
9
+ .badge {
10
+ display: inline-flex;
11
+ align-items: center;
12
+ font-family: var(--reke-font-mono, 'JetBrains Mono', ui-monospace, monospace);
13
+ font-weight: var(--reke-font-weight-medium, 500);
14
+ border: 1px solid transparent;
15
+ line-height: 1;
16
+ white-space: nowrap;
17
+ box-sizing: border-box;
18
+ }
19
+
20
+ /* === Shape === */
21
+
22
+ .badge--pill {
23
+ border-radius: 9999px;
24
+ }
25
+
26
+ .badge--square {
27
+ border-radius: var(--reke-radius, 4px);
28
+ }
29
+
30
+ /* === Sizes === */
31
+
32
+ .badge--sm {
33
+ padding: 2px 8px;
34
+ font-size: 11px;
35
+ }
36
+
37
+ .badge--md {
38
+ padding: 4px 10px;
39
+ font-size: 12px;
40
+ }
41
+
42
+ .badge--lg {
43
+ padding: 5px 14px;
44
+ font-size: 13px;
45
+ }
46
+
47
+ /* === Variants === */
48
+
49
+ .badge--default {
50
+ background-color: var(--reke-color-surface, #1A1A1A);
51
+ color: var(--reke-color-text, #E5E5E5);
52
+ border-color: var(--reke-color-border, #252525);
53
+ }
54
+
55
+ .badge--primary {
56
+ background-color: color-mix(in srgb, var(--reke-color-primary, #22C55E) 15%, transparent);
57
+ color: var(--reke-color-primary, #22C55E);
58
+ border-color: color-mix(in srgb, var(--reke-color-primary, #22C55E) 30%, transparent);
59
+ }
60
+
61
+ .badge--secondary {
62
+ background-color: color-mix(in srgb, var(--reke-color-secondary, #3B82F6) 15%, transparent);
63
+ color: var(--reke-color-secondary, #3B82F6);
64
+ border-color: color-mix(in srgb, var(--reke-color-secondary, #3B82F6) 30%, transparent);
65
+ }
66
+
67
+ .badge--danger {
68
+ background-color: color-mix(in srgb, var(--reke-color-danger, #EF4444) 15%, transparent);
69
+ color: var(--reke-color-danger, #EF4444);
70
+ border-color: color-mix(in srgb, var(--reke-color-danger, #EF4444) 30%, transparent);
71
+ }
72
+
73
+ .badge--warning {
74
+ background-color: color-mix(in srgb, var(--reke-color-warning, #F59E0B) 15%, transparent);
75
+ color: var(--reke-color-warning, #F59E0B);
76
+ border-color: color-mix(in srgb, var(--reke-color-warning, #F59E0B) 30%, transparent);
77
+ }
78
+
79
+ .badge--success {
80
+ background-color: color-mix(in srgb, var(--reke-color-primary, #22C55E) 15%, transparent);
81
+ color: var(--reke-color-primary, #22C55E);
82
+ border-color: color-mix(in srgb, var(--reke-color-primary, #22C55E) 30%, transparent);
83
+ }
84
+
85
+ .badge--outline {
86
+ background-color: transparent;
87
+ color: var(--reke-color-text-ghost, #737373);
88
+ border-color: var(--reke-color-border, #252525);
89
+ }
90
+ `];
91
+ //#endregion
92
+ export { n as styles };
@@ -1 +1 @@
1
- {"version":3,"file":"reke-button.d.ts","sourceRoot":"","sources":["../../../src/components/reke-button/reke-button.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAG3D,MAAM,MAAM,aAAa,GACrB,SAAS,GACT,WAAW,GACX,OAAO,GACP,QAAQ,GACR,gBAAgB,GAChB,WAAW,CAAC;AAEhB,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBACa,UAAW,SAAQ,WAAW;IACzC,OAAgB,MAAM,4BAAU;IAGhC,OAAO,EAAE,aAAa,CAAa;IAGnC,IAAI,EAAE,UAAU,CAAQ;IAGxB,QAAQ,UAAS;IAGjB,OAAO,UAAS;IAEhB,OAAO,CAAC,WAAW;IASV,MAAM;CA4BhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,UAAU,CAAC;KAC3B;CACF"}
1
+ {"version":3,"file":"reke-button.d.ts","sourceRoot":"","sources":["../../../src/components/reke-button/reke-button.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAG3D,MAAM,MAAM,aAAa,GACrB,SAAS,GACT,WAAW,GACX,OAAO,GACP,QAAQ,GACR,gBAAgB,GAChB,WAAW,CAAC;AAEhB,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBACa,UAAW,SAAQ,WAAW;IACzC,OAAgB,MAAM,4BAAU;IAGhC,OAAO,EAAE,aAAa,CAAa;IAGnC,IAAI,EAAE,UAAU,CAAQ;IAGxB,QAAQ,UAAS;IAGjB,OAAO,UAAS;IAEhB,OAAO,CAAC,WAAW;IASV,MAAM;CAwBhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,UAAU,CAAC;KAC3B;CACF"}
@@ -0,0 +1,53 @@
1
+ import { RekeElement as e } from "../../shared/base-element.js";
2
+ import { __decorate as t } from "../../_virtual/_@oxc-project_runtime@0.137.0/helpers/esm/decorate.js";
3
+ import { styles as n } from "./reke-button.styles.js";
4
+ import { html as r, nothing as i } from "lit";
5
+ import { customElement as a, property as o } from "lit/decorators.js";
6
+ import { classMap as s } from "lit/directives/class-map.js";
7
+ //#region src/components/reke-button/reke-button.ts
8
+ var c = class extends e {
9
+ constructor(...e) {
10
+ super(...e), this.variant = "primary", this.size = "md", this.disabled = !1, this.loading = !1;
11
+ }
12
+ static {
13
+ this.styles = n;
14
+ }
15
+ handleClick(e) {
16
+ if (this.disabled || this.loading) {
17
+ e.preventDefault(), e.stopPropagation();
18
+ return;
19
+ }
20
+ this.emit("reke-click");
21
+ }
22
+ render() {
23
+ return r`
24
+ <button
25
+ part="button"
26
+ class=${s({
27
+ button: !0,
28
+ [`button--${this.variant}`]: !0,
29
+ [`button--${this.size}`]: !0,
30
+ "button--loading": this.loading
31
+ })}
32
+ ?disabled=${this.disabled}
33
+ aria-disabled=${this.disabled || this.loading}
34
+ aria-busy=${this.loading}
35
+ @click=${this.handleClick}
36
+ >
37
+ <span class="spinner" aria-hidden="true"></span>
38
+ ${this.variant === "icon-only" ? i : r`<slot name="prefix"></slot>`}
39
+ <slot></slot>
40
+ ${this.variant === "icon-only" ? i : r`<slot name="suffix"></slot>`}
41
+ </button>
42
+ `;
43
+ }
44
+ };
45
+ t([o({ reflect: !0 })], c.prototype, "variant", void 0), t([o({ reflect: !0 })], c.prototype, "size", void 0), t([o({
46
+ type: Boolean,
47
+ reflect: !0
48
+ })], c.prototype, "disabled", void 0), t([o({
49
+ type: Boolean,
50
+ reflect: !0
51
+ })], c.prototype, "loading", void 0), c = t([a("reke-button")], c);
52
+ //#endregion
53
+ export { c as RekeButton };
@@ -1 +1 @@
1
- {"version":3,"file":"reke-button.styles.d.ts","sourceRoot":"","sources":["../../../src/components/reke-button/reke-button.styles.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,MAAM,2BAyLlB,CAAC"}
1
+ {"version":3,"file":"reke-button.styles.d.ts","sourceRoot":"","sources":["../../../src/components/reke-button/reke-button.styles.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,MAAM,2BA+NlB,CAAC"}
@@ -0,0 +1,226 @@
1
+ import { tailwindStyles as e } from "../../shared/tailwind-styles.js";
2
+ import { css as t } from "lit";
3
+ //#region src/components/reke-button/reke-button.styles.ts
4
+ var n = [e, t`
5
+ :host {
6
+ display: inline-block;
7
+ }
8
+
9
+ :host([disabled]) {
10
+ pointer-events: none;
11
+ opacity: 0.5;
12
+ }
13
+
14
+ .button {
15
+ display: inline-flex;
16
+ align-items: center;
17
+ justify-content: center;
18
+ gap: var(--reke-space-xs, 8px);
19
+ border: 1px solid transparent;
20
+ border-radius: var(--reke-radius, 4px);
21
+ font-family: var(--reke-font-mono, 'JetBrains Mono', ui-monospace, monospace);
22
+ font-weight: var(--reke-font-weight-medium, 500);
23
+ cursor: pointer;
24
+ transition:
25
+ background-color var(--reke-transition-fast, 0.12s ease),
26
+ border-color var(--reke-transition-fast, 0.12s ease),
27
+ color var(--reke-transition-fast, 0.12s ease),
28
+ box-shadow var(--reke-transition-normal, 0.2s ease),
29
+ transform var(--reke-transition-normal, 0.2s ease);
30
+ text-decoration: none;
31
+ line-height: 1;
32
+ white-space: nowrap;
33
+ box-sizing: border-box;
34
+ }
35
+
36
+ .button:focus-visible {
37
+ outline: 2px solid var(--reke-color-primary, #22C55E);
38
+ outline-offset: 2px;
39
+ }
40
+
41
+ /* === Sizes === */
42
+
43
+ .button--xs {
44
+ padding: var(--reke-space-2xs, 6px) var(--reke-space-xs, 8px);
45
+ font-size: var(--reke-font-size-2xs, 11px);
46
+ }
47
+
48
+ .button--sm {
49
+ padding: var(--reke-space-xs, 8px) var(--reke-space-md, 16px);
50
+ font-size: var(--reke-font-size-xs, 12px);
51
+ }
52
+
53
+ .button--md {
54
+ padding: var(--reke-space-sm, 12px) var(--reke-space-xl, 24px);
55
+ font-size: var(--reke-font-size-sm, 13px);
56
+ }
57
+
58
+ .button--lg {
59
+ padding: var(--reke-space-md, 16px) var(--reke-space-2xl, 28px);
60
+ font-size: var(--reke-font-size-md, 14px);
61
+ }
62
+
63
+ /* === Variants === */
64
+
65
+ .button--primary {
66
+ background-color: var(--reke-color-primary, #22C55E);
67
+ color: var(--reke-color-on-primary, #0A0A0B);
68
+ border-color: var(--reke-color-primary, #22C55E);
69
+ }
70
+
71
+ .button--primary:hover:not(:disabled) {
72
+ background-color: color-mix(in srgb, var(--reke-color-primary, #22C55E) 88%, black);
73
+ border-color: color-mix(in srgb, var(--reke-color-primary, #22C55E) 88%, black);
74
+ box-shadow: var(--reke-shadow-glow-primary, 0 0 20px rgba(34, 197, 94, 0.35));
75
+ transform: translateY(-1px);
76
+ }
77
+
78
+ .button--primary:active:not(:disabled) {
79
+ transform: translateY(0);
80
+ box-shadow: none;
81
+ }
82
+
83
+ .button--secondary {
84
+ background-color: var(--reke-color-surface, #1A1A1A);
85
+ color: var(--reke-color-text, #E5E5E5);
86
+ border-color: var(--reke-color-border, #252525);
87
+ }
88
+
89
+ .button--secondary:hover:not(:disabled) {
90
+ background-color: var(--reke-color-surface-hover, #202020);
91
+ border-color: var(--reke-color-border-hover, #3A3A3A);
92
+ color: var(--reke-color-text, #E5E5E5);
93
+ transform: translateY(-1px);
94
+ box-shadow: var(--reke-shadow-lift-sm, 0 4px 16px rgba(0, 0, 0, 0.35));
95
+ }
96
+
97
+ .button--secondary:active:not(:disabled) {
98
+ transform: translateY(0);
99
+ box-shadow: none;
100
+ }
101
+
102
+ .button--ghost {
103
+ background-color: transparent;
104
+ color: var(--reke-color-text-ghost, #737373);
105
+ border-color: transparent;
106
+ }
107
+
108
+ .button--ghost:hover:not(:disabled) {
109
+ background-color: var(--reke-color-surface, #1A1A1A);
110
+ color: var(--reke-color-text, #E5E5E5);
111
+ border-color: var(--reke-color-border-subtle, #1F1F1F);
112
+ }
113
+
114
+ .button--danger {
115
+ background-color: var(--reke-color-danger, #EF4444);
116
+ color: #FFFFFF;
117
+ border-color: var(--reke-color-danger, #EF4444);
118
+ }
119
+
120
+ .button--danger:hover:not(:disabled) {
121
+ background-color: color-mix(in srgb, var(--reke-color-danger, #EF4444) 88%, black);
122
+ border-color: color-mix(in srgb, var(--reke-color-danger, #EF4444) 88%, black);
123
+ box-shadow: var(--reke-shadow-glow-danger, 0 0 20px rgba(239, 68, 68, 0.35));
124
+ transform: translateY(-1px);
125
+ }
126
+
127
+ .button--danger:active:not(:disabled) {
128
+ transform: translateY(0);
129
+ box-shadow: none;
130
+ }
131
+
132
+ .button--danger-outline {
133
+ background-color: transparent;
134
+ color: var(--reke-color-danger, #EF4444);
135
+ border-color: var(--reke-color-danger, #EF4444);
136
+ }
137
+
138
+ .button--danger-outline:hover:not(:disabled) {
139
+ background-color: color-mix(in srgb, var(--reke-color-danger, #EF4444) 10%, transparent);
140
+ box-shadow: var(--reke-shadow-glow-danger, 0 0 20px rgba(239, 68, 68, 0.35));
141
+ transform: translateY(-1px);
142
+ }
143
+
144
+ .button--danger-outline:active:not(:disabled) {
145
+ transform: translateY(0);
146
+ box-shadow: none;
147
+ }
148
+
149
+ .button--icon-only {
150
+ background-color: var(--reke-color-surface, #1A1A1A);
151
+ color: var(--reke-color-text, #E5E5E5);
152
+ border-color: var(--reke-color-border, #252525);
153
+ }
154
+
155
+ .button--icon-only:hover:not(:disabled) {
156
+ background-color: var(--reke-color-surface-hover, #202020);
157
+ border-color: var(--reke-color-border-hover, #3A3A3A);
158
+ color: var(--reke-color-text, #E5E5E5);
159
+ }
160
+
161
+ .button--icon-only.button--xs {
162
+ padding: var(--reke-space-2xs, 6px);
163
+ }
164
+
165
+ .button--icon-only.button--sm {
166
+ padding: var(--reke-space-xs, 8px);
167
+ }
168
+
169
+ .button--icon-only.button--md {
170
+ padding: var(--reke-space-sm, 12px);
171
+ }
172
+
173
+ .button--icon-only.button--lg {
174
+ padding: var(--reke-space-md, 16px);
175
+ }
176
+
177
+ /* === Loading === */
178
+
179
+ .button--loading {
180
+ position: relative;
181
+ color: transparent !important;
182
+ pointer-events: none;
183
+ }
184
+
185
+ .spinner {
186
+ display: none;
187
+ }
188
+
189
+ .button--loading .spinner {
190
+ display: block;
191
+ position: absolute;
192
+ width: 1em;
193
+ height: 1em;
194
+ border: 2px solid currentColor;
195
+ border-right-color: transparent;
196
+ border-radius: 50%;
197
+ animation: spin 0.6s linear infinite;
198
+ color: inherit;
199
+ }
200
+
201
+ .button--loading.button--primary .spinner {
202
+ color: var(--reke-color-on-primary, #0A0A0B);
203
+ }
204
+
205
+ .button--loading.button--secondary .spinner,
206
+ .button--loading.button--ghost .spinner,
207
+ .button--loading.button--icon-only .spinner {
208
+ color: var(--reke-color-text, #E5E5E5);
209
+ }
210
+
211
+ .button--loading.button--danger .spinner {
212
+ color: #FFFFFF;
213
+ }
214
+
215
+ .button--loading.button--danger-outline .spinner {
216
+ color: var(--reke-color-danger, #EF4444);
217
+ }
218
+
219
+ @keyframes spin {
220
+ to {
221
+ transform: rotate(360deg);
222
+ }
223
+ }
224
+ `];
225
+ //#endregion
226
+ export { n as styles };
@@ -1,6 +1,7 @@
1
1
  import { RekeElement } from '../../shared/base-element.js';
2
2
  export type CardVariant = 'default' | 'elevated' | 'outlined';
3
3
  export type CardPadding = 'none' | 'sm' | 'md' | 'lg';
4
+ export type CardAccent = 'none' | 'primary' | 'secondary' | 'danger' | 'warning';
4
5
  /**
5
6
  * @tag reke-card
6
7
  * @summary A card container component with multiple variants and padding options.
@@ -13,11 +14,17 @@ export type CardPadding = 'none' | 'sm' | 'md' | 'lg';
13
14
  * @cssprop [--reke-color-border=#252525] - Card border color.
14
15
  * @cssprop [--reke-shadow-md=0 4px 6px rgba(0,0,0,0.3)] - Elevated variant shadow.
15
16
  * @cssprop [--reke-radius=4px] - Card border radius.
17
+ * @cssprop [--reke-shadow-lift] - Shadow applied on hover when interactive.
18
+ * @cssprop [--reke-shadow-glow-primary] - Glow shadow for accent=primary on hover.
16
19
  */
17
20
  export declare class RekeCard extends RekeElement {
18
21
  static styles: import("lit").CSSResult[];
19
22
  variant: CardVariant;
20
23
  padding: CardPadding;
24
+ /** Enables hover lift + border glow effect. */
25
+ interactive: boolean;
26
+ /** Accent color shown on hover border (requires interactive=true). */
27
+ accent: CardAccent;
21
28
  private _hasHeader;
22
29
  private _hasFooter;
23
30
  private _onSlotChange;
@@ -1 +1 @@
1
- {"version":3,"file":"reke-card.d.ts","sourceRoot":"","sources":["../../../src/components/reke-card/reke-card.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAG3D,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAC9D,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEtD;;;;;;;;;;;;GAYG;AACH,qBACa,QAAS,SAAQ,WAAW;IACvC,OAAgB,MAAM,4BAAU;IAGhC,OAAO,EAAE,WAAW,CAAa;IAGjC,OAAO,EAAE,WAAW,CAAQ;IAEnB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAS;IAEpC,OAAO,CAAC,aAAa;IAOZ,MAAM;CAyBhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,QAAQ,CAAC;KACvB;CACF"}
1
+ {"version":3,"file":"reke-card.d.ts","sourceRoot":"","sources":["../../../src/components/reke-card/reke-card.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAG3D,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAC9D,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AACtD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEjF;;;;;;;;;;;;;;GAcG;AACH,qBACa,QAAS,SAAQ,WAAW;IACvC,OAAgB,MAAM,4BAAU;IAGhC,OAAO,EAAE,WAAW,CAAa;IAGjC,OAAO,EAAE,WAAW,CAAQ;IAE5B,+CAA+C;IAE/C,WAAW,UAAS;IAEpB,sEAAsE;IAEtE,MAAM,EAAE,UAAU,CAAU;IAEnB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAS;IAEpC,OAAO,CAAC,aAAa;IAOZ,MAAM;CAmChB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,QAAQ,CAAC;KAEvB;CACF"}