@nuralyui/layout 0.0.1 → 0.1.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 (143) hide show
  1. package/README.md +77 -0
  2. package/dist/LICENSE +28 -0
  3. package/dist/README.md +77 -0
  4. package/dist/VERSIONS.md +13 -0
  5. package/dist/card/card.component.d.ts +30 -0
  6. package/dist/card/card.component.d.ts.map +1 -0
  7. package/dist/card/card.component.js +64 -0
  8. package/dist/card/card.component.js.map +1 -0
  9. package/dist/card/card.style.d.ts +2 -0
  10. package/dist/card/card.style.d.ts.map +1 -0
  11. package/dist/card/card.style.js +62 -0
  12. package/dist/card/card.style.js.map +1 -0
  13. package/dist/card/card.type.d.ts +6 -0
  14. package/dist/card/card.type.d.ts.map +1 -0
  15. package/dist/card/card.type.js +2 -0
  16. package/dist/card/card.type.js.map +1 -0
  17. package/dist/card/card.types.d.ts +17 -0
  18. package/dist/card/card.types.d.ts.map +1 -0
  19. package/dist/card/card.types.js +2 -0
  20. package/dist/card/card.types.js.map +1 -0
  21. package/dist/card/demo/hy-card-demo.d.ts +8 -0
  22. package/dist/card/demo/hy-card-demo.d.ts.map +1 -0
  23. package/dist/card/demo/hy-card-demo.js +44 -0
  24. package/dist/card/demo/hy-card-demo.js.map +1 -0
  25. package/dist/card/index.d.ts +3 -0
  26. package/dist/card/index.d.ts.map +1 -0
  27. package/dist/card/index.js +3 -0
  28. package/dist/card/index.js.map +1 -0
  29. package/dist/card/package.json +26 -0
  30. package/dist/card/react.d.ts +5 -0
  31. package/dist/card/react.d.ts.map +1 -0
  32. package/dist/card/react.js +12 -0
  33. package/dist/card/react.js.map +1 -0
  34. package/dist/flex/flex.component.d.ts +89 -0
  35. package/dist/flex/flex.component.d.ts.map +1 -0
  36. package/dist/flex/flex.component.js +178 -0
  37. package/dist/flex/flex.component.js.map +1 -0
  38. package/dist/flex/flex.style.d.ts +6 -0
  39. package/dist/flex/flex.style.d.ts.map +1 -0
  40. package/dist/flex/flex.style.js +101 -0
  41. package/dist/flex/flex.style.js.map +1 -0
  42. package/dist/flex/flex.types.d.ts +63 -0
  43. package/dist/flex/flex.types.d.ts.map +1 -0
  44. package/dist/flex/flex.types.js +5 -0
  45. package/dist/flex/flex.types.js.map +1 -0
  46. package/dist/flex/index.d.ts +3 -0
  47. package/dist/flex/index.d.ts.map +1 -0
  48. package/dist/flex/index.js +3 -0
  49. package/dist/flex/index.js.map +1 -0
  50. package/dist/flex/package.json +49 -0
  51. package/dist/flex/react.d.ts +3 -0
  52. package/dist/flex/react.d.ts.map +1 -0
  53. package/dist/flex/react.js +10 -0
  54. package/dist/flex/react.js.map +1 -0
  55. package/dist/grid/col.component.d.ts +103 -0
  56. package/dist/grid/col.component.d.ts.map +1 -0
  57. package/dist/grid/col.component.js +253 -0
  58. package/dist/grid/col.component.js.map +1 -0
  59. package/dist/grid/col.style.d.ts +6 -0
  60. package/dist/grid/col.style.d.ts.map +1 -0
  61. package/dist/grid/col.style.js +117 -0
  62. package/dist/grid/col.style.js.map +1 -0
  63. package/dist/grid/grid.types.d.ts +80 -0
  64. package/dist/grid/grid.types.d.ts.map +1 -0
  65. package/dist/grid/grid.types.js +16 -0
  66. package/dist/grid/grid.types.js.map +1 -0
  67. package/dist/grid/index.d.ts +4 -0
  68. package/dist/grid/index.d.ts.map +1 -0
  69. package/dist/grid/index.js +4 -0
  70. package/dist/grid/index.js.map +1 -0
  71. package/dist/grid/package.json +52 -0
  72. package/dist/grid/react.d.ts +5 -0
  73. package/dist/grid/react.d.ts.map +1 -0
  74. package/dist/grid/react.js +17 -0
  75. package/dist/grid/react.js.map +1 -0
  76. package/dist/grid/row.component.d.ts +83 -0
  77. package/dist/grid/row.component.d.ts.map +1 -0
  78. package/dist/grid/row.component.js +197 -0
  79. package/dist/grid/row.component.js.map +1 -0
  80. package/dist/grid/row.style.d.ts +6 -0
  81. package/dist/grid/row.style.d.ts.map +1 -0
  82. package/dist/grid/row.style.js +68 -0
  83. package/dist/grid/row.style.js.map +1 -0
  84. package/dist/index.d.ts +4 -0
  85. package/dist/index.js +4 -0
  86. package/dist/layout/content.component.d.ts.map +1 -0
  87. package/dist/layout/content.component.js.map +1 -0
  88. package/dist/layout/content.style.d.ts.map +1 -0
  89. package/dist/layout/content.style.js.map +1 -0
  90. package/dist/layout/footer.component.d.ts.map +1 -0
  91. package/dist/layout/footer.component.js.map +1 -0
  92. package/dist/layout/footer.style.d.ts.map +1 -0
  93. package/dist/layout/footer.style.js.map +1 -0
  94. package/dist/layout/header.component.d.ts.map +1 -0
  95. package/dist/layout/header.component.js.map +1 -0
  96. package/dist/layout/header.style.d.ts.map +1 -0
  97. package/dist/layout/header.style.js.map +1 -0
  98. package/dist/layout/index.d.ts.map +1 -0
  99. package/dist/layout/index.js.map +1 -0
  100. package/dist/layout/layout.component.d.ts.map +1 -0
  101. package/dist/layout/layout.component.js.map +1 -0
  102. package/dist/layout/layout.style.d.ts.map +1 -0
  103. package/dist/layout/layout.style.js.map +1 -0
  104. package/dist/layout/layout.types.d.ts.map +1 -0
  105. package/dist/layout/layout.types.js.map +1 -0
  106. package/dist/layout/package.json +38 -0
  107. package/dist/layout/react.d.ts.map +1 -0
  108. package/dist/layout/react.js.map +1 -0
  109. package/dist/layout/sider.component.d.ts.map +1 -0
  110. package/dist/layout/sider.component.js.map +1 -0
  111. package/dist/layout/sider.style.d.ts.map +1 -0
  112. package/dist/layout/sider.style.js.map +1 -0
  113. package/dist/react.d.ts +4 -0
  114. package/dist/react.js +4 -0
  115. package/dist/versions.json +6 -0
  116. package/package.json +73 -34
  117. package/bundle.js +0 -297
  118. /package/{content.component.d.ts → dist/layout/content.component.d.ts} +0 -0
  119. /package/{content.component.js → dist/layout/content.component.js} +0 -0
  120. /package/{content.style.d.ts → dist/layout/content.style.d.ts} +0 -0
  121. /package/{content.style.js → dist/layout/content.style.js} +0 -0
  122. /package/{footer.component.d.ts → dist/layout/footer.component.d.ts} +0 -0
  123. /package/{footer.component.js → dist/layout/footer.component.js} +0 -0
  124. /package/{footer.style.d.ts → dist/layout/footer.style.d.ts} +0 -0
  125. /package/{footer.style.js → dist/layout/footer.style.js} +0 -0
  126. /package/{header.component.d.ts → dist/layout/header.component.d.ts} +0 -0
  127. /package/{header.component.js → dist/layout/header.component.js} +0 -0
  128. /package/{header.style.d.ts → dist/layout/header.style.d.ts} +0 -0
  129. /package/{header.style.js → dist/layout/header.style.js} +0 -0
  130. /package/{index.d.ts → dist/layout/index.d.ts} +0 -0
  131. /package/{index.js → dist/layout/index.js} +0 -0
  132. /package/{layout.component.d.ts → dist/layout/layout.component.d.ts} +0 -0
  133. /package/{layout.component.js → dist/layout/layout.component.js} +0 -0
  134. /package/{layout.style.d.ts → dist/layout/layout.style.d.ts} +0 -0
  135. /package/{layout.style.js → dist/layout/layout.style.js} +0 -0
  136. /package/{layout.types.d.ts → dist/layout/layout.types.d.ts} +0 -0
  137. /package/{layout.types.js → dist/layout/layout.types.js} +0 -0
  138. /package/{react.d.ts → dist/layout/react.d.ts} +0 -0
  139. /package/{react.js → dist/layout/react.js} +0 -0
  140. /package/{sider.component.d.ts → dist/layout/sider.component.d.ts} +0 -0
  141. /package/{sider.component.js → dist/layout/sider.component.js} +0 -0
  142. /package/{sider.style.d.ts → dist/layout/sider.style.d.ts} +0 -0
  143. /package/{sider.style.js → dist/layout/sider.style.js} +0 -0
@@ -0,0 +1,103 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Nuraly, Laabidi Aymen
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import { LitElement } from 'lit';
7
+ import { ColSize, FlexType } from './grid.types.js';
8
+ declare const NrColElement_base: (new (...args: any[]) => import("../../shared/dependency-mixin.js").DependencyAware) & (new (...args: any[]) => import("../../shared/theme-mixin.js").ThemeAware) & (new (...args: any[]) => import("../../shared/event-handler-mixin.js").EventHandlerCapable) & typeof LitElement;
9
+ /**
10
+ * Column component for grid layout system
11
+ *
12
+ * @example
13
+ * ```html
14
+ * <!-- Basic column with span -->
15
+ * <nr-col span="12">Half width</nr-col>
16
+ * <nr-col span="8">8/24 width</nr-col>
17
+ *
18
+ * <!-- Column with offset -->
19
+ * <nr-col span="12" offset="6">Offset by 6</nr-col>
20
+ *
21
+ * <!-- Responsive column -->
22
+ * <nr-col
23
+ * xs="24"
24
+ * sm="12"
25
+ * md="8"
26
+ * lg="6"
27
+ * >Responsive</nr-col>
28
+ *
29
+ * <!-- Column with order -->
30
+ * <nr-col span="6" order="4">Last</nr-col>
31
+ * <nr-col span="6" order="1">First</nr-col>
32
+ *
33
+ * <!-- Flex column -->
34
+ * <nr-col flex="auto">Auto flex</nr-col>
35
+ * <nr-col flex="1">Flex 1</nr-col>
36
+ * ```
37
+ *
38
+ * @slot default - Column content
39
+ */
40
+ export declare class NrColElement extends NrColElement_base {
41
+ static styles: import("lit").CSSResult;
42
+ /** Number of columns to span (out of 24) */
43
+ span?: number;
44
+ /** Number of columns to offset */
45
+ offset: number;
46
+ /** Order of the column */
47
+ order?: number;
48
+ /** Number of columns to pull */
49
+ pull: number;
50
+ /** Number of columns to push */
51
+ push: number;
52
+ /** Flex layout style */
53
+ flex: FlexType | '';
54
+ /** Extra small devices (<576px) */
55
+ xs?: number | ColSize;
56
+ /** Small devices (≥576px) */
57
+ sm?: number | ColSize;
58
+ /** Medium devices (≥768px) */
59
+ md?: number | ColSize;
60
+ /** Large devices (≥992px) */
61
+ lg?: number | ColSize;
62
+ /** Extra large devices (≥1200px) */
63
+ xl?: number | ColSize;
64
+ /** Extra extra large devices (≥1600px) */
65
+ xxl?: number | ColSize;
66
+ /** Current breakpoint */
67
+ private currentBreakpoint;
68
+ private resizeObserver?;
69
+ connectedCallback(): void;
70
+ disconnectedCallback(): void;
71
+ /**
72
+ * Setup responsive breakpoint detection
73
+ */
74
+ private setupResponsive;
75
+ /**
76
+ * Update current breakpoint based on window width
77
+ */
78
+ private updateBreakpoint;
79
+ /**
80
+ * Get responsive configuration for current breakpoint
81
+ */
82
+ private getResponsiveConfig;
83
+ /**
84
+ * Get computed column properties
85
+ */
86
+ private getColProperties;
87
+ /**
88
+ * Get gutter from parent row
89
+ */
90
+ private getGutterFromParent;
91
+ /**
92
+ * Get inline styles for column
93
+ */
94
+ private getColStyle;
95
+ render(): import("lit").TemplateResult<1>;
96
+ }
97
+ declare global {
98
+ interface HTMLElementTagNameMap {
99
+ 'nr-col': NrColElement;
100
+ }
101
+ }
102
+ export {};
103
+ //# sourceMappingURL=col.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"col.component.d.ts","sourceRoot":"","sources":["../../../src/components/grid/col.component.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AAIvC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAA6C,MAAM,iBAAiB,CAAC;;AAE/F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBACa,YAAa,SAAQ,iBAA6B;IAC7D,OAAgB,MAAM,0BAAU;IAEhC,4CAA4C;IAE5C,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,kCAAkC;IAElC,MAAM,SAAK;IAEX,0BAA0B;IAE1B,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,gCAAgC;IAEhC,IAAI,SAAK;IAET,gCAAgC;IAEhC,IAAI,SAAK;IAET,wBAAwB;IAExB,IAAI,EAAE,QAAQ,GAAG,EAAE,CAAgB;IAEnC,mCAAmC;IAEnC,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAEtB,6BAA6B;IAE7B,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAEtB,8BAA8B;IAE9B,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAEtB,6BAA6B;IAE7B,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAEtB,oCAAoC;IAEpC,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAEtB,0CAA0C;IAE1C,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAEvB,yBAAyB;IAEzB,OAAO,CAAC,iBAAiB,CAAqC;IAE9D,OAAO,CAAC,cAAc,CAAC,CAAiB;IAE/B,iBAAiB;IAKjB,oBAAoB;IAK7B;;OAEG;IACH,OAAO,CAAC,eAAe;IAUvB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAuBxB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAuB3B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAYxB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAS3B;;OAEG;IACH,OAAO,CAAC,WAAW;IAwBV,MAAM;CAyBhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,QAAQ,EAAE,YAAY,CAAC;KACxB;CACF"}
@@ -0,0 +1,253 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Nuraly, Laabidi Aymen
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
7
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
8
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
9
+ 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;
10
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
11
+ };
12
+ import { html, LitElement } from 'lit';
13
+ import { customElement, property, state } from 'lit/decorators.js';
14
+ import { styles } from './col.style.js';
15
+ import { NuralyUIBaseMixin } from '../../shared/base-mixin.js';
16
+ import { BREAKPOINTS, EMPTY_STRING } from './grid.types.js';
17
+ /**
18
+ * Column component for grid layout system
19
+ *
20
+ * @example
21
+ * ```html
22
+ * <!-- Basic column with span -->
23
+ * <nr-col span="12">Half width</nr-col>
24
+ * <nr-col span="8">8/24 width</nr-col>
25
+ *
26
+ * <!-- Column with offset -->
27
+ * <nr-col span="12" offset="6">Offset by 6</nr-col>
28
+ *
29
+ * <!-- Responsive column -->
30
+ * <nr-col
31
+ * xs="24"
32
+ * sm="12"
33
+ * md="8"
34
+ * lg="6"
35
+ * >Responsive</nr-col>
36
+ *
37
+ * <!-- Column with order -->
38
+ * <nr-col span="6" order="4">Last</nr-col>
39
+ * <nr-col span="6" order="1">First</nr-col>
40
+ *
41
+ * <!-- Flex column -->
42
+ * <nr-col flex="auto">Auto flex</nr-col>
43
+ * <nr-col flex="1">Flex 1</nr-col>
44
+ * ```
45
+ *
46
+ * @slot default - Column content
47
+ */
48
+ let NrColElement = class NrColElement extends NuralyUIBaseMixin(LitElement) {
49
+ constructor() {
50
+ super(...arguments);
51
+ /** Number of columns to offset */
52
+ this.offset = 0;
53
+ /** Number of columns to pull */
54
+ this.pull = 0;
55
+ /** Number of columns to push */
56
+ this.push = 0;
57
+ /** Flex layout style */
58
+ this.flex = EMPTY_STRING;
59
+ /** Current breakpoint */
60
+ this.currentBreakpoint = "xs" /* GridBreakpoint.XS */;
61
+ }
62
+ connectedCallback() {
63
+ super.connectedCallback();
64
+ this.setupResponsive();
65
+ }
66
+ disconnectedCallback() {
67
+ var _a;
68
+ super.disconnectedCallback();
69
+ (_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
70
+ }
71
+ /**
72
+ * Setup responsive breakpoint detection
73
+ */
74
+ setupResponsive() {
75
+ this.updateBreakpoint();
76
+ this.resizeObserver = new ResizeObserver(() => {
77
+ this.updateBreakpoint();
78
+ });
79
+ this.resizeObserver.observe(document.documentElement);
80
+ }
81
+ /**
82
+ * Update current breakpoint based on window width
83
+ */
84
+ updateBreakpoint() {
85
+ const width = window.innerWidth;
86
+ let newBreakpoint;
87
+ if (width >= BREAKPOINTS.xxl) {
88
+ newBreakpoint = "xxl" /* GridBreakpoint.XXL */;
89
+ }
90
+ else if (width >= BREAKPOINTS.xl) {
91
+ newBreakpoint = "xl" /* GridBreakpoint.XL */;
92
+ }
93
+ else if (width >= BREAKPOINTS.lg) {
94
+ newBreakpoint = "lg" /* GridBreakpoint.LG */;
95
+ }
96
+ else if (width >= BREAKPOINTS.md) {
97
+ newBreakpoint = "md" /* GridBreakpoint.MD */;
98
+ }
99
+ else if (width >= BREAKPOINTS.sm) {
100
+ newBreakpoint = "sm" /* GridBreakpoint.SM */;
101
+ }
102
+ else {
103
+ newBreakpoint = "xs" /* GridBreakpoint.XS */;
104
+ }
105
+ if (newBreakpoint !== this.currentBreakpoint) {
106
+ this.currentBreakpoint = newBreakpoint;
107
+ }
108
+ }
109
+ /**
110
+ * Get responsive configuration for current breakpoint
111
+ */
112
+ getResponsiveConfig() {
113
+ const breakpoints = [
114
+ this.currentBreakpoint,
115
+ "xl" /* GridBreakpoint.XL */,
116
+ "lg" /* GridBreakpoint.LG */,
117
+ "md" /* GridBreakpoint.MD */,
118
+ "sm" /* GridBreakpoint.SM */,
119
+ "xs" /* GridBreakpoint.XS */
120
+ ];
121
+ for (const bp of breakpoints) {
122
+ const value = this[bp];
123
+ if (value !== undefined) {
124
+ if (typeof value === 'number') {
125
+ return { span: value };
126
+ }
127
+ return value;
128
+ }
129
+ }
130
+ return {};
131
+ }
132
+ /**
133
+ * Get computed column properties
134
+ */
135
+ getColProperties() {
136
+ var _a, _b, _c, _d, _e;
137
+ const responsive = this.getResponsiveConfig();
138
+ return {
139
+ span: (_a = responsive.span) !== null && _a !== void 0 ? _a : this.span,
140
+ offset: (_b = responsive.offset) !== null && _b !== void 0 ? _b : this.offset,
141
+ order: (_c = responsive.order) !== null && _c !== void 0 ? _c : this.order,
142
+ pull: (_d = responsive.pull) !== null && _d !== void 0 ? _d : this.pull,
143
+ push: (_e = responsive.push) !== null && _e !== void 0 ? _e : this.push
144
+ };
145
+ }
146
+ /**
147
+ * Get gutter from parent row
148
+ */
149
+ getGutterFromParent() {
150
+ const parent = this.closest('nr-row');
151
+ if (parent) {
152
+ const gutter = parent.getAttribute('data-gutter');
153
+ return gutter ? parseInt(gutter, 10) : 0;
154
+ }
155
+ return 0;
156
+ }
157
+ /**
158
+ * Get inline styles for column
159
+ */
160
+ getColStyle() {
161
+ const styles = {};
162
+ const gutter = this.getGutterFromParent();
163
+ if (gutter > 0) {
164
+ styles['padding-left'] = `${gutter / 2}px`;
165
+ styles['padding-right'] = `${gutter / 2}px`;
166
+ }
167
+ if (this.flex) {
168
+ if (this.flex === 'auto') {
169
+ styles['flex'] = '1 1 auto';
170
+ }
171
+ else if (this.flex === 'none') {
172
+ styles['flex'] = '0 0 auto';
173
+ }
174
+ else if (typeof this.flex === 'number') {
175
+ styles['flex'] = `${this.flex} ${this.flex} auto`;
176
+ }
177
+ else {
178
+ styles['flex'] = this.flex;
179
+ }
180
+ }
181
+ return styles;
182
+ }
183
+ render() {
184
+ var _a;
185
+ const colStyle = this.getColStyle();
186
+ const props = this.getColProperties();
187
+ // Apply data attributes to :host for proper styling
188
+ this.setAttribute('data-span', ((_a = props.span) === null || _a === void 0 ? void 0 : _a.toString()) || '');
189
+ this.setAttribute('data-offset', props.offset.toString());
190
+ if (props.order !== undefined) {
191
+ this.setAttribute('data-order', props.order.toString());
192
+ }
193
+ else {
194
+ this.removeAttribute('data-order');
195
+ }
196
+ this.setAttribute('data-pull', props.pull.toString());
197
+ this.setAttribute('data-push', props.push.toString());
198
+ this.setAttribute('data-theme', this.currentTheme);
199
+ return html `
200
+ <div
201
+ class="nr-col"
202
+ style="${Object.entries(colStyle).map(([key, value]) => `${key}: ${value}`).join('; ')}"
203
+ >
204
+ <slot></slot>
205
+ </div>
206
+ `;
207
+ }
208
+ };
209
+ NrColElement.styles = styles;
210
+ __decorate([
211
+ property({ type: Number })
212
+ ], NrColElement.prototype, "span", void 0);
213
+ __decorate([
214
+ property({ type: Number })
215
+ ], NrColElement.prototype, "offset", void 0);
216
+ __decorate([
217
+ property({ type: Number })
218
+ ], NrColElement.prototype, "order", void 0);
219
+ __decorate([
220
+ property({ type: Number })
221
+ ], NrColElement.prototype, "pull", void 0);
222
+ __decorate([
223
+ property({ type: Number })
224
+ ], NrColElement.prototype, "push", void 0);
225
+ __decorate([
226
+ property({ type: String })
227
+ ], NrColElement.prototype, "flex", void 0);
228
+ __decorate([
229
+ property({ type: Object })
230
+ ], NrColElement.prototype, "xs", void 0);
231
+ __decorate([
232
+ property({ type: Object })
233
+ ], NrColElement.prototype, "sm", void 0);
234
+ __decorate([
235
+ property({ type: Object })
236
+ ], NrColElement.prototype, "md", void 0);
237
+ __decorate([
238
+ property({ type: Object })
239
+ ], NrColElement.prototype, "lg", void 0);
240
+ __decorate([
241
+ property({ type: Object })
242
+ ], NrColElement.prototype, "xl", void 0);
243
+ __decorate([
244
+ property({ type: Object })
245
+ ], NrColElement.prototype, "xxl", void 0);
246
+ __decorate([
247
+ state()
248
+ ], NrColElement.prototype, "currentBreakpoint", void 0);
249
+ NrColElement = __decorate([
250
+ customElement('nr-col')
251
+ ], NrColElement);
252
+ export { NrColElement };
253
+ //# sourceMappingURL=col.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"col.component.js","sourceRoot":"","sources":["../../../src/components/grid/col.component.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright 2023 Nuraly, Laabidi Aymen\n * SPDX-License-Identifier: MIT\n */\n\nimport { html, LitElement } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { styles } from './col.style.js';\nimport { NuralyUIBaseMixin } from '../../shared/base-mixin.js';\nimport { ColSize, FlexType, GridBreakpoint, BREAKPOINTS, EMPTY_STRING } from './grid.types.js';\n\n/**\n * Column component for grid layout system\n * \n * @example\n * ```html\n * <!-- Basic column with span -->\n * <nr-col span=\"12\">Half width</nr-col>\n * <nr-col span=\"8\">8/24 width</nr-col>\n * \n * <!-- Column with offset -->\n * <nr-col span=\"12\" offset=\"6\">Offset by 6</nr-col>\n * \n * <!-- Responsive column -->\n * <nr-col \n * xs=\"24\" \n * sm=\"12\" \n * md=\"8\" \n * lg=\"6\"\n * >Responsive</nr-col>\n * \n * <!-- Column with order -->\n * <nr-col span=\"6\" order=\"4\">Last</nr-col>\n * <nr-col span=\"6\" order=\"1\">First</nr-col>\n * \n * <!-- Flex column -->\n * <nr-col flex=\"auto\">Auto flex</nr-col>\n * <nr-col flex=\"1\">Flex 1</nr-col>\n * ```\n * \n * @slot default - Column content\n */\n@customElement('nr-col')\nexport class NrColElement extends NuralyUIBaseMixin(LitElement) {\n static override styles = styles;\n\n /** Number of columns to span (out of 24) */\n @property({ type: Number })\n span?: number;\n\n /** Number of columns to offset */\n @property({ type: Number })\n offset = 0;\n\n /** Order of the column */\n @property({ type: Number })\n order?: number;\n\n /** Number of columns to pull */\n @property({ type: Number })\n pull = 0;\n\n /** Number of columns to push */\n @property({ type: Number })\n push = 0;\n\n /** Flex layout style */\n @property({ type: String })\n flex: FlexType | '' = EMPTY_STRING;\n\n /** Extra small devices (<576px) */\n @property({ type: Object })\n xs?: number | ColSize;\n\n /** Small devices (≥576px) */\n @property({ type: Object })\n sm?: number | ColSize;\n\n /** Medium devices (≥768px) */\n @property({ type: Object })\n md?: number | ColSize;\n\n /** Large devices (≥992px) */\n @property({ type: Object })\n lg?: number | ColSize;\n\n /** Extra large devices (≥1200px) */\n @property({ type: Object })\n xl?: number | ColSize;\n\n /** Extra extra large devices (≥1600px) */\n @property({ type: Object })\n xxl?: number | ColSize;\n\n /** Current breakpoint */\n @state()\n private currentBreakpoint: GridBreakpoint = GridBreakpoint.XS;\n\n private resizeObserver?: ResizeObserver;\n\n override connectedCallback() {\n super.connectedCallback();\n this.setupResponsive();\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n this.resizeObserver?.disconnect();\n }\n\n /**\n * Setup responsive breakpoint detection\n */\n private setupResponsive() {\n this.updateBreakpoint();\n \n this.resizeObserver = new ResizeObserver(() => {\n this.updateBreakpoint();\n });\n \n this.resizeObserver.observe(document.documentElement);\n }\n\n /**\n * Update current breakpoint based on window width\n */\n private updateBreakpoint() {\n const width = window.innerWidth;\n let newBreakpoint: GridBreakpoint;\n \n if (width >= BREAKPOINTS.xxl) {\n newBreakpoint = GridBreakpoint.XXL;\n } else if (width >= BREAKPOINTS.xl) {\n newBreakpoint = GridBreakpoint.XL;\n } else if (width >= BREAKPOINTS.lg) {\n newBreakpoint = GridBreakpoint.LG;\n } else if (width >= BREAKPOINTS.md) {\n newBreakpoint = GridBreakpoint.MD;\n } else if (width >= BREAKPOINTS.sm) {\n newBreakpoint = GridBreakpoint.SM;\n } else {\n newBreakpoint = GridBreakpoint.XS;\n }\n \n if (newBreakpoint !== this.currentBreakpoint) {\n this.currentBreakpoint = newBreakpoint;\n }\n }\n\n /**\n * Get responsive configuration for current breakpoint\n */\n private getResponsiveConfig(): ColSize {\n const breakpoints: GridBreakpoint[] = [\n this.currentBreakpoint,\n GridBreakpoint.XL,\n GridBreakpoint.LG,\n GridBreakpoint.MD,\n GridBreakpoint.SM,\n GridBreakpoint.XS\n ];\n \n for (const bp of breakpoints) {\n const value = this[bp];\n if (value !== undefined) {\n if (typeof value === 'number') {\n return { span: value };\n }\n return value;\n }\n }\n \n return {};\n }\n\n /**\n * Get computed column properties\n */\n private getColProperties() {\n const responsive = this.getResponsiveConfig();\n \n return {\n span: responsive.span ?? this.span,\n offset: responsive.offset ?? this.offset,\n order: responsive.order ?? this.order,\n pull: responsive.pull ?? this.pull,\n push: responsive.push ?? this.push\n };\n }\n\n /**\n * Get gutter from parent row\n */\n private getGutterFromParent(): number {\n const parent = this.closest('nr-row');\n if (parent) {\n const gutter = parent.getAttribute('data-gutter');\n return gutter ? parseInt(gutter, 10) : 0;\n }\n return 0;\n }\n\n /**\n * Get inline styles for column\n */\n private getColStyle() {\n const styles: Record<string, string> = {};\n const gutter = this.getGutterFromParent();\n \n if (gutter > 0) {\n styles['padding-left'] = `${gutter / 2}px`;\n styles['padding-right'] = `${gutter / 2}px`;\n }\n \n if (this.flex) {\n if (this.flex === 'auto') {\n styles['flex'] = '1 1 auto';\n } else if (this.flex === 'none') {\n styles['flex'] = '0 0 auto';\n } else if (typeof this.flex === 'number') {\n styles['flex'] = `${this.flex} ${this.flex} auto`;\n } else {\n styles['flex'] = this.flex;\n }\n }\n \n return styles;\n }\n\n override render() {\n const colStyle = this.getColStyle();\n const props = this.getColProperties();\n\n // Apply data attributes to :host for proper styling\n this.setAttribute('data-span', props.span?.toString() || '');\n this.setAttribute('data-offset', props.offset.toString());\n if (props.order !== undefined) {\n this.setAttribute('data-order', props.order.toString());\n } else {\n this.removeAttribute('data-order');\n }\n this.setAttribute('data-pull', props.pull.toString());\n this.setAttribute('data-push', props.push.toString());\n this.setAttribute('data-theme', this.currentTheme);\n\n return html`\n <div\n class=\"nr-col\"\n style=\"${Object.entries(colStyle).map(([key, value]) => `${key}: ${value}`).join('; ')}\"\n >\n <slot></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nr-col': NrColElement;\n }\n}\n"]}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Column component styles for the Grid system
3
+ * Using shared CSS variables from /src/shared/themes/
4
+ */
5
+ export declare const styles: import("lit").CSSResult;
6
+ //# sourceMappingURL=col.style.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"col.style.d.ts","sourceRoot":"","sources":["../../../src/components/grid/col.style.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,MAAM,yBA8GlB,CAAC"}
@@ -0,0 +1,117 @@
1
+ import { css } from 'lit';
2
+ /**
3
+ * Column component styles for the Grid system
4
+ * Using shared CSS variables from /src/shared/themes/
5
+ */
6
+ export const styles = css `
7
+ :host {
8
+ display: block;
9
+ box-sizing: border-box;
10
+ flex-shrink: 0;
11
+ }
12
+
13
+ .nr-col {
14
+ position: relative;
15
+ box-sizing: border-box;
16
+ width: 100%;
17
+ height: 100%;
18
+
19
+ /* Theme-aware */
20
+ color: var(--nuraly-color-text);
21
+ }
22
+
23
+ /* Column spans (1-24) - Apply flex to :host */
24
+ :host([data-span="1"]) { flex: 0 0 4.16666667%; max-width: 4.16666667%; }
25
+ :host([data-span="2"]) { flex: 0 0 8.33333333%; max-width: 8.33333333%; }
26
+ :host([data-span="3"]) { flex: 0 0 12.5%; max-width: 12.5%; }
27
+ :host([data-span="4"]) { flex: 0 0 16.66666667%; max-width: 16.66666667%; }
28
+ :host([data-span="5"]) { flex: 0 0 20.83333333%; max-width: 20.83333333%; }
29
+ :host([data-span="6"]) { flex: 0 0 25%; max-width: 25%; }
30
+ :host([data-span="7"]) { flex: 0 0 29.16666667%; max-width: 29.16666667%; }
31
+ :host([data-span="8"]) { flex: 0 0 33.33333333%; max-width: 33.33333333%; }
32
+ :host([data-span="9"]) { flex: 0 0 37.5%; max-width: 37.5%; }
33
+ :host([data-span="10"]) { flex: 0 0 41.66666667%; max-width: 41.66666667%; }
34
+ :host([data-span="11"]) { flex: 0 0 45.83333333%; max-width: 45.83333333%; }
35
+ :host([data-span="12"]) { flex: 0 0 50%; max-width: 50%; }
36
+ :host([data-span="13"]) { flex: 0 0 54.16666667%; max-width: 54.16666667%; }
37
+ :host([data-span="14"]) { flex: 0 0 58.33333333%; max-width: 58.33333333%; }
38
+ :host([data-span="15"]) { flex: 0 0 62.5%; max-width: 62.5%; }
39
+ :host([data-span="16"]) { flex: 0 0 66.66666667%; max-width: 66.66666667%; }
40
+ :host([data-span="17"]) { flex: 0 0 70.83333333%; max-width: 70.83333333%; }
41
+ :host([data-span="18"]) { flex: 0 0 75%; max-width: 75%; }
42
+ :host([data-span="19"]) { flex: 0 0 79.16666667%; max-width: 79.16666667%; }
43
+ :host([data-span="20"]) { flex: 0 0 83.33333333%; max-width: 83.33333333%; }
44
+ :host([data-span="21"]) { flex: 0 0 87.5%; max-width: 87.5%; }
45
+ :host([data-span="22"]) { flex: 0 0 91.66666667%; max-width: 91.66666667%; }
46
+ :host([data-span="23"]) { flex: 0 0 95.83333333%; max-width: 95.83333333%; }
47
+ :host([data-span="24"]) { flex: 0 0 100%; max-width: 100%; }
48
+
49
+ /* Column offsets (0-24) - Apply to :host */
50
+ :host([data-offset="0"]) { margin-left: 0; }
51
+ :host([data-offset="1"]) { margin-left: 4.16666667%; }
52
+ :host([data-offset="2"]) { margin-left: 8.33333333%; }
53
+ :host([data-offset="3"]) { margin-left: 12.5%; }
54
+ :host([data-offset="4"]) { margin-left: 16.66666667%; }
55
+ :host([data-offset="5"]) { margin-left: 20.83333333%; }
56
+ :host([data-offset="6"]) { margin-left: 25%; }
57
+ :host([data-offset="7"]) { margin-left: 29.16666667%; }
58
+ :host([data-offset="8"]) { margin-left: 33.33333333%; }
59
+ :host([data-offset="9"]) { margin-left: 37.5%; }
60
+ :host([data-offset="10"]) { margin-left: 41.66666667%; }
61
+ :host([data-offset="11"]) { margin-left: 45.83333333%; }
62
+ :host([data-offset="12"]) { margin-left: 50%; }
63
+ :host([data-offset="13"]) { margin-left: 54.16666667%; }
64
+ :host([data-offset="14"]) { margin-left: 58.33333333%; }
65
+ :host([data-offset="15"]) { margin-left: 62.5%; }
66
+ :host([data-offset="16"]) { margin-left: 66.66666667%; }
67
+ :host([data-offset="17"]) { margin-left: 70.83333333%; }
68
+ :host([data-offset="18"]) { margin-left: 75%; }
69
+ :host([data-offset="19"]) { margin-left: 79.16666667%; }
70
+ :host([data-offset="20"]) { margin-left: 83.33333333%; }
71
+ :host([data-offset="21"]) { margin-left: 87.5%; }
72
+ :host([data-offset="22"]) { margin-left: 91.66666667%; }
73
+ :host([data-offset="23"]) { margin-left: 95.83333333%; }
74
+
75
+ /* Order - Apply to :host */
76
+ :host([data-order="1"]) { order: 1; }
77
+ :host([data-order="2"]) { order: 2; }
78
+ :host([data-order="3"]) { order: 3; }
79
+ :host([data-order="4"]) { order: 4; }
80
+ :host([data-order="5"]) { order: 5; }
81
+ :host([data-order="6"]) { order: 6; }
82
+ :host([data-order="7"]) { order: 7; }
83
+ :host([data-order="8"]) { order: 8; }
84
+ :host([data-order="9"]) { order: 9; }
85
+ :host([data-order="10"]) { order: 10; }
86
+
87
+ /* Pull (right positioning) - Apply to :host */
88
+ :host([data-pull="0"]) { right: auto; }
89
+ :host([data-pull="1"]) { right: 4.16666667%; }
90
+ :host([data-pull="2"]) { right: 8.33333333%; }
91
+ :host([data-pull="3"]) { right: 12.5%; }
92
+ :host([data-pull="4"]) { right: 16.66666667%; }
93
+ :host([data-pull="5"]) { right: 20.83333333%; }
94
+ :host([data-pull="6"]) { right: 25%; }
95
+ :host([data-pull="7"]) { right: 29.16666667%; }
96
+ :host([data-pull="8"]) { right: 33.33333333%; }
97
+ :host([data-pull="9"]) { right: 37.5%; }
98
+ :host([data-pull="10"]) { right: 41.66666667%; }
99
+ :host([data-pull="11"]) { right: 45.83333333%; }
100
+ :host([data-pull="12"]) { right: 50%; }
101
+
102
+ /* Push (left positioning) - Apply to :host */
103
+ :host([data-push="0"]) { left: auto; }
104
+ :host([data-push="1"]) { left: 4.16666667%; }
105
+ :host([data-push="2"]) { left: 8.33333333%; }
106
+ :host([data-push="3"]) { left: 12.5%; }
107
+ :host([data-push="4"]) { left: 16.66666667%; }
108
+ :host([data-push="5"]) { left: 20.83333333%; }
109
+ :host([data-push="6"]) { left: 25%; }
110
+ :host([data-push="7"]) { left: 29.16666667%; }
111
+ :host([data-push="8"]) { left: 33.33333333%; }
112
+ :host([data-push="9"]) { left: 37.5%; }
113
+ :host([data-push="10"]) { left: 41.66666667%; }
114
+ :host([data-push="11"]) { left: 45.83333333%; }
115
+ :host([data-push="12"]) { left: 50%; }
116
+ `;
117
+ //# sourceMappingURL=col.style.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"col.style.js","sourceRoot":"","sources":["../../../src/components/grid/col.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8GxB,CAAC","sourcesContent":["import { css } from 'lit';\n\n/**\n * Column component styles for the Grid system\n * Using shared CSS variables from /src/shared/themes/\n */\nexport const styles = css`\n :host {\n display: block;\n box-sizing: border-box;\n flex-shrink: 0;\n }\n\n .nr-col {\n position: relative;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n \n /* Theme-aware */\n color: var(--nuraly-color-text);\n }\n\n /* Column spans (1-24) - Apply flex to :host */\n :host([data-span=\"1\"]) { flex: 0 0 4.16666667%; max-width: 4.16666667%; }\n :host([data-span=\"2\"]) { flex: 0 0 8.33333333%; max-width: 8.33333333%; }\n :host([data-span=\"3\"]) { flex: 0 0 12.5%; max-width: 12.5%; }\n :host([data-span=\"4\"]) { flex: 0 0 16.66666667%; max-width: 16.66666667%; }\n :host([data-span=\"5\"]) { flex: 0 0 20.83333333%; max-width: 20.83333333%; }\n :host([data-span=\"6\"]) { flex: 0 0 25%; max-width: 25%; }\n :host([data-span=\"7\"]) { flex: 0 0 29.16666667%; max-width: 29.16666667%; }\n :host([data-span=\"8\"]) { flex: 0 0 33.33333333%; max-width: 33.33333333%; }\n :host([data-span=\"9\"]) { flex: 0 0 37.5%; max-width: 37.5%; }\n :host([data-span=\"10\"]) { flex: 0 0 41.66666667%; max-width: 41.66666667%; }\n :host([data-span=\"11\"]) { flex: 0 0 45.83333333%; max-width: 45.83333333%; }\n :host([data-span=\"12\"]) { flex: 0 0 50%; max-width: 50%; }\n :host([data-span=\"13\"]) { flex: 0 0 54.16666667%; max-width: 54.16666667%; }\n :host([data-span=\"14\"]) { flex: 0 0 58.33333333%; max-width: 58.33333333%; }\n :host([data-span=\"15\"]) { flex: 0 0 62.5%; max-width: 62.5%; }\n :host([data-span=\"16\"]) { flex: 0 0 66.66666667%; max-width: 66.66666667%; }\n :host([data-span=\"17\"]) { flex: 0 0 70.83333333%; max-width: 70.83333333%; }\n :host([data-span=\"18\"]) { flex: 0 0 75%; max-width: 75%; }\n :host([data-span=\"19\"]) { flex: 0 0 79.16666667%; max-width: 79.16666667%; }\n :host([data-span=\"20\"]) { flex: 0 0 83.33333333%; max-width: 83.33333333%; }\n :host([data-span=\"21\"]) { flex: 0 0 87.5%; max-width: 87.5%; }\n :host([data-span=\"22\"]) { flex: 0 0 91.66666667%; max-width: 91.66666667%; }\n :host([data-span=\"23\"]) { flex: 0 0 95.83333333%; max-width: 95.83333333%; }\n :host([data-span=\"24\"]) { flex: 0 0 100%; max-width: 100%; }\n\n /* Column offsets (0-24) - Apply to :host */\n :host([data-offset=\"0\"]) { margin-left: 0; }\n :host([data-offset=\"1\"]) { margin-left: 4.16666667%; }\n :host([data-offset=\"2\"]) { margin-left: 8.33333333%; }\n :host([data-offset=\"3\"]) { margin-left: 12.5%; }\n :host([data-offset=\"4\"]) { margin-left: 16.66666667%; }\n :host([data-offset=\"5\"]) { margin-left: 20.83333333%; }\n :host([data-offset=\"6\"]) { margin-left: 25%; }\n :host([data-offset=\"7\"]) { margin-left: 29.16666667%; }\n :host([data-offset=\"8\"]) { margin-left: 33.33333333%; }\n :host([data-offset=\"9\"]) { margin-left: 37.5%; }\n :host([data-offset=\"10\"]) { margin-left: 41.66666667%; }\n :host([data-offset=\"11\"]) { margin-left: 45.83333333%; }\n :host([data-offset=\"12\"]) { margin-left: 50%; }\n :host([data-offset=\"13\"]) { margin-left: 54.16666667%; }\n :host([data-offset=\"14\"]) { margin-left: 58.33333333%; }\n :host([data-offset=\"15\"]) { margin-left: 62.5%; }\n :host([data-offset=\"16\"]) { margin-left: 66.66666667%; }\n :host([data-offset=\"17\"]) { margin-left: 70.83333333%; }\n :host([data-offset=\"18\"]) { margin-left: 75%; }\n :host([data-offset=\"19\"]) { margin-left: 79.16666667%; }\n :host([data-offset=\"20\"]) { margin-left: 83.33333333%; }\n :host([data-offset=\"21\"]) { margin-left: 87.5%; }\n :host([data-offset=\"22\"]) { margin-left: 91.66666667%; }\n :host([data-offset=\"23\"]) { margin-left: 95.83333333%; }\n\n /* Order - Apply to :host */\n :host([data-order=\"1\"]) { order: 1; }\n :host([data-order=\"2\"]) { order: 2; }\n :host([data-order=\"3\"]) { order: 3; }\n :host([data-order=\"4\"]) { order: 4; }\n :host([data-order=\"5\"]) { order: 5; }\n :host([data-order=\"6\"]) { order: 6; }\n :host([data-order=\"7\"]) { order: 7; }\n :host([data-order=\"8\"]) { order: 8; }\n :host([data-order=\"9\"]) { order: 9; }\n :host([data-order=\"10\"]) { order: 10; }\n\n /* Pull (right positioning) - Apply to :host */\n :host([data-pull=\"0\"]) { right: auto; }\n :host([data-pull=\"1\"]) { right: 4.16666667%; }\n :host([data-pull=\"2\"]) { right: 8.33333333%; }\n :host([data-pull=\"3\"]) { right: 12.5%; }\n :host([data-pull=\"4\"]) { right: 16.66666667%; }\n :host([data-pull=\"5\"]) { right: 20.83333333%; }\n :host([data-pull=\"6\"]) { right: 25%; }\n :host([data-pull=\"7\"]) { right: 29.16666667%; }\n :host([data-pull=\"8\"]) { right: 33.33333333%; }\n :host([data-pull=\"9\"]) { right: 37.5%; }\n :host([data-pull=\"10\"]) { right: 41.66666667%; }\n :host([data-pull=\"11\"]) { right: 45.83333333%; }\n :host([data-pull=\"12\"]) { right: 50%; }\n\n /* Push (left positioning) - Apply to :host */\n :host([data-push=\"0\"]) { left: auto; }\n :host([data-push=\"1\"]) { left: 4.16666667%; }\n :host([data-push=\"2\"]) { left: 8.33333333%; }\n :host([data-push=\"3\"]) { left: 12.5%; }\n :host([data-push=\"4\"]) { left: 16.66666667%; }\n :host([data-push=\"5\"]) { left: 20.83333333%; }\n :host([data-push=\"6\"]) { left: 25%; }\n :host([data-push=\"7\"]) { left: 29.16666667%; }\n :host([data-push=\"8\"]) { left: 33.33333333%; }\n :host([data-push=\"9\"]) { left: 37.5%; }\n :host([data-push=\"10\"]) { left: 41.66666667%; }\n :host([data-push=\"11\"]) { left: 45.83333333%; }\n :host([data-push=\"12\"]) { left: 50%; }\n`;\n"]}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Grid system types and constants
3
+ */
4
+ export declare const EMPTY_STRING = "";
5
+ /**
6
+ * Responsive breakpoints matching Ant Design
7
+ */
8
+ export declare const enum GridBreakpoint {
9
+ XS = "xs",
10
+ SM = "sm",
11
+ MD = "md",
12
+ LG = "lg",
13
+ XL = "xl",
14
+ XXL = "xxl"
15
+ }
16
+ /**
17
+ * Breakpoint pixel values
18
+ */
19
+ export declare const BREAKPOINTS: {
20
+ readonly xs: 0;
21
+ readonly sm: 576;
22
+ readonly md: 768;
23
+ readonly lg: 992;
24
+ readonly xl: 1200;
25
+ readonly xxl: 1600;
26
+ };
27
+ /**
28
+ * Horizontal alignment of flex items
29
+ */
30
+ export declare const enum RowAlign {
31
+ Top = "top",
32
+ Middle = "middle",
33
+ Bottom = "bottom",
34
+ Stretch = "stretch"
35
+ }
36
+ /**
37
+ * Horizontal arrangement of columns
38
+ */
39
+ export declare const enum RowJustify {
40
+ Start = "start",
41
+ End = "end",
42
+ Center = "center",
43
+ SpaceAround = "space-around",
44
+ SpaceBetween = "space-between",
45
+ SpaceEvenly = "space-evenly"
46
+ }
47
+ /**
48
+ * Gutter configuration - can be number, array, or object
49
+ */
50
+ export declare type Gutter = number | [number, number] | Partial<Record<GridBreakpoint, number | [number, number]>>;
51
+ /**
52
+ * Column span configuration for responsive breakpoints
53
+ */
54
+ export interface ColSize {
55
+ span?: number;
56
+ offset?: number;
57
+ order?: number;
58
+ pull?: number;
59
+ push?: number;
60
+ }
61
+ /**
62
+ * Responsive column configuration
63
+ */
64
+ export declare type ResponsiveCol = number | ColSize;
65
+ /**
66
+ * Column configuration for all breakpoints
67
+ */
68
+ export interface ColResponsive {
69
+ xs?: ResponsiveCol;
70
+ sm?: ResponsiveCol;
71
+ md?: ResponsiveCol;
72
+ lg?: ResponsiveCol;
73
+ xl?: ResponsiveCol;
74
+ xxl?: ResponsiveCol;
75
+ }
76
+ /**
77
+ * Flex properties
78
+ */
79
+ export declare type FlexType = number | 'none' | 'auto' | string;
80
+ //# sourceMappingURL=grid.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid.types.d.ts","sourceRoot":"","sources":["../../../src/components/grid/grid.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,YAAY,KAAK,CAAC;AAE/B;;GAEG;AACH,0BAAkB,cAAc;IAC9B,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,GAAG,QAAQ;CACZ;AAED;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;CAOd,CAAC;AAEX;;GAEG;AACH,0BAAkB,QAAQ;IACxB,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,OAAO,YAAY;CACpB;AAED;;GAEG;AACH,0BAAkB,UAAU;IAC1B,KAAK,UAAU;IACf,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,WAAW,iBAAiB;IAC5B,YAAY,kBAAkB;IAC9B,WAAW,iBAAiB;CAC7B;AAED;;GAEG;AACH,oBAAY,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAE5G;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,oBAAY,aAAa,GAAG,MAAM,GAAG,OAAO,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,CAAC,EAAE,aAAa,CAAC;IACnB,EAAE,CAAC,EAAE,aAAa,CAAC;IACnB,EAAE,CAAC,EAAE,aAAa,CAAC;IACnB,EAAE,CAAC,EAAE,aAAa,CAAC;IACnB,EAAE,CAAC,EAAE,aAAa,CAAC;IACnB,GAAG,CAAC,EAAE,aAAa,CAAC;CACrB;AAED;;GAEG;AACH,oBAAY,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Grid system types and constants
3
+ */
4
+ export const EMPTY_STRING = '';
5
+ /**
6
+ * Breakpoint pixel values
7
+ */
8
+ export const BREAKPOINTS = {
9
+ xs: 0,
10
+ sm: 576,
11
+ md: 768,
12
+ lg: 992,
13
+ xl: 1200,
14
+ xxl: 1600
15
+ };
16
+ //# sourceMappingURL=grid.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid.types.js","sourceRoot":"","sources":["../../../src/components/grid/grid.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,CAAC;AAc/B;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,GAAG;IACP,EAAE,EAAE,GAAG;IACP,EAAE,EAAE,GAAG;IACP,EAAE,EAAE,IAAI;IACR,GAAG,EAAE,IAAI;CACD,CAAC","sourcesContent":["/**\n * Grid system types and constants\n */\n\nexport const EMPTY_STRING = '';\n\n/**\n * Responsive breakpoints matching Ant Design\n */\nexport const enum GridBreakpoint {\n XS = 'xs', // < 576px\n SM = 'sm', // >= 576px\n MD = 'md', // >= 768px\n LG = 'lg', // >= 992px\n XL = 'xl', // >= 1200px\n XXL = 'xxl' // >= 1600px\n}\n\n/**\n * Breakpoint pixel values\n */\nexport const BREAKPOINTS = {\n xs: 0,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1600\n} as const;\n\n/**\n * Horizontal alignment of flex items\n */\nexport const enum RowAlign {\n Top = 'top',\n Middle = 'middle',\n Bottom = 'bottom',\n Stretch = 'stretch'\n}\n\n/**\n * Horizontal arrangement of columns\n */\nexport const enum RowJustify {\n Start = 'start',\n End = 'end',\n Center = 'center',\n SpaceAround = 'space-around',\n SpaceBetween = 'space-between',\n SpaceEvenly = 'space-evenly'\n}\n\n/**\n * Gutter configuration - can be number, array, or object\n */\nexport type Gutter = number | [number, number] | Partial<Record<GridBreakpoint, number | [number, number]>>;\n\n/**\n * Column span configuration for responsive breakpoints\n */\nexport interface ColSize {\n span?: number;\n offset?: number;\n order?: number;\n pull?: number;\n push?: number;\n}\n\n/**\n * Responsive column configuration\n */\nexport type ResponsiveCol = number | ColSize;\n\n/**\n * Column configuration for all breakpoints\n */\nexport interface ColResponsive {\n xs?: ResponsiveCol;\n sm?: ResponsiveCol;\n md?: ResponsiveCol;\n lg?: ResponsiveCol;\n xl?: ResponsiveCol;\n xxl?: ResponsiveCol;\n}\n\n/**\n * Flex properties\n */\nexport type FlexType = number | 'none' | 'auto' | string;\n"]}
@@ -0,0 +1,4 @@
1
+ export * from './row.component.js';
2
+ export * from './col.component.js';
3
+ export * from './grid.types.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/grid/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './row.component.js';
2
+ export * from './col.component.js';
3
+ export * from './grid.types.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/grid/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC","sourcesContent":["export * from './row.component.js';\nexport * from './col.component.js';\nexport * from './grid.types.js';\n"]}