@kodaris/krubble-components 1.0.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 (46) hide show
  1. package/custom-elements.json +2156 -0
  2. package/dist/accordion/accordion.d.ts +35 -0
  3. package/dist/accordion/accordion.d.ts.map +1 -0
  4. package/dist/accordion/accordion.js +120 -0
  5. package/dist/accordion/accordion.js.map +1 -0
  6. package/dist/alert.d.ts +35 -0
  7. package/dist/alert.d.ts.map +1 -0
  8. package/dist/alert.js +204 -0
  9. package/dist/alert.js.map +1 -0
  10. package/dist/button/button.d.ts +30 -0
  11. package/dist/button/button.d.ts.map +1 -0
  12. package/dist/button/button.js +133 -0
  13. package/dist/button/button.js.map +1 -0
  14. package/dist/code-demo/code-demo.d.ts +44 -0
  15. package/dist/code-demo/code-demo.d.ts.map +1 -0
  16. package/dist/code-demo/code-demo.js +277 -0
  17. package/dist/code-demo/code-demo.js.map +1 -0
  18. package/dist/context-menu/context-menu.d.ts +54 -0
  19. package/dist/context-menu/context-menu.d.ts.map +1 -0
  20. package/dist/context-menu/context-menu.js +179 -0
  21. package/dist/context-menu/context-menu.js.map +1 -0
  22. package/dist/dialog/dialog.d.ts +58 -0
  23. package/dist/dialog/dialog.d.ts.map +1 -0
  24. package/dist/dialog/dialog.js +142 -0
  25. package/dist/dialog/dialog.js.map +1 -0
  26. package/dist/form/index.d.ts +2 -0
  27. package/dist/form/index.d.ts.map +1 -0
  28. package/dist/form/index.js +3 -0
  29. package/dist/form/index.js.map +1 -0
  30. package/dist/form/text-field/text-field.d.ts +91 -0
  31. package/dist/form/text-field/text-field.d.ts.map +1 -0
  32. package/dist/form/text-field/text-field.js +281 -0
  33. package/dist/form/text-field/text-field.js.map +1 -0
  34. package/dist/index.d.ts +10 -0
  35. package/dist/index.d.ts.map +1 -0
  36. package/dist/index.js +10 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/krubble.bundled.js +1402 -0
  39. package/dist/krubble.bundled.js.map +1 -0
  40. package/dist/krubble.bundled.min.js +739 -0
  41. package/dist/krubble.bundled.min.js.map +1 -0
  42. package/dist/krubble.umd.js +1411 -0
  43. package/dist/krubble.umd.js.map +1 -0
  44. package/dist/krubble.umd.min.js +739 -0
  45. package/dist/krubble.umd.min.js.map +1 -0
  46. package/package.json +51 -0
@@ -0,0 +1,35 @@
1
+ import { LitElement } from 'lit';
2
+ /**
3
+ * Accordion component for collapsible content sections.
4
+ *
5
+ * ## Usage
6
+ * ```html
7
+ * <kr-accordion header="Basic Information" expanded>
8
+ * <div>Content here</div>
9
+ * </kr-accordion>
10
+ * ```
11
+ *
12
+ * @slot - The collapsible content
13
+ *
14
+ * @property {string} header - Section header text
15
+ * @property {boolean} expanded - Whether the accordion is expanded
16
+ */
17
+ export declare class KRAccordion extends LitElement {
18
+ static styles: import("lit").CSSResult;
19
+ /**
20
+ * Section header text
21
+ */
22
+ header: string;
23
+ /**
24
+ * Whether the accordion is expanded
25
+ */
26
+ expanded: boolean;
27
+ private toggle;
28
+ render(): import("lit-html").TemplateResult<1>;
29
+ }
30
+ declare global {
31
+ interface HTMLElementTagNameMap {
32
+ 'kr-accordion': KRAccordion;
33
+ }
34
+ }
35
+ //# sourceMappingURL=accordion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../../src/accordion/accordion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAG5C;;;;;;;;;;;;;;GAcG;AACH,qBACa,WAAY,SAAQ,UAAU;IACzC,OAAgB,MAAM,0BAoDpB;IAEF;;OAEG;IAEH,MAAM,SAAM;IAEZ;;OAEG;IAEH,QAAQ,UAAS;IAEjB,OAAO,CAAC,MAAM;IAIL,MAAM;CAiBhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,cAAc,EAAE,WAAW,CAAC;KAC7B;CACF"}
@@ -0,0 +1,120 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { LitElement, html, css } from 'lit';
8
+ import { customElement, property } from 'lit/decorators.js';
9
+ /**
10
+ * Accordion component for collapsible content sections.
11
+ *
12
+ * ## Usage
13
+ * ```html
14
+ * <kr-accordion header="Basic Information" expanded>
15
+ * <div>Content here</div>
16
+ * </kr-accordion>
17
+ * ```
18
+ *
19
+ * @slot - The collapsible content
20
+ *
21
+ * @property {string} header - Section header text
22
+ * @property {boolean} expanded - Whether the accordion is expanded
23
+ */
24
+ let KRAccordion = class KRAccordion extends LitElement {
25
+ constructor() {
26
+ super(...arguments);
27
+ /**
28
+ * Section header text
29
+ */
30
+ this.header = '';
31
+ /**
32
+ * Whether the accordion is expanded
33
+ */
34
+ this.expanded = false;
35
+ }
36
+ toggle() {
37
+ this.expanded = !this.expanded;
38
+ }
39
+ render() {
40
+ return html `
41
+ <div class="header" @click=${this.toggle}>
42
+ <span class="header__title">${this.header}</span>
43
+ <svg class="header__icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
44
+ <path d="M6 9l6 6 6-6"/>
45
+ </svg>
46
+ </div>
47
+ <div class="content">
48
+ <div class="content__inner">
49
+ <div class="content__body">
50
+ <slot></slot>
51
+ </div>
52
+ </div>
53
+ </div>
54
+ `;
55
+ }
56
+ };
57
+ KRAccordion.styles = css `
58
+ :host {
59
+ display: block;
60
+ margin-bottom: 16px;
61
+ }
62
+
63
+ .header {
64
+ display: flex;
65
+ align-items: center;
66
+ justify-content: space-between;
67
+ padding: 12px 16px;
68
+ background: #f7f8f9;
69
+ border-radius: 8px;
70
+ cursor: pointer;
71
+ user-select: none;
72
+ }
73
+
74
+ .header__title {
75
+ font-size: 15px;
76
+ font-weight: 600;
77
+ color: #111827;
78
+ }
79
+
80
+ .header__icon {
81
+ width: 20px;
82
+ height: 20px;
83
+ color: #9ca3af;
84
+ transition: transform 0.2s ease;
85
+ flex-shrink: 0;
86
+ }
87
+
88
+ :host([expanded]) .header__icon {
89
+ transform: rotate(180deg);
90
+ }
91
+
92
+ .content {
93
+ display: grid;
94
+ grid-template-rows: 0fr;
95
+ transition: grid-template-rows 0.2s ease;
96
+ }
97
+
98
+ :host([expanded]) .content {
99
+ grid-template-rows: 1fr;
100
+ }
101
+
102
+ .content__inner {
103
+ overflow: hidden;
104
+ }
105
+
106
+ .content__body {
107
+ padding: 16px 16px 8px 16px;
108
+ }
109
+ `;
110
+ __decorate([
111
+ property({ type: String })
112
+ ], KRAccordion.prototype, "header", void 0);
113
+ __decorate([
114
+ property({ type: Boolean, reflect: true })
115
+ ], KRAccordion.prototype, "expanded", void 0);
116
+ KRAccordion = __decorate([
117
+ customElement('kr-accordion')
118
+ ], KRAccordion);
119
+ export { KRAccordion };
120
+ //# sourceMappingURL=accordion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accordion.js","sourceRoot":"","sources":["../../src/accordion/accordion.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAS,MAAM,mBAAmB,CAAC;AAEnE;;;;;;;;;;;;;;GAcG;AAEI,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,UAAU;IAApC;;QAuDL;;WAEG;QAEH,WAAM,GAAG,EAAE,CAAC;QAEZ;;WAEG;QAEH,aAAQ,GAAG,KAAK,CAAC;IAuBnB,CAAC;IArBS,MAAM;QACZ,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;IACjC,CAAC;IAEQ,MAAM;QACb,OAAO,IAAI,CAAA;mCACoB,IAAI,CAAC,MAAM;sCACR,IAAI,CAAC,MAAM;;;;;;;;;;;;KAY5C,CAAC;IACJ,CAAC;;AAtFe,kBAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoD3B,AApDqB,CAoDpB;AAMF;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;2CACf;AAMZ;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;6CAC1B;AAjEN,WAAW;IADvB,aAAa,CAAC,cAAc,CAAC;GACjB,WAAW,CAwFvB"}
@@ -0,0 +1,35 @@
1
+ import { LitElement } from 'lit';
2
+ /**
3
+ * A customizable alert component for displaying important information to users.
4
+ *
5
+ * @slot - The alert message content
6
+ * @fires dismiss - Fired when the dismiss button is clicked
7
+ */
8
+ export declare class KRAlert extends LitElement {
9
+ static styles: import("lit").CSSResult;
10
+ /**
11
+ * The alert type/severity
12
+ */
13
+ type: 'info' | 'success' | 'warning' | 'error';
14
+ /**
15
+ * Optional header text
16
+ */
17
+ header?: string;
18
+ /**
19
+ * Whether the alert can be dismissed
20
+ */
21
+ dismissible: boolean;
22
+ /**
23
+ * Whether the alert is visible
24
+ */
25
+ visible: boolean;
26
+ /** Handles dismiss button click */
27
+ private _handleDismiss;
28
+ render(): import("lit-html").TemplateResult<1>;
29
+ }
30
+ declare global {
31
+ interface HTMLElementTagNameMap {
32
+ 'kr-alert': KRAlert;
33
+ }
34
+ }
35
+ //# sourceMappingURL=alert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../src/alert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAIrD;;;;;GAKG;AACH,qBACa,OAAQ,SAAQ,UAAU;IACrC,OAAgB,MAAM,0BA2GpB;IAEF;;OAEG;IAEH,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAU;IAExD;;OAEG;IAEH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IAEH,WAAW,UAAS;IAEpB;;OAEG;IAEH,OAAO,UAAQ;IAEf,mCAAmC;IACnC,OAAO,CAAC,cAAc;IAKb,MAAM;CA2ChB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,UAAU,EAAE,OAAO,CAAC;KACrB;CACF"}
package/dist/alert.js ADDED
@@ -0,0 +1,204 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { LitElement, html, css, nothing } from 'lit';
8
+ import { customElement, property } from 'lit/decorators.js';
9
+ import { classMap } from 'lit/directives/class-map.js';
10
+ /**
11
+ * A customizable alert component for displaying important information to users.
12
+ *
13
+ * @slot - The alert message content
14
+ * @fires dismiss - Fired when the dismiss button is clicked
15
+ */
16
+ let KRAlert = class KRAlert extends LitElement {
17
+ constructor() {
18
+ super(...arguments);
19
+ /**
20
+ * The alert type/severity
21
+ */
22
+ this.type = 'info';
23
+ /**
24
+ * Whether the alert can be dismissed
25
+ */
26
+ this.dismissible = false;
27
+ /**
28
+ * Whether the alert is visible
29
+ */
30
+ this.visible = true;
31
+ }
32
+ /** Handles dismiss button click */
33
+ _handleDismiss() {
34
+ this.visible = false;
35
+ this.dispatchEvent(new CustomEvent('dismiss', { bubbles: true, composed: true }));
36
+ }
37
+ render() {
38
+ const icons = {
39
+ info: html `<svg class="icon" viewBox="0 0 20 20" fill="currentColor"><path fill-rule="evenodd" d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z" clip-rule="evenodd"/></svg>`,
40
+ success: html `<svg class="icon" viewBox="0 0 20 20" fill="currentColor"><path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clip-rule="evenodd"/></svg>`,
41
+ warning: html `<svg class="icon" viewBox="0 0 20 20" fill="currentColor"><path fill-rule="evenodd" d="M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z" clip-rule="evenodd"/></svg>`,
42
+ error: html `<svg class="icon" viewBox="0 0 20 20" fill="currentColor"><path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z" clip-rule="evenodd"/></svg>`,
43
+ };
44
+ return html `
45
+ <div
46
+ class=${classMap({
47
+ 'alert': true,
48
+ ['alert--' + this.type]: true,
49
+ 'alert--hidden': !this.visible
50
+ })}
51
+ role="alert"
52
+ >
53
+ ${icons[this.type]}
54
+ <div class="content">
55
+ ${this.header
56
+ ? html `<h4 class="header">${this.header}</h4>`
57
+ : nothing}
58
+ <div class="message">
59
+ <slot></slot>
60
+ </div>
61
+ </div>
62
+ ${this.dismissible
63
+ ? html `
64
+ <button
65
+ class="dismiss"
66
+ type="button"
67
+ aria-label="Dismiss alert"
68
+ @click=${this._handleDismiss}
69
+ >
70
+ <svg viewBox="0 0 20 20" fill="currentColor" width="16" height="16">
71
+ <path fill-rule="evenodd" d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" clip-rule="evenodd"/>
72
+ </svg>
73
+ </button>
74
+ `
75
+ : nothing}
76
+ </div>
77
+ `;
78
+ }
79
+ };
80
+ KRAlert.styles = css `
81
+ :host {
82
+ display: block;
83
+ }
84
+
85
+ .alert {
86
+ display: flex;
87
+ align-items: center;
88
+ gap: 12px;
89
+ padding: 12px 16px;
90
+ border-radius: 8px;
91
+ border-left: 4px solid;
92
+ }
93
+
94
+ .alert--hidden {
95
+ display: none;
96
+ }
97
+
98
+ /* Variants */
99
+ .alert--info {
100
+ background-color: #eff6ff;
101
+ border-left-color: #3b82f6;
102
+ }
103
+
104
+ .alert--info .icon {
105
+ color: #2563eb;
106
+ }
107
+
108
+ .alert--success {
109
+ background-color: #f0fdf4;
110
+ border-left-color: #22c55e;
111
+ }
112
+
113
+ .alert--success .icon {
114
+ color: #16a34a;
115
+ }
116
+
117
+ .alert--warning {
118
+ background-color: #fffbeb;
119
+ border-left-color: #f59e0b;
120
+ }
121
+
122
+ .alert--warning .icon {
123
+ color: #d97706;
124
+ }
125
+
126
+ .alert--error {
127
+ background-color: #fef2f2;
128
+ border-left-color: #ef4444;
129
+ }
130
+
131
+ .alert--error .icon {
132
+ color: #dc2626;
133
+ }
134
+
135
+ .icon {
136
+ flex-shrink: 0;
137
+ width: 20px;
138
+ height: 20px;
139
+ }
140
+
141
+ .content {
142
+ flex: 1;
143
+ min-width: 0;
144
+ display: flex;
145
+ flex-direction: column;
146
+ gap: 6px;
147
+ }
148
+
149
+ .header {
150
+ font-size: 14px;
151
+ font-weight: 600;
152
+ color: #111827;
153
+ margin: 0;
154
+ }
155
+
156
+ .message {
157
+ font-size: 14px;
158
+ color: #374151;
159
+ margin: 0;
160
+ }
161
+
162
+ .dismiss {
163
+ flex-shrink: 0;
164
+ display: flex;
165
+ align-items: center;
166
+ justify-content: center;
167
+ width: 24px;
168
+ height: 24px;
169
+ padding: 0;
170
+ background: none;
171
+ border: none;
172
+ border-radius: 4px;
173
+ color: #6b7280;
174
+ cursor: pointer;
175
+ transition: background 0.15s ease, color 0.15s ease;
176
+ }
177
+
178
+ .dismiss:hover {
179
+ background-color: rgba(0, 0, 0, 0.05);
180
+ color: #374151;
181
+ }
182
+
183
+ .dismiss:focus-visible {
184
+ outline: 2px solid #3b82f6;
185
+ outline-offset: 2px;
186
+ }
187
+ `;
188
+ __decorate([
189
+ property({ type: String })
190
+ ], KRAlert.prototype, "type", void 0);
191
+ __decorate([
192
+ property({ type: String })
193
+ ], KRAlert.prototype, "header", void 0);
194
+ __decorate([
195
+ property({ type: Boolean })
196
+ ], KRAlert.prototype, "dismissible", void 0);
197
+ __decorate([
198
+ property({ type: Boolean })
199
+ ], KRAlert.prototype, "visible", void 0);
200
+ KRAlert = __decorate([
201
+ customElement('kr-alert')
202
+ ], KRAlert);
203
+ export { KRAlert };
204
+ //# sourceMappingURL=alert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alert.js","sourceRoot":"","sources":["../src/alert.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD;;;;;GAKG;AAEI,IAAM,OAAO,GAAb,MAAM,OAAQ,SAAQ,UAAU;IAAhC;;QA8GL;;WAEG;QAEH,SAAI,GAA6C,MAAM,CAAC;QAQxD;;WAEG;QAEH,gBAAW,GAAG,KAAK,CAAC;QAEpB;;WAEG;QAEH,YAAO,GAAG,IAAI,CAAC;IAmDjB,CAAC;IAjDC,mCAAmC;IAC3B,cAAc;QACpB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACpF,CAAC;IAEQ,MAAM;QACb,MAAM,KAAK,GAAG;YACZ,IAAI,EAAE,IAAI,CAAA,sPAAsP;YAChQ,OAAO,EAAE,IAAI,CAAA,2PAA2P;YACxQ,OAAO,EAAE,IAAI,CAAA,uUAAuU;YACpV,KAAK,EAAE,IAAI,CAAA,6UAA6U;SACzV,CAAC;QAEF,OAAO,IAAI,CAAA;;gBAEC,QAAQ,CAAC;YACf,OAAO,EAAE,IAAI;YACb,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI;YAC7B,eAAe,EAAE,CAAC,IAAI,CAAC,OAAO;SAC/B,CAAC;;;UAGA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;;YAEd,IAAI,CAAC,MAAM;YACX,CAAC,CAAC,IAAI,CAAA,sBAAsB,IAAI,CAAC,MAAM,OAAO;YAC9C,CAAC,CAAC,OAAO;;;;;UAKV,IAAI,CAAC,WAAW;YACjB,CAAC,CAAC,IAAI,CAAA;;;;;yBAKS,IAAI,CAAC,cAAc;;;;;;aAM/B;YACH,CAAC,CAAC,OAAQ;;KAEf,CAAC;IACJ,CAAC;;AArLe,cAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2G3B,AA3GqB,CA2GpB;AAMF;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;qCAC6B;AAMxD;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;uCACX;AAMhB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;4CACR;AAMpB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;wCACb;AApIJ,OAAO;IADnB,aAAa,CAAC,UAAU,CAAC;GACb,OAAO,CAuLnB"}
@@ -0,0 +1,30 @@
1
+ import { LitElement } from 'lit';
2
+ /**
3
+ * A customizable button component.
4
+ *
5
+ * @slot - The button content
6
+ * @csspart button - The button element
7
+ * @fires click - Fired when the button is clicked
8
+ */
9
+ export declare class KRButton extends LitElement {
10
+ static styles: import("lit").CSSResult;
11
+ /**
12
+ * The button variant style
13
+ */
14
+ variant: 'primary' | 'secondary' | 'outline';
15
+ /**
16
+ * The button size
17
+ */
18
+ size: 'small' | 'medium' | 'large';
19
+ /**
20
+ * Whether the button is disabled
21
+ */
22
+ disabled: boolean;
23
+ render(): import("lit-html").TemplateResult<1>;
24
+ }
25
+ declare global {
26
+ interface HTMLElementTagNameMap {
27
+ 'kr-button': KRButton;
28
+ }
29
+ }
30
+ //# sourceMappingURL=button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../src/button/button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAG5C;;;;;;GAMG;AACH,qBACa,QAAS,SAAQ,UAAU;IACtC,OAAgB,MAAM,0BA0EpB;IAEF;;OAEG;IAEH,OAAO,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,CAAa;IAEzD;;OAEG;IAEH,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAY;IAE9C;;OAEG;IAEH,QAAQ,UAAS;IAER,MAAM;CAahB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,QAAQ,CAAC;KACvB;CACF"}
@@ -0,0 +1,133 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { LitElement, html, css } from 'lit';
8
+ import { customElement, property } from 'lit/decorators.js';
9
+ /**
10
+ * A customizable button component.
11
+ *
12
+ * @slot - The button content
13
+ * @csspart button - The button element
14
+ * @fires click - Fired when the button is clicked
15
+ */
16
+ let KRButton = class KRButton extends LitElement {
17
+ constructor() {
18
+ super(...arguments);
19
+ /**
20
+ * The button variant style
21
+ */
22
+ this.variant = 'primary';
23
+ /**
24
+ * The button size
25
+ */
26
+ this.size = 'medium';
27
+ /**
28
+ * Whether the button is disabled
29
+ */
30
+ this.disabled = false;
31
+ }
32
+ render() {
33
+ const sizeClass = this.size !== 'medium' ? this.size : '';
34
+ return html `
35
+ <button
36
+ part="button"
37
+ class="${this.variant} ${sizeClass}"
38
+ ?disabled=${this.disabled}
39
+ >
40
+ <slot></slot>
41
+ </button>
42
+ `;
43
+ }
44
+ };
45
+ KRButton.styles = css `
46
+ :host {
47
+ display: inline-block;
48
+ }
49
+
50
+ button {
51
+ font-family: inherit;
52
+ font-size: 14px;
53
+ font-weight: 400;
54
+ letter-spacing: 0.01em;
55
+ padding: 0 22px;
56
+ height: 36px;
57
+ line-height: 36px;
58
+ border: none;
59
+ border-radius: 20px;
60
+ cursor: pointer;
61
+ transition: background 0.15s ease;
62
+ }
63
+
64
+ button:active:not(:disabled) {
65
+ transform: scale(0.98);
66
+ }
67
+
68
+ button:disabled {
69
+ opacity: 0.5;
70
+ cursor: not-allowed;
71
+ }
72
+
73
+ /* Variants */
74
+ button.primary {
75
+ background: #163052;
76
+ color: white;
77
+ }
78
+
79
+ button.primary:hover:not(:disabled) {
80
+ background: #0e1f35;
81
+ }
82
+
83
+ button.secondary {
84
+ background: #f3f4f6;
85
+ color: #374151;
86
+ }
87
+
88
+ button.secondary:hover:not(:disabled) {
89
+ background: #e5e7eb;
90
+ }
91
+
92
+ button.outline {
93
+ background: transparent;
94
+ border: 1px solid #d1d5db;
95
+ color: #374151;
96
+ box-shadow: none;
97
+ }
98
+
99
+ button.outline:hover:not(:disabled) {
100
+ background: #f9fafb;
101
+ border-color: #9ca3af;
102
+ box-shadow: none;
103
+ }
104
+
105
+ /* Sizes */
106
+ button.small {
107
+ font-size: 0.75rem;
108
+ height: 28px;
109
+ line-height: 28px;
110
+ padding: 0 10px;
111
+ }
112
+
113
+ button.large {
114
+ font-size: 1rem;
115
+ height: 44px;
116
+ line-height: 44px;
117
+ padding: 0 24px;
118
+ }
119
+ `;
120
+ __decorate([
121
+ property({ type: String })
122
+ ], KRButton.prototype, "variant", void 0);
123
+ __decorate([
124
+ property({ type: String })
125
+ ], KRButton.prototype, "size", void 0);
126
+ __decorate([
127
+ property({ type: Boolean })
128
+ ], KRButton.prototype, "disabled", void 0);
129
+ KRButton = __decorate([
130
+ customElement('kr-button')
131
+ ], KRButton);
132
+ export { KRButton };
133
+ //# sourceMappingURL=button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.js","sourceRoot":"","sources":["../../src/button/button.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE5D;;;;;;GAMG;AAEI,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,UAAU;IAAjC;;QA6EL;;WAEG;QAEH,YAAO,GAAwC,SAAS,CAAC;QAEzD;;WAEG;QAEH,SAAI,GAAiC,QAAQ,CAAC;QAE9C;;WAEG;QAEH,aAAQ,GAAG,KAAK,CAAC;IAenB,CAAC;IAbU,MAAM;QACb,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAE1D,OAAO,IAAI,CAAA;;;iBAGE,IAAI,CAAC,OAAO,IAAI,SAAS;oBACtB,IAAI,CAAC,QAAQ;;;;KAI5B,CAAC;IACJ,CAAC;;AA1Ge,eAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0E3B,AA1EqB,CA0EpB;AAMF;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;yCAC8B;AAMzD;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;sCACmB;AAM9C;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0CACX;AA7FN,QAAQ;IADpB,aAAa,CAAC,WAAW,CAAC;GACd,QAAQ,CA4GpB"}
@@ -0,0 +1,44 @@
1
+ import { LitElement } from 'lit';
2
+ declare global {
3
+ interface Window {
4
+ Prism?: {
5
+ highlight: (code: string, grammar: unknown, language: string) => string;
6
+ languages: Record<string, unknown>;
7
+ };
8
+ }
9
+ }
10
+ /**
11
+ * Code demo component with Preview/Code tabs and syntax highlighting.
12
+ *
13
+ * Usage:
14
+ * ```html
15
+ * <kr-code-demo language="html">
16
+ * <div slot="preview">
17
+ * <kr-button>Click me</kr-button>
18
+ * </div>
19
+ * <script slot="code" type="text/plain">
20
+ * <kr-button>Click me</kr-button>
21
+ * </script>
22
+ * </kr-code-demo>
23
+ * ```
24
+ *
25
+ * Requires Prism.js to be loaded globally for syntax highlighting.
26
+ */
27
+ export declare class KRCodeDemo extends LitElement {
28
+ static styles: import("lit").CSSResult;
29
+ language: string;
30
+ code: string;
31
+ private activeTab;
32
+ private copied;
33
+ private setTab;
34
+ private getHighlightedCode;
35
+ private escapeHtml;
36
+ private copyCode;
37
+ render(): import("lit-html").TemplateResult<1>;
38
+ }
39
+ declare global {
40
+ interface HTMLElementTagNameMap {
41
+ 'kr-code-demo': KRCodeDemo;
42
+ }
43
+ }
44
+ //# sourceMappingURL=code-demo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-demo.d.ts","sourceRoot":"","sources":["../../src/code-demo/code-demo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAK5C,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,KAAK,CAAC,EAAE;YACN,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;YACxE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SACpC,CAAC;KACH;CACF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBACa,UAAW,SAAQ,UAAU;IACxC,OAAgB,MAAM,0BA+JpB;IAGF,QAAQ,SAAU;IAGlB,IAAI,SAAM;IAGV,OAAO,CAAC,SAAS,CAAiC;IAGlD,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,UAAU;YAMJ,QAAQ;IAcb,MAAM;CAiChB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,cAAc,EAAE,UAAU,CAAC;KAC5B;CACF"}