aeico-components 0.1.2 → 0.1.4

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 (224) hide show
  1. package/dist/alert.cjs +6 -0
  2. package/dist/alert.cjs.map +1 -0
  3. package/dist/alert.js +6 -0
  4. package/dist/alert.js.map +1 -0
  5. package/dist/badge.cjs +6 -0
  6. package/dist/badge.cjs.map +1 -0
  7. package/dist/badge.js +6 -0
  8. package/dist/badge.js.map +1 -0
  9. package/dist/breadcrumb.cjs +7 -0
  10. package/dist/breadcrumb.cjs.map +1 -0
  11. package/dist/breadcrumb.js +7 -0
  12. package/dist/breadcrumb.js.map +1 -0
  13. package/dist/button-group.cjs +6 -0
  14. package/dist/button-group.cjs.map +1 -0
  15. package/dist/button-group.js +6 -0
  16. package/dist/button-group.js.map +1 -0
  17. package/dist/button.cjs +6 -0
  18. package/dist/button.cjs.map +1 -0
  19. package/dist/button.js +6 -0
  20. package/dist/button.js.map +1 -0
  21. package/dist/card.cjs +6 -0
  22. package/dist/card.cjs.map +1 -0
  23. package/dist/card.js +6 -0
  24. package/dist/card.js.map +1 -0
  25. package/dist/checkbox.cjs +6 -0
  26. package/dist/checkbox.cjs.map +1 -0
  27. package/dist/checkbox.js +6 -0
  28. package/dist/checkbox.js.map +1 -0
  29. package/dist/chunks/aeico-component.cjs +17 -0
  30. package/dist/chunks/aeico-component.cjs.map +1 -0
  31. package/dist/chunks/aeico-component.js +18 -0
  32. package/dist/chunks/aeico-component.js.map +1 -0
  33. package/dist/chunks/aeico-field.cjs +179 -0
  34. package/dist/chunks/aeico-field.cjs.map +1 -0
  35. package/dist/chunks/aeico-field.js +180 -0
  36. package/dist/chunks/aeico-field.js.map +1 -0
  37. package/dist/chunks/alert.cjs +170 -0
  38. package/dist/chunks/alert.cjs.map +1 -0
  39. package/dist/chunks/alert.js +171 -0
  40. package/dist/chunks/alert.js.map +1 -0
  41. package/dist/chunks/badge.cjs +85 -0
  42. package/dist/chunks/badge.cjs.map +1 -0
  43. package/dist/chunks/badge.js +86 -0
  44. package/dist/chunks/badge.js.map +1 -0
  45. package/dist/chunks/breadcrumb-item.cjs +261 -0
  46. package/dist/chunks/breadcrumb-item.cjs.map +1 -0
  47. package/dist/chunks/breadcrumb-item.js +262 -0
  48. package/dist/chunks/breadcrumb-item.js.map +1 -0
  49. package/dist/chunks/button-group.cjs +79 -0
  50. package/dist/chunks/button-group.cjs.map +1 -0
  51. package/dist/chunks/button-group.js +80 -0
  52. package/dist/chunks/button-group.js.map +1 -0
  53. package/dist/chunks/button.cjs +351 -0
  54. package/dist/chunks/button.cjs.map +1 -0
  55. package/dist/chunks/button.js +352 -0
  56. package/dist/chunks/button.js.map +1 -0
  57. package/dist/chunks/card.cjs +93 -0
  58. package/dist/chunks/card.cjs.map +1 -0
  59. package/dist/chunks/card.js +94 -0
  60. package/dist/chunks/card.js.map +1 -0
  61. package/dist/chunks/checkbox.cjs +73 -0
  62. package/dist/chunks/checkbox.cjs.map +1 -0
  63. package/dist/chunks/checkbox.js +74 -0
  64. package/dist/chunks/checkbox.js.map +1 -0
  65. package/dist/chunks/color.cjs +4 -0
  66. package/dist/chunks/color.cjs.map +1 -0
  67. package/dist/chunks/color.js +5 -0
  68. package/dist/chunks/color.js.map +1 -0
  69. package/dist/chunks/detail.cjs +143 -0
  70. package/dist/chunks/detail.cjs.map +1 -0
  71. package/dist/chunks/detail.js +144 -0
  72. package/dist/chunks/detail.js.map +1 -0
  73. package/dist/chunks/dialog.cjs +117 -0
  74. package/dist/chunks/dialog.cjs.map +1 -0
  75. package/dist/chunks/dialog.js +118 -0
  76. package/dist/chunks/dialog.js.map +1 -0
  77. package/dist/chunks/divider.cjs +80 -0
  78. package/dist/chunks/divider.cjs.map +1 -0
  79. package/dist/chunks/divider.js +81 -0
  80. package/dist/chunks/divider.js.map +1 -0
  81. package/dist/chunks/dropdown-button.cjs +534 -0
  82. package/dist/chunks/dropdown-button.cjs.map +1 -0
  83. package/dist/chunks/dropdown-button.js +535 -0
  84. package/dist/chunks/dropdown-button.js.map +1 -0
  85. package/dist/chunks/icon-button.cjs +35 -0
  86. package/dist/chunks/icon-button.cjs.map +1 -0
  87. package/dist/chunks/icon-button.js +36 -0
  88. package/dist/chunks/icon-button.js.map +1 -0
  89. package/dist/chunks/icon.cjs +78 -0
  90. package/dist/chunks/icon.cjs.map +1 -0
  91. package/dist/chunks/icon.js +79 -0
  92. package/dist/chunks/icon.js.map +1 -0
  93. package/dist/chunks/navbar.cjs +143 -0
  94. package/dist/chunks/navbar.cjs.map +1 -0
  95. package/dist/chunks/navbar.js +144 -0
  96. package/dist/chunks/navbar.js.map +1 -0
  97. package/dist/chunks/radio.cjs +181 -0
  98. package/dist/chunks/radio.cjs.map +1 -0
  99. package/dist/chunks/radio.js +182 -0
  100. package/dist/chunks/radio.js.map +1 -0
  101. package/dist/chunks/select.cjs +350 -0
  102. package/dist/chunks/select.cjs.map +1 -0
  103. package/dist/chunks/select.js +351 -0
  104. package/dist/chunks/select.js.map +1 -0
  105. package/dist/chunks/size.cjs +4 -0
  106. package/dist/chunks/size.cjs.map +1 -0
  107. package/dist/chunks/size.js +5 -0
  108. package/dist/chunks/size.js.map +1 -0
  109. package/dist/chunks/slider.cjs +648 -0
  110. package/dist/chunks/slider.cjs.map +1 -0
  111. package/dist/chunks/slider.js +649 -0
  112. package/dist/chunks/slider.js.map +1 -0
  113. package/dist/chunks/switch.cjs +73 -0
  114. package/dist/chunks/switch.cjs.map +1 -0
  115. package/dist/chunks/switch.js +74 -0
  116. package/dist/chunks/switch.js.map +1 -0
  117. package/dist/chunks/tab-panel.cjs +166 -0
  118. package/dist/chunks/tab-panel.cjs.map +1 -0
  119. package/dist/chunks/tab-panel.js +167 -0
  120. package/dist/chunks/tab-panel.js.map +1 -0
  121. package/dist/chunks/tag.cjs +108 -0
  122. package/dist/chunks/tag.cjs.map +1 -0
  123. package/dist/chunks/tag.js +109 -0
  124. package/dist/chunks/tag.js.map +1 -0
  125. package/dist/chunks/text-input.cjs +59 -0
  126. package/dist/chunks/text-input.cjs.map +1 -0
  127. package/dist/chunks/text-input.js +60 -0
  128. package/dist/chunks/text-input.js.map +1 -0
  129. package/dist/chunks/variables.cjs +372 -0
  130. package/dist/chunks/variables.cjs.map +1 -0
  131. package/dist/chunks/variables.js +373 -0
  132. package/dist/chunks/variables.js.map +1 -0
  133. package/dist/detail.cjs +6 -0
  134. package/dist/detail.cjs.map +1 -0
  135. package/dist/detail.js +6 -0
  136. package/dist/detail.js.map +1 -0
  137. package/dist/dialog.cjs +6 -0
  138. package/dist/dialog.cjs.map +1 -0
  139. package/dist/dialog.js +6 -0
  140. package/dist/dialog.js.map +1 -0
  141. package/dist/divider.cjs +6 -0
  142. package/dist/divider.cjs.map +1 -0
  143. package/dist/divider.js +6 -0
  144. package/dist/divider.js.map +1 -0
  145. package/dist/dropdown.cjs +7 -0
  146. package/dist/dropdown.cjs.map +1 -0
  147. package/dist/dropdown.js +7 -0
  148. package/dist/dropdown.js.map +1 -0
  149. package/dist/icon-button.cjs +6 -0
  150. package/dist/icon-button.cjs.map +1 -0
  151. package/dist/icon-button.js +6 -0
  152. package/dist/icon-button.js.map +1 -0
  153. package/dist/icon.cjs +6 -0
  154. package/dist/icon.cjs.map +1 -0
  155. package/dist/icon.js +6 -0
  156. package/dist/icon.js.map +1 -0
  157. package/dist/index.cjs +49 -4223
  158. package/dist/index.cjs.map +1 -1
  159. package/dist/index.js +49 -4223
  160. package/dist/index.js.map +1 -1
  161. package/dist/navbar.cjs +6 -0
  162. package/dist/navbar.cjs.map +1 -0
  163. package/dist/navbar.js +6 -0
  164. package/dist/navbar.js.map +1 -0
  165. package/dist/radio-group.cjs +7 -0
  166. package/dist/radio-group.cjs.map +1 -0
  167. package/dist/radio-group.js +7 -0
  168. package/dist/radio-group.js.map +1 -0
  169. package/dist/select.cjs +99 -0
  170. package/dist/select.cjs.map +1 -0
  171. package/dist/select.js +99 -0
  172. package/dist/select.js.map +1 -0
  173. package/dist/slider.cjs +6 -0
  174. package/dist/slider.cjs.map +1 -0
  175. package/dist/slider.js +6 -0
  176. package/dist/slider.js.map +1 -0
  177. package/dist/switch.cjs +6 -0
  178. package/dist/switch.cjs.map +1 -0
  179. package/dist/switch.js +6 -0
  180. package/dist/switch.js.map +1 -0
  181. package/dist/tabs.cjs +8 -0
  182. package/dist/tabs.cjs.map +1 -0
  183. package/dist/tabs.js +8 -0
  184. package/dist/tabs.js.map +1 -0
  185. package/dist/tag.cjs +5 -0
  186. package/dist/tag.cjs.map +1 -0
  187. package/dist/tag.js +5 -0
  188. package/dist/tag.js.map +1 -0
  189. package/dist/text-input.cjs +6 -0
  190. package/dist/text-input.cjs.map +1 -0
  191. package/dist/text-input.js +6 -0
  192. package/dist/text-input.js.map +1 -0
  193. package/package.json +75 -63
  194. package/src/styles/color.css +117 -117
  195. package/src/styles/components/alert.css +104 -104
  196. package/src/styles/components/badge.css +67 -67
  197. package/src/styles/components/breadcrumb-item.css +59 -59
  198. package/src/styles/components/breadcrumb.css +19 -19
  199. package/src/styles/components/button-group.css +25 -25
  200. package/src/styles/components/button.css +213 -213
  201. package/src/styles/components/card.css +64 -64
  202. package/src/styles/components/checkbox.css +78 -78
  203. package/src/styles/components/detail.css +127 -127
  204. package/src/styles/components/dialog.css +103 -103
  205. package/src/styles/components/divider.css +18 -18
  206. package/src/styles/components/dropdown-item.css +91 -91
  207. package/src/styles/components/dropdown.css +179 -179
  208. package/src/styles/components/icon-button.css +116 -116
  209. package/src/styles/components/icon.css +29 -29
  210. package/src/styles/components/navbar.css +250 -250
  211. package/src/styles/components/radio-group.css +360 -360
  212. package/src/styles/components/select-option.css +43 -43
  213. package/src/styles/components/select.css +222 -222
  214. package/src/styles/components/slider.css +326 -326
  215. package/src/styles/components/switch.css +117 -117
  216. package/src/styles/components/tab-panel.css +8 -8
  217. package/src/styles/components/tab.css +44 -44
  218. package/src/styles/components/tabs.css +16 -16
  219. package/src/styles/components/tag.css +107 -107
  220. package/src/styles/components/text-input.css +110 -110
  221. package/src/styles/layout.css +43 -43
  222. package/src/styles/size.css +7 -7
  223. package/src/styles/variables.css +368 -368
  224. package/src/utils.ts +1 -0
@@ -0,0 +1,118 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
+ import { s as styleVariables } from "./variables.js";
5
+ import { A as AeicoComponent } from "./aeico-component.js";
6
+ import { html } from "aeico";
7
+ const style = ":host {\n display: contents;\n}\n\ndialog {\n display: none;\n flex-direction: column;\n border: none;\n border-radius: 8px;\n padding: 0;\n max-width: min(90vw, 600px);\n max-height: 90vh;\n background: var(--surface-overlay);\n color: var(--color-text-main);\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);\n overflow: hidden;\n}\n\ndialog[open] {\n display: flex;\n animation: dialog-slide-in 0.2s ease;\n}\n\ndialog::backdrop {\n background: var(--color-overlay);\n animation: dialog-backdrop-in 0.2s ease;\n}\n\n@keyframes dialog-backdrop-in {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n@keyframes dialog-slide-in {\n from {\n opacity: 0;\n transform: scale(0.96) translateY(-8px);\n }\n to {\n opacity: 1;\n transform: scale(1) translateY(0);\n }\n}\n\nheader {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 16px 20px;\n border-bottom: 1px solid var(--border-subtle);\n flex-shrink: 0;\n}\n\n.label {\n flex: 1;\n font-size: var(--size-m, 1rem);\n font-weight: 500;\n margin: 0;\n color: var(--color-text-main);\n}\n\n.close-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 28px;\n height: 28px;\n padding: 0;\n border: none;\n border-radius: 4px;\n background: transparent;\n color: var(--color-text-muted);\n font-size: 18px;\n line-height: 1;\n cursor: pointer;\n transition: background 0.15s, color 0.15s;\n}\n\n.close-btn:hover {\n background: var(--border-subtle);\n color: var(--color-text-main);\n}\n\n.body {\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n}\n\nfooter {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 8px;\n padding: 12px 20px;\n border-top: 1px solid var(--border-subtle);\n flex-shrink: 0;\n}\n\n::slotted([data-align-left]) {\n margin-right: auto;\n}\n";
8
+ class Dialog extends AeicoComponent {
9
+ constructor() {
10
+ super(...arguments);
11
+ __publicField(this, "_dialogEl", null);
12
+ __publicField(this, "_hasFooter", false);
13
+ __publicField(this, "_handleDialogClick", (e) => {
14
+ const mouseEvent = e;
15
+ const path = mouseEvent.composedPath();
16
+ for (const el of path) {
17
+ if (el instanceof Element && el.hasAttribute("data-close")) {
18
+ this.close();
19
+ return;
20
+ }
21
+ if (el === this._dialogEl) break;
22
+ }
23
+ if (this.modal !== false && this.closeOnOverlayClick !== false) {
24
+ if (mouseEvent.target === this._dialogEl) {
25
+ const rect = this._dialogEl.getBoundingClientRect();
26
+ const outside = mouseEvent.clientX < rect.left || mouseEvent.clientX > rect.right || mouseEvent.clientY < rect.top || mouseEvent.clientY > rect.bottom;
27
+ if (outside) {
28
+ this.close();
29
+ }
30
+ }
31
+ }
32
+ });
33
+ __publicField(this, "_handleNativeClose", () => {
34
+ this.emit("close", { detail: { target: this } });
35
+ });
36
+ __publicField(this, "_handleFooterSlotChange", (e) => {
37
+ const slotEl = e.target;
38
+ const hasContent = slotEl.assignedElements().length > 0;
39
+ if (hasContent !== this._hasFooter) {
40
+ this._hasFooter = hasContent;
41
+ this.update();
42
+ }
43
+ });
44
+ }
45
+ render() {
46
+ return html(({ dialog, div, header, footer, span, button, slot }) => {
47
+ this._dialogEl = dialog(
48
+ {
49
+ "@click": this._handleDialogClick,
50
+ "@close": this._handleNativeClose,
51
+ style: {
52
+ width: this.width || "",
53
+ height: this.height || ""
54
+ }
55
+ },
56
+ () => {
57
+ if (this.header !== false) {
58
+ header({}, () => {
59
+ slot({ name: "header" }, () => {
60
+ span({ className: "label", textContent: this.label || "" });
61
+ });
62
+ if (this.closable !== false) {
63
+ button({
64
+ className: "close-btn",
65
+ textContent: "×",
66
+ "@click": () => this.close()
67
+ });
68
+ }
69
+ });
70
+ }
71
+ div({ className: "body" }, () => {
72
+ slot();
73
+ });
74
+ footer(
75
+ {
76
+ style: { display: this._hasFooter ? "" : "none" }
77
+ },
78
+ () => {
79
+ slot({ name: "footer", "@slotchange": this._handleFooterSlotChange });
80
+ }
81
+ );
82
+ }
83
+ );
84
+ });
85
+ }
86
+ open() {
87
+ if (!this._dialogEl) return;
88
+ if (this.modal !== false) {
89
+ this._dialogEl.showModal();
90
+ } else {
91
+ this._dialogEl.show();
92
+ }
93
+ this.emit("open", { detail: { target: this } });
94
+ }
95
+ close() {
96
+ var _a;
97
+ (_a = this._dialogEl) == null ? void 0 : _a.close();
98
+ }
99
+ isOpen() {
100
+ var _a;
101
+ return ((_a = this._dialogEl) == null ? void 0 : _a.open) ?? false;
102
+ }
103
+ }
104
+ __publicField(Dialog, "props", {
105
+ label: { type: String },
106
+ width: { type: String },
107
+ height: { type: String },
108
+ modal: { type: Boolean },
109
+ closable: { type: Boolean },
110
+ header: { type: Boolean },
111
+ closeOnOverlayClick: { type: Boolean }
112
+ });
113
+ __publicField(Dialog, "styles", [styleVariables, style]);
114
+ Dialog.register();
115
+ export {
116
+ Dialog as D
117
+ };
118
+ //# sourceMappingURL=dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog.js","sources":["../../src/dialog/dialog.ts"],"sourcesContent":["import type { InferProps, Props } from 'aeico';\nimport styleVariables from '../styles/variables.css?inline';\nimport style from '../styles/components/dialog.css?inline';\nimport AeicoComponent from '../aeico-component';\nimport { html } from 'aeico';\n\nclass Dialog extends AeicoComponent {\n static props: Props = {\n label: { type: String },\n width: { type: String },\n height: { type: String },\n modal: { type: Boolean },\n closable: { type: Boolean },\n header: { type: Boolean },\n closeOnOverlayClick: { type: Boolean },\n };\n\n declare label?: string;\n declare width?: string;\n declare height?: string;\n declare modal?: boolean;\n declare closable?: boolean;\n declare header?: boolean;\n declare closeOnOverlayClick?: boolean;\n\n protected static styles = [styleVariables, style];\n\n private _dialogEl: HTMLDialogElement | null = null;\n private _hasFooter = false;\n\n protected render() {\n return html(({ dialog, div, header, footer, span, button, slot }) => {\n this._dialogEl = dialog(\n {\n '@click': this._handleDialogClick,\n '@close': this._handleNativeClose,\n style: {\n width: this.width || '',\n height: this.height || '',\n },\n },\n () => {\n // Header\n if (this.header !== false) {\n header({}, () => {\n slot({ name: 'header' }, () => {\n span({ className: 'label', textContent: this.label || '' });\n });\n if (this.closable !== false) {\n button({\n className: 'close-btn',\n textContent: '×',\n '@click': () => this.close(),\n });\n }\n });\n }\n\n // Body\n div({ className: 'body' }, () => {\n slot();\n });\n\n // Footer — always rendered to capture slotchange, hidden when empty\n footer(\n {\n style: { display: this._hasFooter ? '' : 'none' },\n },\n () => {\n slot({ name: 'footer', '@slotchange': this._handleFooterSlotChange });\n },\n );\n },\n );\n });\n }\n\n private _handleDialogClick = (e: Event) => {\n const mouseEvent = e as MouseEvent;\n const path = mouseEvent.composedPath();\n\n // data-close: any slotted element with [data-close] closes the dialog\n for (const el of path) {\n if (el instanceof Element && el.hasAttribute('data-close')) {\n this.close();\n return;\n }\n if (el === this._dialogEl) break;\n }\n\n // Backdrop click (modal mode only)\n if (this.modal !== false && this.closeOnOverlayClick !== false) {\n if (mouseEvent.target === this._dialogEl) {\n const rect = this._dialogEl!.getBoundingClientRect();\n const outside =\n mouseEvent.clientX < rect.left ||\n mouseEvent.clientX > rect.right ||\n mouseEvent.clientY < rect.top ||\n mouseEvent.clientY > rect.bottom;\n if (outside) {\n this.close();\n }\n }\n }\n };\n\n private _handleNativeClose = () => {\n this.emit('close', { detail: { target: this } });\n };\n\n private _handleFooterSlotChange = (e: Event) => {\n const slotEl = e.target as HTMLSlotElement;\n const hasContent = slotEl.assignedElements().length > 0;\n if (hasContent !== this._hasFooter) {\n this._hasFooter = hasContent;\n this.update();\n }\n };\n\n open() {\n if (!this._dialogEl) return;\n if (this.modal !== false) {\n this._dialogEl.showModal();\n } else {\n this._dialogEl.show();\n }\n this.emit('open', { detail: { target: this } });\n }\n\n close() {\n this._dialogEl?.close();\n // emit('close') is handled by _handleNativeClose via the native 'close' event\n }\n\n isOpen(): boolean {\n return this._dialogEl?.open ?? false;\n }\n}\n\nDialog.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-dialog': Dialog;\n }\n}\n\nexport default Dialog;\nexport type DialogProps = InferProps<typeof Dialog>;\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ const aeicoComponent = require("./aeico-component.cjs");
3
+ const variables = require("./variables.cjs");
4
+ const color = require("./color.cjs");
5
+ const aeico = require("aeico");
6
+ const style = ":host {\n display: block;\n width: 100%;\n height: var(--thickness, 1px);\n flex-shrink: 0;\n\n /* Override colorCSS default --color-border from gray to the subtle border token */\n --color-border: var(--border-default);\n\n background: var(--color-border);\n}\n\n:host([vertical]) {\n display: inline-block;\n width: var(--thickness, 1px);\n height: 1lh;\n vertical-align: middle;\n}\n";
7
+ var __create = Object.create;
8
+ var __defProp = Object.defineProperty;
9
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
10
+ var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
11
+ var __typeError = (msg) => {
12
+ throw TypeError(msg);
13
+ };
14
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
15
+ var __decoratorStart = (base) => [, , , __create((base == null ? void 0 : base[__knownSymbol("metadata")]) ?? null)];
16
+ var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
17
+ var __expectFn = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn;
18
+ var __decoratorContext = (kind, name, done, metadata, fns) => ({ kind: __decoratorStrings[kind], name, metadata, addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null)) });
19
+ var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]);
20
+ var __runInitializers = (array, flags, self, value) => {
21
+ for (var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++) flags & 1 ? fns[i].call(self) : value = fns[i].call(self, value);
22
+ return value;
23
+ };
24
+ var __decorateElement = (array, flags, name, decorators, target, extra) => {
25
+ var fn, it, done, ctx, access, k = flags & 7, s = false, p = false;
26
+ var j = array.length + 1, key = __decoratorStrings[k + 5];
27
+ var initializers = array[j - 1] = [], extraInitializers = array[j] || (array[j] = []);
28
+ var desc = (target = target.prototype, __getOwnPropDesc({ get [name]() {
29
+ return __privateGet(this, extra);
30
+ }, set [name](x) {
31
+ return __privateSet(this, extra, x);
32
+ } }, name));
33
+ for (var i = decorators.length - 1; i >= 0; i--) {
34
+ ctx = __decoratorContext(k, name, done = {}, array[3], extraInitializers);
35
+ {
36
+ ctx.static = s, ctx.private = p, access = ctx.access = { has: (x) => name in x };
37
+ access.get = (x) => x[name];
38
+ access.set = (x, y) => x[name] = y;
39
+ }
40
+ it = (0, decorators[i])({ get: desc.get, set: desc.set }, ctx), done._ = 1;
41
+ if (it === void 0) __expectFn(it) && (desc[key] = it);
42
+ else if (typeof it !== "object" || it === null) __typeError("Object expected");
43
+ else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn);
44
+ }
45
+ return desc && __defProp(target, name, desc), target;
46
+ };
47
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
48
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
49
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), member.get(obj));
50
+ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
51
+ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), member.set(obj, value), value);
52
+ var _color_dec, _thickness_dec, _vertical_dec, _a, _init, _vertical, _thickness, _color;
53
+ class Divider extends (_a = aeicoComponent.AeicoComponent, _vertical_dec = [aeico.prop({ type: Boolean })], _thickness_dec = [aeico.prop({ type: String })], _color_dec = [aeico.prop({ type: String })], _a) {
54
+ constructor() {
55
+ super(...arguments);
56
+ __privateAdd(this, _vertical, __runInitializers(_init, 8, this, false)), __runInitializers(_init, 11, this);
57
+ __privateAdd(this, _thickness, __runInitializers(_init, 12, this)), __runInitializers(_init, 15, this);
58
+ __privateAdd(this, _color, __runInitializers(_init, 16, this)), __runInitializers(_init, 19, this);
59
+ }
60
+ render() {
61
+ if (this.thickness) {
62
+ this.style.setProperty("--thickness", this.thickness);
63
+ } else {
64
+ this.style.removeProperty("--thickness");
65
+ }
66
+ }
67
+ }
68
+ _init = __decoratorStart(_a);
69
+ _vertical = /* @__PURE__ */ new WeakMap();
70
+ _thickness = /* @__PURE__ */ new WeakMap();
71
+ _color = /* @__PURE__ */ new WeakMap();
72
+ __decorateElement(_init, 4, "vertical", _vertical_dec, Divider, _vertical);
73
+ __decorateElement(_init, 4, "thickness", _thickness_dec, Divider, _thickness);
74
+ __decorateElement(_init, 4, "color", _color_dec, Divider, _color);
75
+ __decoratorMetadata(_init, Divider);
76
+ __publicField(Divider, "tagName", "divider");
77
+ __publicField(Divider, "styles", [variables.styleVariables, color.colorCSS, style]);
78
+ Divider.register();
79
+ exports.Divider = Divider;
80
+ //# sourceMappingURL=divider.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"divider.cjs","sources":["../../src/divider/divider.ts"],"sourcesContent":["import AeicoComponent from '../aeico-component';\nimport type { InferProps } from 'aeico';\nimport styleVariables from '../styles/variables.css?inline';\nimport colorCSS from '../styles/color.css?inline';\nimport style from '../styles/components/divider.css?inline';\nimport { prop } from 'aeico';\n/**\n * A simple divider component that can be used to separate content. It supports both horizontal and vertical orientations, as well as customizable thickness and color.\n * @example\n * ```html\n * <ae-divider></ae-divider>\n * <ae-divider vertical></ae-divider>\n * <ae-divider thickness=\"4px\" color=\"primary\"></ae-divider>\n * ```\n * @props\n * - `vertical` (boolean): If true, the divider will be vertical. Default is false (horizontal).\n * - `thickness` (string): Custom thickness for the divider (e.g., \"2px\", \"0.5rem\"). If not provided, it will use the default thickness defined in CSS.\n * - `color` (string): Color variant for the divider (e.g., \"primary\", \"secondary\"). If not provided, it will use the default color defined in CSS.\n *\n * @csspart divider - The main divider element that can be styled.\n *\n * @cssproperty --thickness - Custom property to set the thickness of the divider when the `thickness` prop is used.\n */\nclass Divider extends AeicoComponent {\n static tagName = 'divider';\n\n @prop({ type: Boolean })\n accessor vertical: boolean = false;\n\n @prop({ type: String })\n accessor thickness: string | undefined;\n\n @prop({ type: String })\n accessor color: string | undefined;\n\n protected static styles = [styleVariables, colorCSS, style];\n\n protected render(): void {\n if (this.thickness) {\n this.style.setProperty('--thickness', this.thickness);\n } else {\n this.style.removeProperty('--thickness');\n }\n }\n}\n\nDivider.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-divider': Divider;\n }\n}\n\nexport default Divider;\nexport type DividerProps = InferProps<typeof Divider>;\n"],"names":["prop","styleVariables","colorCSS"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAA,YAAA,gBAAA,eAAA,IAAA,OAAA,WAAA,YAAA;AAuBA,MAAM,iBAAgB,oCAGpB,gBAAA,CAACA,MAAAA,KAAK,EAAE,MAAM,QAAA,CAAS,CAAA,GAGvB,iBAAA,CAACA,MAAAA,KAAK,EAAE,MAAM,OAAA,CAAQ,CAAA,GAGtB,aAAA,CAACA,WAAK,EAAE,MAAM,QAAQ,CAAA,GATF,IAAe;AAAA,EAArC,cAAA;AAAA,UAAA,GAAA,SAAA;AAIE,iBAAA,MAAS,WAAoB,kBAA7B,OAAA,GAAA,MAA6B,KAAA,CAAA,GAA7B,kBAAA,OAAA,IAAA,IAAA;AAGA,iBAAA,MAAS,YAAT,kBAAA,OAAA,IAAA,IAAA,CAAA,GAAA,kBAAA,OAAA,IAAA,IAAA;AAGA,iBAAA,MAAS,QAAT,kBAAA,OAAA,IAAA,IAAA,CAAA,GAAA,kBAAA,OAAA,IAAA,IAAA;AAAA,EAAA;AAAA,EAIU,SAAe;AACvB,QAAI,KAAK,WAAW;AAClB,WAAK,MAAM,YAAY,eAAe,KAAK,SAAS;AAAA,IACtD,OAAO;AACL,WAAK,MAAM,eAAe,aAAa;AAAA,IACzC;AAAA,EACF;AACF;AArBA,QAAA,iBAAA,EAAA;AAIW,YAAA,oBAAA,QAAA;AAGA,aAAA,oBAAA,QAAA;AAGA,SAAA,oBAAA,QAAA;AANT,kBAAA,OAAA,GAAS,YADT,eAHI,SAIK,SAAA;AAGT,kBAAA,OAAA,GAAS,aADT,gBANI,SAOK,UAAA;AAGT,kBAAA,OAAA,GAAS,SADT,YATI,SAUK,MAAA;AAVX,oBAAA,OAAM,OAAA;AACJ,cADI,SACG,WAAU,SAAA;AAWjB,cAZI,SAYa,UAAS,CAACC,UAAAA,gBAAgBC,MAAAA,UAAU,KAAK,CAAA;AAW5D,QAAQ,SAAA;;"}
@@ -0,0 +1,81 @@
1
+ import { A as AeicoComponent } from "./aeico-component.js";
2
+ import { s as styleVariables } from "./variables.js";
3
+ import { c as colorCSS } from "./color.js";
4
+ import { prop } from "aeico";
5
+ const style = ":host {\n display: block;\n width: 100%;\n height: var(--thickness, 1px);\n flex-shrink: 0;\n\n /* Override colorCSS default --color-border from gray to the subtle border token */\n --color-border: var(--border-default);\n\n background: var(--color-border);\n}\n\n:host([vertical]) {\n display: inline-block;\n width: var(--thickness, 1px);\n height: 1lh;\n vertical-align: middle;\n}\n";
6
+ var __create = Object.create;
7
+ var __defProp = Object.defineProperty;
8
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
9
+ var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
10
+ var __typeError = (msg) => {
11
+ throw TypeError(msg);
12
+ };
13
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
14
+ var __decoratorStart = (base) => [, , , __create((base == null ? void 0 : base[__knownSymbol("metadata")]) ?? null)];
15
+ var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
16
+ var __expectFn = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn;
17
+ var __decoratorContext = (kind, name, done, metadata, fns) => ({ kind: __decoratorStrings[kind], name, metadata, addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null)) });
18
+ var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]);
19
+ var __runInitializers = (array, flags, self, value) => {
20
+ for (var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++) flags & 1 ? fns[i].call(self) : value = fns[i].call(self, value);
21
+ return value;
22
+ };
23
+ var __decorateElement = (array, flags, name, decorators, target, extra) => {
24
+ var fn, it, done, ctx, access, k = flags & 7, s = false, p = false;
25
+ var j = array.length + 1, key = __decoratorStrings[k + 5];
26
+ var initializers = array[j - 1] = [], extraInitializers = array[j] || (array[j] = []);
27
+ var desc = (target = target.prototype, __getOwnPropDesc({ get [name]() {
28
+ return __privateGet(this, extra);
29
+ }, set [name](x) {
30
+ return __privateSet(this, extra, x);
31
+ } }, name));
32
+ for (var i = decorators.length - 1; i >= 0; i--) {
33
+ ctx = __decoratorContext(k, name, done = {}, array[3], extraInitializers);
34
+ {
35
+ ctx.static = s, ctx.private = p, access = ctx.access = { has: (x) => name in x };
36
+ access.get = (x) => x[name];
37
+ access.set = (x, y) => x[name] = y;
38
+ }
39
+ it = (0, decorators[i])({ get: desc.get, set: desc.set }, ctx), done._ = 1;
40
+ if (it === void 0) __expectFn(it) && (desc[key] = it);
41
+ else if (typeof it !== "object" || it === null) __typeError("Object expected");
42
+ else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn);
43
+ }
44
+ return desc && __defProp(target, name, desc), target;
45
+ };
46
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
47
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
48
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), member.get(obj));
49
+ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
50
+ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), member.set(obj, value), value);
51
+ var _color_dec, _thickness_dec, _vertical_dec, _a, _init, _vertical, _thickness, _color;
52
+ class Divider extends (_a = AeicoComponent, _vertical_dec = [prop({ type: Boolean })], _thickness_dec = [prop({ type: String })], _color_dec = [prop({ type: String })], _a) {
53
+ constructor() {
54
+ super(...arguments);
55
+ __privateAdd(this, _vertical, __runInitializers(_init, 8, this, false)), __runInitializers(_init, 11, this);
56
+ __privateAdd(this, _thickness, __runInitializers(_init, 12, this)), __runInitializers(_init, 15, this);
57
+ __privateAdd(this, _color, __runInitializers(_init, 16, this)), __runInitializers(_init, 19, this);
58
+ }
59
+ render() {
60
+ if (this.thickness) {
61
+ this.style.setProperty("--thickness", this.thickness);
62
+ } else {
63
+ this.style.removeProperty("--thickness");
64
+ }
65
+ }
66
+ }
67
+ _init = __decoratorStart(_a);
68
+ _vertical = /* @__PURE__ */ new WeakMap();
69
+ _thickness = /* @__PURE__ */ new WeakMap();
70
+ _color = /* @__PURE__ */ new WeakMap();
71
+ __decorateElement(_init, 4, "vertical", _vertical_dec, Divider, _vertical);
72
+ __decorateElement(_init, 4, "thickness", _thickness_dec, Divider, _thickness);
73
+ __decorateElement(_init, 4, "color", _color_dec, Divider, _color);
74
+ __decoratorMetadata(_init, Divider);
75
+ __publicField(Divider, "tagName", "divider");
76
+ __publicField(Divider, "styles", [styleVariables, colorCSS, style]);
77
+ Divider.register();
78
+ export {
79
+ Divider as D
80
+ };
81
+ //# sourceMappingURL=divider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"divider.js","sources":["../../src/divider/divider.ts"],"sourcesContent":["import AeicoComponent from '../aeico-component';\nimport type { InferProps } from 'aeico';\nimport styleVariables from '../styles/variables.css?inline';\nimport colorCSS from '../styles/color.css?inline';\nimport style from '../styles/components/divider.css?inline';\nimport { prop } from 'aeico';\n/**\n * A simple divider component that can be used to separate content. It supports both horizontal and vertical orientations, as well as customizable thickness and color.\n * @example\n * ```html\n * <ae-divider></ae-divider>\n * <ae-divider vertical></ae-divider>\n * <ae-divider thickness=\"4px\" color=\"primary\"></ae-divider>\n * ```\n * @props\n * - `vertical` (boolean): If true, the divider will be vertical. Default is false (horizontal).\n * - `thickness` (string): Custom thickness for the divider (e.g., \"2px\", \"0.5rem\"). If not provided, it will use the default thickness defined in CSS.\n * - `color` (string): Color variant for the divider (e.g., \"primary\", \"secondary\"). If not provided, it will use the default color defined in CSS.\n *\n * @csspart divider - The main divider element that can be styled.\n *\n * @cssproperty --thickness - Custom property to set the thickness of the divider when the `thickness` prop is used.\n */\nclass Divider extends AeicoComponent {\n static tagName = 'divider';\n\n @prop({ type: Boolean })\n accessor vertical: boolean = false;\n\n @prop({ type: String })\n accessor thickness: string | undefined;\n\n @prop({ type: String })\n accessor color: string | undefined;\n\n protected static styles = [styleVariables, colorCSS, style];\n\n protected render(): void {\n if (this.thickness) {\n this.style.setProperty('--thickness', this.thickness);\n } else {\n this.style.removeProperty('--thickness');\n }\n }\n}\n\nDivider.register();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ae-divider': Divider;\n }\n}\n\nexport default Divider;\nexport type DividerProps = InferProps<typeof Divider>;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAA,YAAA,gBAAA,eAAA,IAAA,OAAA,WAAA,YAAA;AAuBA,MAAM,iBAAgB,qBAGpB,gBAAA,CAAC,KAAK,EAAE,MAAM,QAAA,CAAS,CAAA,GAGvB,iBAAA,CAAC,KAAK,EAAE,MAAM,OAAA,CAAQ,CAAA,GAGtB,aAAA,CAAC,KAAK,EAAE,MAAM,QAAQ,CAAA,GATF,IAAe;AAAA,EAArC,cAAA;AAAA,UAAA,GAAA,SAAA;AAIE,iBAAA,MAAS,WAAoB,kBAA7B,OAAA,GAAA,MAA6B,KAAA,CAAA,GAA7B,kBAAA,OAAA,IAAA,IAAA;AAGA,iBAAA,MAAS,YAAT,kBAAA,OAAA,IAAA,IAAA,CAAA,GAAA,kBAAA,OAAA,IAAA,IAAA;AAGA,iBAAA,MAAS,QAAT,kBAAA,OAAA,IAAA,IAAA,CAAA,GAAA,kBAAA,OAAA,IAAA,IAAA;AAAA,EAAA;AAAA,EAIU,SAAe;AACvB,QAAI,KAAK,WAAW;AAClB,WAAK,MAAM,YAAY,eAAe,KAAK,SAAS;AAAA,IACtD,OAAO;AACL,WAAK,MAAM,eAAe,aAAa;AAAA,IACzC;AAAA,EACF;AACF;AArBA,QAAA,iBAAA,EAAA;AAIW,YAAA,oBAAA,QAAA;AAGA,aAAA,oBAAA,QAAA;AAGA,SAAA,oBAAA,QAAA;AANT,kBAAA,OAAA,GAAS,YADT,eAHI,SAIK,SAAA;AAGT,kBAAA,OAAA,GAAS,aADT,gBANI,SAOK,UAAA;AAGT,kBAAA,OAAA,GAAS,SADT,YATI,SAUK,MAAA;AAVX,oBAAA,OAAM,OAAA;AACJ,cADI,SACG,WAAU,SAAA;AAWjB,cAZI,SAYa,UAAS,CAAC,gBAAgB,UAAU,KAAK,CAAA;AAW5D,QAAQ,SAAA;"}