@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,52 @@
1
+ {
2
+ "name": "@nuralyui/grid",
3
+ "version": "0.0.1",
4
+ "description": "Grid layout system (Row and Col) components for NuralyUI library",
5
+ "main": "index.js",
6
+ "type": "module",
7
+ "exports": {
8
+ ".": {
9
+ "import": "./index.js"
10
+ },
11
+ "./bundle": {
12
+ "import": "./bundle.js"
13
+ }
14
+ },
15
+ "files": [
16
+ "*.js",
17
+ "*.d.ts",
18
+ "*.js.map",
19
+ "grid.bundled.js",
20
+ "bundle.js"
21
+ ],
22
+ "scripts": {
23
+ "test": "echo \"Error: no test specified\" && exit 1"
24
+ },
25
+ "repository": {
26
+ "type": "git",
27
+ "url": "https://github.com/Nuralyio/NuralyUI.git",
28
+ "directory": "src/components/grid"
29
+ },
30
+ "keywords": [
31
+ "grid",
32
+ "row",
33
+ "col",
34
+ "column",
35
+ "layout",
36
+ "responsive",
37
+ "flexbox",
38
+ "web-components",
39
+ "lit-element",
40
+ "nuralyui",
41
+ "ui-components"
42
+ ],
43
+ "author": "Nuraly, Laabidi Aymen",
44
+ "license": "MIT",
45
+ "bugs": {
46
+ "url": "https://github.com/Nuralyio/NuralyUI/issues"
47
+ },
48
+ "homepage": "https://github.com/Nuralyio/NuralyUI#readme",
49
+ "publishConfig": {
50
+ "access": "public"
51
+ }
52
+ }
@@ -0,0 +1,5 @@
1
+ import { NrRowElement } from './row.component.js';
2
+ import { NrColElement } from './col.component.js';
3
+ export declare const NrRow: import("@lit-labs/react").ReactWebComponent<NrRowElement, {}>;
4
+ export declare const NrCol: import("@lit-labs/react").ReactWebComponent<NrColElement, {}>;
5
+ //# sourceMappingURL=react.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../../src/components/grid/react.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,eAAO,MAAM,KAAK,+DAKhB,CAAC;AACH,eAAO,MAAM,KAAK,+DAKhB,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { createComponent } from '@lit-labs/react';
2
+ import * as React from 'react';
3
+ import { NrRowElement } from './row.component.js';
4
+ import { NrColElement } from './col.component.js';
5
+ export const NrRow = createComponent({
6
+ tagName: 'nr-row',
7
+ elementClass: NrRowElement,
8
+ react: React,
9
+ events: {},
10
+ });
11
+ export const NrCol = createComponent({
12
+ tagName: 'nr-col',
13
+ elementClass: NrColElement,
14
+ react: React,
15
+ events: {},
16
+ });
17
+ //# sourceMappingURL=react.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["../../../src/components/grid/react.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,MAAM,CAAC,MAAM,KAAK,GAAG,eAAe,CAAC;IACnC,OAAO,EAAE,QAAQ;IACjB,YAAY,EAAE,YAAY;IAC1B,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,EAAE;CACX,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,eAAe,CAAC;IACnC,OAAO,EAAE,QAAQ;IACjB,YAAY,EAAE,YAAY;IAC1B,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,EAAE;CACX,CAAC,CAAC","sourcesContent":["import { createComponent } from '@lit-labs/react';\nimport * as React from 'react';\nimport { NrRowElement } from './row.component.js';\nimport { NrColElement } from './col.component.js';\nexport const NrRow = createComponent({\n tagName: 'nr-row',\n elementClass: NrRowElement,\n react: React,\n events: {},\n});\nexport const NrCol = createComponent({\n tagName: 'nr-col',\n elementClass: NrColElement,\n react: React,\n events: {},\n});\n"]}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Nuraly, Laabidi Aymen
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import { LitElement } from 'lit';
7
+ import { RowAlign, RowJustify, Gutter } from './grid.types.js';
8
+ declare const NrRowElement_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
+ * Row component for grid layout system
11
+ *
12
+ * @example
13
+ * ```html
14
+ * <!-- Basic row -->
15
+ * <nr-row>
16
+ * <nr-col span="12">Column 1</nr-col>
17
+ * <nr-col span="12">Column 2</nr-col>
18
+ * </nr-row>
19
+ *
20
+ * <!-- Row with gutter -->
21
+ * <nr-row gutter="16">
22
+ * <nr-col span="8">Column 1</nr-col>
23
+ * <nr-col span="8">Column 2</nr-col>
24
+ * <nr-col span="8">Column 3</nr-col>
25
+ * </nr-row>
26
+ *
27
+ * <!-- Responsive gutter -->
28
+ * <nr-row .gutter=${{ xs: 8, sm: 16, md: 24, lg: 32 }}>
29
+ * <nr-col span="6">Column</nr-col>
30
+ * </nr-row>
31
+ *
32
+ * <!-- Alignment and justify -->
33
+ * <nr-row align="middle" justify="center">
34
+ * <nr-col span="6">Centered</nr-col>
35
+ * </nr-row>
36
+ * ```
37
+ *
38
+ * @slot default - Column elements
39
+ */
40
+ export declare class NrRowElement extends NrRowElement_base {
41
+ static styles: import("lit").CSSResult;
42
+ /** Vertical alignment of columns */
43
+ align: RowAlign | '';
44
+ /** Horizontal alignment of columns */
45
+ justify: RowJustify | '';
46
+ /** Grid spacing - number, [horizontal, vertical], or responsive object */
47
+ gutter: Gutter;
48
+ /** Allow columns to wrap */
49
+ wrap: boolean;
50
+ /** Current breakpoint for responsive gutter */
51
+ private currentBreakpoint;
52
+ private resizeObserver?;
53
+ connectedCallback(): void;
54
+ disconnectedCallback(): void;
55
+ /**
56
+ * Setup responsive gutter based on viewport width
57
+ */
58
+ private setupResponsiveGutter;
59
+ /**
60
+ * Update current breakpoint based on window width
61
+ */
62
+ private updateBreakpoint;
63
+ /**
64
+ * Get the current gutter values [horizontal, vertical]
65
+ */
66
+ private getGutterValues;
67
+ /**
68
+ * Get inline styles for row with gutter
69
+ */
70
+ private getRowStyle;
71
+ /**
72
+ * Get gutter context for child columns
73
+ */
74
+ private getGutterContext;
75
+ render(): import("lit").TemplateResult<1>;
76
+ }
77
+ declare global {
78
+ interface HTMLElementTagNameMap {
79
+ 'nr-row': NrRowElement;
80
+ }
81
+ }
82
+ export {};
83
+ //# sourceMappingURL=row.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"row.component.d.ts","sourceRoot":"","sources":["../../../src/components/grid/row.component.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AAIvC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAA6C,MAAM,iBAAiB,CAAC;;AAE1G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBACa,YAAa,SAAQ,iBAA6B;IAC7D,OAAgB,MAAM,0BAAU;IAEhC,oCAAoC;IAEpC,KAAK,EAAE,QAAQ,GAAG,EAAE,CAAgB;IAEpC,sCAAsC;IAEtC,OAAO,EAAE,UAAU,GAAG,EAAE,CAAgB;IAExC,0EAA0E;IAE1E,MAAM,EAAE,MAAM,CAAK;IAEnB,4BAA4B;IAE5B,IAAI,UAAQ;IAEZ,+CAA+C;IAE/C,OAAO,CAAC,iBAAiB,CAAqC;IAE9D,OAAO,CAAC,cAAc,CAAC,CAAiB;IAE/B,iBAAiB;IAKjB,oBAAoB;IAK7B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAY7B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAkBxB;;OAEG;IACH,OAAO,CAAC,eAAe;IAgCvB;;OAEG;IACH,OAAO,CAAC,WAAW;IAiBnB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAKf,MAAM;CAkBhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,QAAQ,EAAE,YAAY,CAAC;KACxB;CACF"}
@@ -0,0 +1,197 @@
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 './row.style.js';
15
+ import { NuralyUIBaseMixin } from '../../shared/base-mixin.js';
16
+ import { EMPTY_STRING, BREAKPOINTS } from './grid.types.js';
17
+ /**
18
+ * Row component for grid layout system
19
+ *
20
+ * @example
21
+ * ```html
22
+ * <!-- Basic row -->
23
+ * <nr-row>
24
+ * <nr-col span="12">Column 1</nr-col>
25
+ * <nr-col span="12">Column 2</nr-col>
26
+ * </nr-row>
27
+ *
28
+ * <!-- Row with gutter -->
29
+ * <nr-row gutter="16">
30
+ * <nr-col span="8">Column 1</nr-col>
31
+ * <nr-col span="8">Column 2</nr-col>
32
+ * <nr-col span="8">Column 3</nr-col>
33
+ * </nr-row>
34
+ *
35
+ * <!-- Responsive gutter -->
36
+ * <nr-row .gutter=${{ xs: 8, sm: 16, md: 24, lg: 32 }}>
37
+ * <nr-col span="6">Column</nr-col>
38
+ * </nr-row>
39
+ *
40
+ * <!-- Alignment and justify -->
41
+ * <nr-row align="middle" justify="center">
42
+ * <nr-col span="6">Centered</nr-col>
43
+ * </nr-row>
44
+ * ```
45
+ *
46
+ * @slot default - Column elements
47
+ */
48
+ let NrRowElement = class NrRowElement extends NuralyUIBaseMixin(LitElement) {
49
+ constructor() {
50
+ super(...arguments);
51
+ /** Vertical alignment of columns */
52
+ this.align = EMPTY_STRING;
53
+ /** Horizontal alignment of columns */
54
+ this.justify = EMPTY_STRING;
55
+ /** Grid spacing - number, [horizontal, vertical], or responsive object */
56
+ this.gutter = 0;
57
+ /** Allow columns to wrap */
58
+ this.wrap = true;
59
+ /** Current breakpoint for responsive gutter */
60
+ this.currentBreakpoint = "xs" /* GridBreakpoint.XS */;
61
+ }
62
+ connectedCallback() {
63
+ super.connectedCallback();
64
+ this.setupResponsiveGutter();
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 gutter based on viewport width
73
+ */
74
+ setupResponsiveGutter() {
75
+ if (typeof this.gutter === 'object' && !Array.isArray(this.gutter)) {
76
+ this.updateBreakpoint();
77
+ this.resizeObserver = new ResizeObserver(() => {
78
+ this.updateBreakpoint();
79
+ });
80
+ this.resizeObserver.observe(document.documentElement);
81
+ }
82
+ }
83
+ /**
84
+ * Update current breakpoint based on window width
85
+ */
86
+ updateBreakpoint() {
87
+ const width = window.innerWidth;
88
+ if (width >= BREAKPOINTS.xxl) {
89
+ this.currentBreakpoint = "xxl" /* GridBreakpoint.XXL */;
90
+ }
91
+ else if (width >= BREAKPOINTS.xl) {
92
+ this.currentBreakpoint = "xl" /* GridBreakpoint.XL */;
93
+ }
94
+ else if (width >= BREAKPOINTS.lg) {
95
+ this.currentBreakpoint = "lg" /* GridBreakpoint.LG */;
96
+ }
97
+ else if (width >= BREAKPOINTS.md) {
98
+ this.currentBreakpoint = "md" /* GridBreakpoint.MD */;
99
+ }
100
+ else if (width >= BREAKPOINTS.sm) {
101
+ this.currentBreakpoint = "sm" /* GridBreakpoint.SM */;
102
+ }
103
+ else {
104
+ this.currentBreakpoint = "xs" /* GridBreakpoint.XS */;
105
+ }
106
+ }
107
+ /**
108
+ * Get the current gutter values [horizontal, vertical]
109
+ */
110
+ getGutterValues() {
111
+ if (typeof this.gutter === 'number') {
112
+ return [this.gutter, this.gutter];
113
+ }
114
+ if (Array.isArray(this.gutter)) {
115
+ return this.gutter;
116
+ }
117
+ // Responsive gutter object
118
+ const breakpoints = [
119
+ this.currentBreakpoint,
120
+ "xl" /* GridBreakpoint.XL */,
121
+ "lg" /* GridBreakpoint.LG */,
122
+ "md" /* GridBreakpoint.MD */,
123
+ "sm" /* GridBreakpoint.SM */,
124
+ "xs" /* GridBreakpoint.XS */
125
+ ];
126
+ for (const bp of breakpoints) {
127
+ const value = this.gutter[bp];
128
+ if (value !== undefined) {
129
+ if (typeof value === 'number') {
130
+ return [value, value];
131
+ }
132
+ return value;
133
+ }
134
+ }
135
+ return [0, 0];
136
+ }
137
+ /**
138
+ * Get inline styles for row with gutter
139
+ */
140
+ getRowStyle() {
141
+ const [horizontal, vertical] = this.getGutterValues();
142
+ const styles = {};
143
+ if (horizontal > 0) {
144
+ styles['margin-left'] = `-${horizontal / 2}px`;
145
+ styles['margin-right'] = `-${horizontal / 2}px`;
146
+ }
147
+ if (vertical > 0) {
148
+ styles['row-gap'] = `${vertical}px`;
149
+ }
150
+ return styles;
151
+ }
152
+ /**
153
+ * Get gutter context for child columns
154
+ */
155
+ getGutterContext() {
156
+ const [horizontal] = this.getGutterValues();
157
+ return horizontal;
158
+ }
159
+ render() {
160
+ const rowStyle = this.getRowStyle();
161
+ const gutter = this.getGutterContext();
162
+ return html `
163
+ <div
164
+ class="nr-row"
165
+ data-align="${this.align}"
166
+ data-justify="${this.justify}"
167
+ data-wrap="${this.wrap}"
168
+ data-theme="${this.currentTheme}"
169
+ style="${Object.entries(rowStyle).map(([key, value]) => `${key}: ${value}`).join('; ')}"
170
+ data-gutter="${gutter}"
171
+ >
172
+ <slot></slot>
173
+ </div>
174
+ `;
175
+ }
176
+ };
177
+ NrRowElement.styles = styles;
178
+ __decorate([
179
+ property({ type: String })
180
+ ], NrRowElement.prototype, "align", void 0);
181
+ __decorate([
182
+ property({ type: String })
183
+ ], NrRowElement.prototype, "justify", void 0);
184
+ __decorate([
185
+ property({ type: Object })
186
+ ], NrRowElement.prototype, "gutter", void 0);
187
+ __decorate([
188
+ property({ type: Boolean })
189
+ ], NrRowElement.prototype, "wrap", void 0);
190
+ __decorate([
191
+ state()
192
+ ], NrRowElement.prototype, "currentBreakpoint", void 0);
193
+ NrRowElement = __decorate([
194
+ customElement('nr-row')
195
+ ], NrRowElement);
196
+ export { NrRowElement };
197
+ //# sourceMappingURL=row.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"row.component.js","sourceRoot":"","sources":["../../../src/components/grid/row.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 './row.style.js';\nimport { NuralyUIBaseMixin } from '../../shared/base-mixin.js';\nimport { RowAlign, RowJustify, Gutter, EMPTY_STRING, GridBreakpoint, BREAKPOINTS } from './grid.types.js';\n\n/**\n * Row component for grid layout system\n * \n * @example\n * ```html\n * <!-- Basic row -->\n * <nr-row>\n * <nr-col span=\"12\">Column 1</nr-col>\n * <nr-col span=\"12\">Column 2</nr-col>\n * </nr-row>\n * \n * <!-- Row with gutter -->\n * <nr-row gutter=\"16\">\n * <nr-col span=\"8\">Column 1</nr-col>\n * <nr-col span=\"8\">Column 2</nr-col>\n * <nr-col span=\"8\">Column 3</nr-col>\n * </nr-row>\n * \n * <!-- Responsive gutter -->\n * <nr-row .gutter=${{ xs: 8, sm: 16, md: 24, lg: 32 }}>\n * <nr-col span=\"6\">Column</nr-col>\n * </nr-row>\n * \n * <!-- Alignment and justify -->\n * <nr-row align=\"middle\" justify=\"center\">\n * <nr-col span=\"6\">Centered</nr-col>\n * </nr-row>\n * ```\n * \n * @slot default - Column elements\n */\n@customElement('nr-row')\nexport class NrRowElement extends NuralyUIBaseMixin(LitElement) {\n static override styles = styles;\n\n /** Vertical alignment of columns */\n @property({ type: String })\n align: RowAlign | '' = EMPTY_STRING;\n\n /** Horizontal alignment of columns */\n @property({ type: String })\n justify: RowJustify | '' = EMPTY_STRING;\n\n /** Grid spacing - number, [horizontal, vertical], or responsive object */\n @property({ type: Object })\n gutter: Gutter = 0;\n\n /** Allow columns to wrap */\n @property({ type: Boolean })\n wrap = true;\n\n /** Current breakpoint for responsive gutter */\n @state()\n private currentBreakpoint: GridBreakpoint = GridBreakpoint.XS;\n\n private resizeObserver?: ResizeObserver;\n\n override connectedCallback() {\n super.connectedCallback();\n this.setupResponsiveGutter();\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n this.resizeObserver?.disconnect();\n }\n\n /**\n * Setup responsive gutter based on viewport width\n */\n private setupResponsiveGutter() {\n if (typeof this.gutter === 'object' && !Array.isArray(this.gutter)) {\n this.updateBreakpoint();\n \n this.resizeObserver = new ResizeObserver(() => {\n this.updateBreakpoint();\n });\n \n this.resizeObserver.observe(document.documentElement);\n }\n }\n\n /**\n * Update current breakpoint based on window width\n */\n private updateBreakpoint() {\n const width = window.innerWidth;\n \n if (width >= BREAKPOINTS.xxl) {\n this.currentBreakpoint = GridBreakpoint.XXL;\n } else if (width >= BREAKPOINTS.xl) {\n this.currentBreakpoint = GridBreakpoint.XL;\n } else if (width >= BREAKPOINTS.lg) {\n this.currentBreakpoint = GridBreakpoint.LG;\n } else if (width >= BREAKPOINTS.md) {\n this.currentBreakpoint = GridBreakpoint.MD;\n } else if (width >= BREAKPOINTS.sm) {\n this.currentBreakpoint = GridBreakpoint.SM;\n } else {\n this.currentBreakpoint = GridBreakpoint.XS;\n }\n }\n\n /**\n * Get the current gutter values [horizontal, vertical]\n */\n private getGutterValues(): [number, number] {\n if (typeof this.gutter === 'number') {\n return [this.gutter, this.gutter];\n }\n \n if (Array.isArray(this.gutter)) {\n return this.gutter;\n }\n \n // Responsive gutter object\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.gutter[bp];\n if (value !== undefined) {\n if (typeof value === 'number') {\n return [value, value];\n }\n return value;\n }\n }\n \n return [0, 0];\n }\n\n /**\n * Get inline styles for row with gutter\n */\n private getRowStyle() {\n const [horizontal, vertical] = this.getGutterValues();\n \n const styles: Record<string, string> = {};\n \n if (horizontal > 0) {\n styles['margin-left'] = `-${horizontal / 2}px`;\n styles['margin-right'] = `-${horizontal / 2}px`;\n }\n \n if (vertical > 0) {\n styles['row-gap'] = `${vertical}px`;\n }\n \n return styles;\n }\n\n /**\n * Get gutter context for child columns\n */\n private getGutterContext() {\n const [horizontal] = this.getGutterValues();\n return horizontal;\n }\n\n override render() {\n const rowStyle = this.getRowStyle();\n const gutter = this.getGutterContext();\n\n return html`\n <div\n class=\"nr-row\"\n data-align=\"${this.align}\"\n data-justify=\"${this.justify}\"\n data-wrap=\"${this.wrap}\"\n data-theme=\"${this.currentTheme}\"\n style=\"${Object.entries(rowStyle).map(([key, value]) => `${key}: ${value}`).join('; ')}\"\n data-gutter=\"${gutter}\"\n >\n <slot></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nr-row': NrRowElement;\n }\n}\n"]}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Row 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=row.style.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"row.style.d.ts","sourceRoot":"","sources":["../../../src/components/grid/row.style.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,MAAM,yBA6DlB,CAAC"}
@@ -0,0 +1,68 @@
1
+ import { css } from 'lit';
2
+ /**
3
+ * Row 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
+ width: 100%;
10
+ }
11
+
12
+ .nr-row {
13
+ display: flex;
14
+ flex-flow: row wrap;
15
+ min-width: 0;
16
+
17
+ /* Theme-aware */
18
+ color: var(--nuraly-color-text);
19
+ }
20
+
21
+ /* Wrap control */
22
+ .nr-row[data-wrap="false"] {
23
+ flex-wrap: nowrap;
24
+ }
25
+
26
+ /* Horizontal alignment (justify-content) */
27
+ .nr-row[data-justify="start"] {
28
+ justify-content: flex-start;
29
+ }
30
+
31
+ .nr-row[data-justify="end"] {
32
+ justify-content: flex-end;
33
+ }
34
+
35
+ .nr-row[data-justify="center"] {
36
+ justify-content: center;
37
+ }
38
+
39
+ .nr-row[data-justify="space-around"] {
40
+ justify-content: space-around;
41
+ }
42
+
43
+ .nr-row[data-justify="space-between"] {
44
+ justify-content: space-between;
45
+ }
46
+
47
+ .nr-row[data-justify="space-evenly"] {
48
+ justify-content: space-evenly;
49
+ }
50
+
51
+ /* Vertical alignment (align-items) */
52
+ .nr-row[data-align="top"] {
53
+ align-items: flex-start;
54
+ }
55
+
56
+ .nr-row[data-align="middle"] {
57
+ align-items: center;
58
+ }
59
+
60
+ .nr-row[data-align="bottom"] {
61
+ align-items: flex-end;
62
+ }
63
+
64
+ .nr-row[data-align="stretch"] {
65
+ align-items: stretch;
66
+ }
67
+ `;
68
+ //# sourceMappingURL=row.style.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"row.style.js","sourceRoot":"","sources":["../../../src/components/grid/row.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6DxB,CAAC","sourcesContent":["import { css } from 'lit';\n\n/**\n * Row 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 width: 100%;\n }\n\n .nr-row {\n display: flex;\n flex-flow: row wrap;\n min-width: 0;\n \n /* Theme-aware */\n color: var(--nuraly-color-text);\n }\n\n /* Wrap control */\n .nr-row[data-wrap=\"false\"] {\n flex-wrap: nowrap;\n }\n\n /* Horizontal alignment (justify-content) */\n .nr-row[data-justify=\"start\"] {\n justify-content: flex-start;\n }\n\n .nr-row[data-justify=\"end\"] {\n justify-content: flex-end;\n }\n\n .nr-row[data-justify=\"center\"] {\n justify-content: center;\n }\n\n .nr-row[data-justify=\"space-around\"] {\n justify-content: space-around;\n }\n\n .nr-row[data-justify=\"space-between\"] {\n justify-content: space-between;\n }\n\n .nr-row[data-justify=\"space-evenly\"] {\n justify-content: space-evenly;\n }\n\n /* Vertical alignment (align-items) */\n .nr-row[data-align=\"top\"] {\n align-items: flex-start;\n }\n\n .nr-row[data-align=\"middle\"] {\n align-items: center;\n }\n\n .nr-row[data-align=\"bottom\"] {\n align-items: flex-end;\n }\n\n .nr-row[data-align=\"stretch\"] {\n align-items: stretch;\n }\n`;\n"]}
@@ -0,0 +1,4 @@
1
+ export * from './layout/index.js';
2
+ export * from './grid/index.js';
3
+ export * from './flex/index.js';
4
+ export * from './card/index.js';
package/dist/index.js ADDED
@@ -0,0 +1,4 @@
1
+ export * from './layout/index.js';
2
+ export * from './grid/index.js';
3
+ export * from './flex/index.js';
4
+ export * from './card/index.js';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content.component.d.ts","sourceRoot":"","sources":["../../../src/components/layout/content.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;;AAKvC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBACa,gBAAiB,SAAQ,qBAA6B;IACjE,OAAgB,MAAM,0BAAiB;IAE9B,MAAM;CAOhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,gBAAgB,CAAC;KAChC;CACF"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content.component.js","sourceRoot":"","sources":["../../../src/components/layout/content.component.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,IAAa,gBAAgB,GAA7B,MAAa,gBAAiB,SAAQ,iBAAiB,CAAC,UAAU,CAAC;IAGxD,MAAM;QACb,OAAO,IAAI,CAAA;;;;KAIV,CAAC;IACJ,CAAC;CACF,CAAA;AATiB,uBAAM,GAAG,aAAc,CAAA;AAD5B,gBAAgB;IAD5B,aAAa,CAAC,YAAY,CAAC;GACf,gBAAgB,CAU5B;SAVY,gBAAgB","sourcesContent":["import { LitElement, html } from 'lit';\nimport { customElement } from 'lit/decorators.js';\nimport { NuralyUIBaseMixin } from '../../shared/base-mixin.js';\nimport { contentStyles } from './content.style.js';\n\n/**\n * # Content Component\n * \n * The content layout component with default styling.\n * Must be placed inside a Layout component.\n * \n * @element nr-content\n * \n * @slot - Default slot for main content\n * \n * @csspart content - The content container element\n * \n * @example\n * ```html\n * <nr-layout>\n * <nr-content>\n * <h1>Main Content</h1>\n * <p>Your content goes here...</p>\n * </nr-content>\n * </nr-layout>\n * ```\n */\n@customElement('nr-content')\nexport class NrContentElement extends NuralyUIBaseMixin(LitElement) {\n static override styles = contentStyles;\n\n override render() {\n return html`\n <main class=\"nr-content\" part=\"content\">\n <slot></slot>\n </main>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nr-content': NrContentElement;\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content.style.d.ts","sourceRoot":"","sources":["../../../src/components/layout/content.style.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,yBAczB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content.style.js","sourceRoot":"","sources":["../../../src/components/layout/content.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAA;;;;;;;;;;;;;;CAc/B,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const contentStyles = css`\n :host {\n display: block;\n flex: auto;\n min-height: 0;\n }\n\n .nr-content {\n flex: auto;\n min-height: 0;\n background: var(--nuraly-layout-content-background);\n color: var(--nuraly-layout-content-text);\n transition: var(--nuraly-layout-transition);\n }\n`;\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"footer.component.d.ts","sourceRoot":"","sources":["../../../src/components/layout/footer.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;;AAKvC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBACa,eAAgB,SAAQ,oBAA6B;IAChE,OAAgB,MAAM,0BAAgB;IAEtC;;OAEG;IAEH,OAAO,SAAe;IAEb,MAAM;CAWhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,eAAe,CAAC;KAC9B;CACF"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"footer.component.js","sourceRoot":"","sources":["../../../src/components/layout/footer.component.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,IAAa,eAAe,GAA5B,MAAa,eAAgB,SAAQ,iBAAiB,CAAC,UAAU,CAAC;IAAlE;;QAGE;;WAEG;QAEH,YAAO,GAAG,WAAW,CAAC;IAaxB,CAAC;IAXU,MAAM;QACb,OAAO,IAAI,CAAA;;;;0BAIW,IAAI,CAAC,OAAO;;;;KAIjC,CAAC;IACJ,CAAC;CACF,CAAA;AAnBiB,sBAAM,GAAG,YAAa,CAAA;AAMtC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gDACL;AAPX,eAAe;IAD3B,aAAa,CAAC,WAAW,CAAC;GACd,eAAe,CAoB3B;SApBY,eAAe","sourcesContent":["import { LitElement, html } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { NuralyUIBaseMixin } from '../../shared/base-mixin.js';\nimport { footerStyles } from './footer.style.js';\n\n/**\n * # Footer Component\n * \n * The bottom layout component with default styling.\n * Must be placed inside a Layout component.\n * \n * @element nr-footer\n * \n * @slot - Default slot for footer content\n * \n * @csspart footer - The footer container element\n * \n * @example\n * ```html\n * <nr-layout>\n * <nr-footer>\n * Copyright © 2025 My Company\n * </nr-footer>\n * </nr-layout>\n * ```\n */\n@customElement('nr-footer')\nexport class NrFooterElement extends NuralyUIBaseMixin(LitElement) {\n static override styles = footerStyles;\n\n /**\n * Padding of the footer. Default is \"24px 50px\".\n */\n @property({ type: String })\n padding = '24px 50px';\n\n override render() {\n return html`\n <footer \n class=\"nr-footer\" \n part=\"footer\"\n style=\"padding: ${this.padding}\"\n >\n <slot></slot>\n </footer>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nr-footer': NrFooterElement;\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"footer.style.d.ts","sourceRoot":"","sources":["../../../src/components/layout/footer.style.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,yBAcxB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"footer.style.js","sourceRoot":"","sources":["../../../src/components/layout/footer.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAA;;;;;;;;;;;;;;CAc9B,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const footerStyles = css`\n :host {\n display: block;\n }\n\n .nr-footer {\n padding: var(--nuraly-layout-footer-padding);\n background: var(--nuraly-layout-footer-background);\n color: var(--nuraly-layout-footer-text);\n border-top: 1px solid var(--nuraly-layout-footer-border);\n font-size: var(--nuraly-layout-font-size);\n line-height: var(--nuraly-layout-line-height);\n transition: var(--nuraly-layout-transition);\n }\n`;\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header.component.d.ts","sourceRoot":"","sources":["../../../src/components/layout/header.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;;AAKvC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBACa,eAAgB,SAAQ,oBAA6B;IAChE,OAAgB,MAAM,0BAAgB;IAEtC;;OAEG;IAEH,MAAM,SAAU;IAEP,MAAM;CAWhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,eAAe,CAAC;KAC9B;CACF"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header.component.js","sourceRoot":"","sources":["../../../src/components/layout/header.component.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,IAAa,eAAe,GAA5B,MAAa,eAAgB,SAAQ,iBAAiB,CAAC,UAAU,CAAC;IAAlE;;QAGE;;WAEG;QAEH,WAAM,GAAG,MAAM,CAAC;IAalB,CAAC;IAXU,MAAM;QACb,OAAO,IAAI,CAAA;;;;yBAIU,IAAI,CAAC,MAAM;;;;KAI/B,CAAC;IACJ,CAAC;CACF,CAAA;AAnBiB,sBAAM,GAAG,YAAa,CAAA;AAMtC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;+CACX;AAPL,eAAe;IAD3B,aAAa,CAAC,WAAW,CAAC;GACd,eAAe,CAoB3B;SApBY,eAAe","sourcesContent":["import { LitElement, html } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { NuralyUIBaseMixin } from '../../shared/base-mixin.js';\nimport { headerStyles } from './header.style.js';\n\n/**\n * # Header Component\n * \n * The top layout component with default styling.\n * Must be placed inside a Layout component.\n * \n * @element nr-header\n * \n * @slot - Default slot for header content\n * \n * @csspart header - The header container element\n * \n * @example\n * ```html\n * <nr-layout>\n * <nr-header>\n * <div class=\"logo\">My App</div>\n * <nav>Navigation</nav>\n * </nr-header>\n * </nr-layout>\n * ```\n */\n@customElement('nr-header')\nexport class NrHeaderElement extends NuralyUIBaseMixin(LitElement) {\n static override styles = headerStyles;\n\n /**\n * Height of the header. Default is 64px.\n */\n @property({ type: String })\n height = '64px';\n\n override render() {\n return html`\n <header \n class=\"nr-header\" \n part=\"header\"\n style=\"height: ${this.height}\"\n >\n <slot></slot>\n </header>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nr-header': NrHeaderElement;\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header.style.d.ts","sourceRoot":"","sources":["../../../src/components/layout/header.style.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,yBAgBxB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header.style.js","sourceRoot":"","sources":["../../../src/components/layout/header.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;CAgB9B,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const headerStyles = css`\n :host {\n display: block;\n }\n\n .nr-header {\n display: flex;\n align-items: center;\n padding: var(--nuraly-layout-header-padding);\n height: var(--nuraly-layout-header-height);\n line-height: var(--nuraly-layout-header-height);\n background: var(--nuraly-layout-header-background);\n color: var(--nuraly-layout-header-text);\n border-bottom: 1px solid var(--nuraly-layout-header-border);\n transition: var(--nuraly-layout-transition);\n }\n`;\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/layout/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EACV,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,WAAW,EACX,UAAU,EACV,WAAW,EACX,WAAW,EACX,YAAY,GACb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/layout/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAa1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC","sourcesContent":["export { NrLayoutElement } from './layout.component.js';\nexport { NrHeaderElement } from './header.component.js';\nexport { NrFooterElement } from './footer.component.js';\nexport { NrSiderElement } from './sider.component.js';\nexport { NrContentElement } from './content.component.js';\nexport type {\n LayoutBreakpoint,\n SiderTheme,\n SiderTrigger,\n OnBreakpoint,\n OnCollapse,\n LayoutProps,\n SiderProps,\n HeaderProps,\n FooterProps,\n ContentProps,\n} from './layout.types.js';\nexport { BREAKPOINT_VALUES } from './layout.types.js';\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.component.d.ts","sourceRoot":"","sources":["../../../src/components/layout/layout.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;;AAKvC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBACa,eAAgB,SAAQ,oBAA6B;IAChE,OAAgB,MAAM,0BAAgB;IAEtC;;;;OAIG;IAEH,QAAQ,UAAS;IAIR,iBAAiB,IAAI,IAAI;IAKzB,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAK/D;;OAEG;IACH,OAAO,CAAC,WAAW;IAanB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAIf,MAAM;CAOhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,eAAe,CAAC;KAC9B;CACF"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.component.js","sourceRoot":"","sources":["../../../src/components/layout/layout.component.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,IAAa,eAAe,GAA5B,MAAa,eAAgB,SAAQ,iBAAiB,CAAC,UAAU,CAAC;IAAlE;;QAGE;;;;WAIG;QAEH,aAAQ,GAAG,KAAK,CAAC;IA4CnB,CAAC;IAxCU,iBAAiB;QACxB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAEQ,OAAO,CAAC,iBAAuC;QACtD,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACjC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED;;OAEG;IACK,WAAW;;QACjB,MAAM,IAAI,GAAG,MAAA,IAAI,CAAC,UAAU,0CAAE,aAAa,CAAC,MAAM,CAAC,CAAC;QACpD,IAAI,IAAI,EAAE;YACR,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACjD,MAAM,eAAe,GAAG,gBAAgB,CAAC,IAAI,CAC3C,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,UAAU,CAChD,CAAC;YACF,IAAI,IAAI,CAAC,QAAQ,KAAK,eAAe,EAAE;gBACrC,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC;aACjC;SACF;IACH,CAAC;IAED;;OAEG;IACK,gBAAgB;QACtB,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAEQ,MAAM;QACb,OAAO,IAAI,CAAA;;4BAEa,IAAI,CAAC,gBAAgB;;KAE5C,CAAC;IACJ,CAAC;CACF,CAAA;AApDiB,sBAAM,GAAG,YAAa,CAAA;AAQtC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;iDAClD;AAIjB;IAFC,qBAAqB,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;wDAK/C;AAhBU,eAAe;IAD3B,aAAa,CAAC,WAAW,CAAC;GACd,eAAe,CAqD3B;SArDY,eAAe","sourcesContent":["import { LitElement, html } from 'lit';\nimport { customElement, property, queryAssignedElements } from 'lit/decorators.js';\nimport { NuralyUIBaseMixin } from '../../shared/base-mixin.js';\nimport { layoutStyles } from './layout.style.js';\n\n/**\n * # Layout Component\n * \n * The layout wrapper component that provides the base structure for a page layout.\n * Can contain Header, Sider, Content, Footer, or nested Layout components.\n * \n * @element nr-layout\n * \n * @slot - Default slot for layout children (Header, Sider, Content, Footer, or nested Layout)\n * \n * @csspart layout - The layout container element\n * \n * @example\n * ```html\n * <nr-layout>\n * <nr-header>Header</nr-header>\n * <nr-content>Content</nr-content>\n * <nr-footer>Footer</nr-footer>\n * </nr-layout>\n * ```\n */\n@customElement('nr-layout')\nexport class NrLayoutElement extends NuralyUIBaseMixin(LitElement) {\n static override styles = layoutStyles;\n\n /**\n * Whether the layout contains a Sider component.\n * When true, the layout uses horizontal flex direction.\n * Automatically detected from slotted content.\n */\n @property({ type: Boolean, reflect: true, attribute: 'has-sider' })\n hasSider = false;\n\n @queryAssignedElements({ selector: 'nr-sider' })\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.detectSider();\n }\n\n override updated(changedProperties: Map<string, unknown>): void {\n super.updated(changedProperties);\n this.detectSider();\n }\n\n /**\n * Detects if the layout has a Sider component as a direct child\n */\n private detectSider(): void {\n const slot = this.shadowRoot?.querySelector('slot');\n if (slot) {\n const assignedElements = slot.assignedElements();\n const hasSiderElement = assignedElements.some(\n (el) => el.tagName.toLowerCase() === 'nr-sider'\n );\n if (this.hasSider !== hasSiderElement) {\n this.hasSider = hasSiderElement;\n }\n }\n }\n\n /**\n * Handles slot changes to re-detect sider elements\n */\n private handleSlotChange(): void {\n this.detectSider();\n }\n\n override render() {\n return html`\n <div class=\"nr-layout\" part=\"layout\">\n <slot @slotchange=${this.handleSlotChange}></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nr-layout': NrLayoutElement;\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.style.d.ts","sourceRoot":"","sources":["../../../src/components/layout/layout.style.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,yBAoBxB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.style.js","sourceRoot":"","sources":["../../../src/components/layout/layout.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;CAoB9B,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const layoutStyles = css`\n :host {\n display: flex;\n flex: auto;\n flex-direction: column;\n min-height: 0;\n background: var(--nuraly-layout-background);\n }\n\n :host([has-sider]) {\n flex-direction: row;\n }\n\n .nr-layout {\n display: flex;\n flex: auto;\n flex-direction: inherit;\n min-height: 0;\n width: 100%;\n }\n`;\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.types.d.ts","sourceRoot":"","sources":["../../../src/components/layout/layout.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,0BAAkB,gBAAgB;IAChC,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,GAAG,QAAQ;CACZ;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAO9D,CAAC;AAEF;;GAEG;AACH,0BAAkB,UAAU;IAC1B,KAAK,UAAU;IACf,IAAI,SAAS;CACd;AAED;;GAEG;AACH,oBAAY,YAAY,GAAG,SAAS,GAAG,IAAI,CAAC;AAE5C;;GAEG;AACH,oBAAY,YAAY,GAAG,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;AAErD;;GAEG;AACH,oBAAY,UAAU,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,GAAG,YAAY,KAAK,IAAI,CAAC;AAE3F;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;CAAG"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.types.js","sourceRoot":"","sources":["../../../src/components/layout/layout.types.ts"],"names":[],"mappings":"AAYA;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAqC;IACjE,gCAAqB,EAAE,GAAG;IAC1B,gCAAqB,EAAE,GAAG;IAC1B,gCAAqB,EAAE,GAAG;IAC1B,gCAAqB,EAAE,GAAG;IAC1B,gCAAqB,EAAE,IAAI;IAC3B,kCAAsB,EAAE,IAAI;CAC7B,CAAC","sourcesContent":["/**\n * Breakpoints for responsive layout\n */\nexport const enum LayoutBreakpoint {\n XS = 'xs',\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n XL = 'xl',\n XXL = 'xxl',\n}\n\n/**\n * Breakpoint width values in pixels\n */\nexport const BREAKPOINT_VALUES: Record<LayoutBreakpoint, number> = {\n [LayoutBreakpoint.XS]: 480,\n [LayoutBreakpoint.SM]: 576,\n [LayoutBreakpoint.MD]: 768,\n [LayoutBreakpoint.LG]: 992,\n [LayoutBreakpoint.XL]: 1200,\n [LayoutBreakpoint.XXL]: 1600,\n};\n\n/**\n * Sider theme options\n */\nexport const enum SiderTheme {\n Light = 'light',\n Dark = 'dark',\n}\n\n/**\n * Sider collapse trigger type\n */\nexport type SiderTrigger = 'default' | null;\n\n/**\n * Callback for breakpoint changes\n */\nexport type OnBreakpoint = (broken: boolean) => void;\n\n/**\n * Callback for collapse state changes\n */\nexport type OnCollapse = (collapsed: boolean, type: 'clickTrigger' | 'responsive') => void;\n\n/**\n * Layout component properties\n */\nexport interface LayoutProps {\n hasSider?: boolean;\n}\n\n/**\n * Sider component properties\n */\nexport interface SiderProps {\n breakpoint?: LayoutBreakpoint;\n collapsed?: boolean;\n collapsedWidth?: number;\n collapsible?: boolean;\n defaultCollapsed?: boolean;\n reverseArrow?: boolean;\n theme?: SiderTheme;\n trigger?: SiderTrigger;\n width?: number | string;\n zeroWidthTriggerStyle?: string;\n onBreakpoint?: OnBreakpoint;\n onCollapse?: OnCollapse;\n}\n\n/**\n * Header component properties\n */\nexport interface HeaderProps {\n height?: number | string;\n}\n\n/**\n * Footer component properties\n */\nexport interface FooterProps {\n padding?: string;\n}\n\n/**\n * Content component properties\n */\nexport interface ContentProps {}\n"]}
@@ -0,0 +1,38 @@
1
+ {
2
+ "name": "@nuralyui/layout",
3
+ "version": "0.0.1",
4
+ "description": "Layout components for NuralyUI - includes Layout, Header, Footer, Sider, and Content",
5
+ "type": "module",
6
+ "main": "index.js",
7
+ "module": "index.js",
8
+ "types": "index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "import": "./index.js",
12
+ "types": "./index.d.ts"
13
+ }
14
+ },
15
+ "files": [
16
+ "*.js",
17
+ "*.d.ts",
18
+ "*.ts",
19
+ "!*.stories.ts",
20
+ "!*.test.ts"
21
+ ],
22
+ "keywords": [
23
+ "layout",
24
+ "header",
25
+ "footer",
26
+ "sider",
27
+ "sidebar",
28
+ "content",
29
+ "web-components",
30
+ "lit",
31
+ "nuralyui"
32
+ ],
33
+ "author": "NuralyUI Team",
34
+ "license": "MIT",
35
+ "peerDependencies": {
36
+ "lit": "^3.0.0"
37
+ }
38
+ }