@ryanhelsing/ry-ui 1.0.2 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/AGENT.md +460 -0
  2. package/AGENTS.md +57 -0
  3. package/README.md +45 -1
  4. package/dist/components/ry-button-group.d.ts +32 -0
  5. package/dist/components/ry-button-group.d.ts.map +1 -0
  6. package/dist/components/ry-carousel.d.ts +21 -0
  7. package/dist/components/ry-carousel.d.ts.map +1 -0
  8. package/dist/components/ry-feature.d.ts +21 -0
  9. package/dist/components/ry-feature.d.ts.map +1 -0
  10. package/dist/components/ry-field.d.ts +7 -1
  11. package/dist/components/ry-field.d.ts.map +1 -1
  12. package/dist/components/ry-hero.d.ts +16 -0
  13. package/dist/components/ry-hero.d.ts.map +1 -0
  14. package/dist/components/ry-number-select.d.ts.map +1 -1
  15. package/dist/components/ry-pricing.d.ts +21 -0
  16. package/dist/components/ry-pricing.d.ts.map +1 -0
  17. package/dist/components/ry-select.d.ts +8 -1
  18. package/dist/components/ry-select.d.ts.map +1 -1
  19. package/dist/components/ry-split.d.ts +28 -0
  20. package/dist/components/ry-split.d.ts.map +1 -0
  21. package/dist/components/ry-stat.d.ts +17 -0
  22. package/dist/components/ry-stat.d.ts.map +1 -0
  23. package/dist/components/ry-tag-input.d.ts +18 -0
  24. package/dist/components/ry-tag-input.d.ts.map +1 -0
  25. package/dist/components/ry-tag.d.ts +19 -0
  26. package/dist/components/ry-tag.d.ts.map +1 -0
  27. package/dist/core/ry-transform.d.ts.map +1 -1
  28. package/dist/css/ry-structure.css +739 -149
  29. package/dist/css/ry-theme.css +581 -180
  30. package/dist/css/ry-tokens.css +120 -24
  31. package/dist/css/ry-ui.css +4965 -1065
  32. package/dist/ry-ui.d.ts +9 -0
  33. package/dist/ry-ui.d.ts.map +1 -1
  34. package/dist/ry-ui.js +1309 -778
  35. package/dist/ry-ui.js.map +1 -1
  36. package/dist/themes/dark.css +7 -90
  37. package/dist/themes/light.css +6 -35
  38. package/dist/themes/ocean.css +22 -26
  39. package/docs/components/accordion.md +31 -0
  40. package/docs/components/button-group.md +36 -0
  41. package/docs/components/button.md +65 -0
  42. package/docs/components/color.md +84 -0
  43. package/docs/components/display.md +69 -0
  44. package/docs/components/drawer.md +36 -0
  45. package/docs/components/dropdown.md +33 -0
  46. package/docs/components/forms.md +90 -0
  47. package/docs/components/knob.md +42 -0
  48. package/docs/components/layout.md +217 -0
  49. package/docs/components/modal.md +38 -0
  50. package/docs/components/number-select.md +42 -0
  51. package/docs/components/slider.md +48 -0
  52. package/docs/components/tabs.md +30 -0
  53. package/docs/components/theme-toggle.md +36 -0
  54. package/docs/components/toast.md +27 -0
  55. package/docs/components/tooltip.md +14 -0
  56. package/docs/components/tree.md +46 -0
  57. package/docs/theming.md +182 -0
  58. package/package.json +8 -4
  59. package/USING_CDN.md +0 -591
@@ -0,0 +1,21 @@
1
+ /**
2
+ * <ry-feature> + <ry-feature-grid>
3
+ *
4
+ * Feature card with icon + responsive grid.
5
+ *
6
+ * Usage:
7
+ * <ry-feature-grid cols="3">
8
+ * <ry-feature icon="settings">
9
+ * <h3>Easy Setup</h3>
10
+ * <p>One line to get started.</p>
11
+ * </ry-feature>
12
+ * </ry-feature-grid>
13
+ */
14
+ import { RyElement } from '../core/ry-element.js';
15
+ export declare class RyFeature extends RyElement {
16
+ #private;
17
+ setup(): void;
18
+ }
19
+ export declare class RyFeatureGrid extends RyElement {
20
+ }
21
+ //# sourceMappingURL=ry-feature.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ry-feature.d.ts","sourceRoot":"","sources":["../../src/ts/components/ry-feature.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGlD,qBAAa,SAAU,SAAQ,SAAS;;IACtC,KAAK,IAAI,IAAI;CAmBd;AAED,qBAAa,aAAc,SAAQ,SAAS;CAAG"}
@@ -1,18 +1,24 @@
1
1
  /**
2
2
  * <ry-field>
3
3
  *
4
- * Form field wrapper with label.
4
+ * Form field wrapper with label, error, and hint.
5
5
  *
6
6
  * Usage:
7
7
  * <ry-field label="Email">
8
8
  * <input type="email" placeholder="you@example.com">
9
9
  * </ry-field>
10
10
  *
11
+ * <ry-field label="Password" hint="Min 8 characters" error="Too short">
12
+ * <input type="password">
13
+ * </ry-field>
14
+ *
11
15
  * JS uses data-ry-target for queries, CSS uses classes for styling.
12
16
  */
13
17
  import { RyElement } from '../core/ry-element.js';
14
18
  export declare class RyField extends RyElement {
15
19
  #private;
20
+ static get observedAttributes(): string[];
16
21
  setup(): void;
22
+ attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
17
23
  }
18
24
  //# sourceMappingURL=ry-field.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ry-field.d.ts","sourceRoot":"","sources":["../../src/ts/components/ry-field.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,qBAAa,OAAQ,SAAQ,SAAS;;IACpC,KAAK,IAAI,IAAI;CA2Bd"}
1
+ {"version":3,"file":"ry-field.d.ts","sourceRoot":"","sources":["../../src/ts/components/ry-field.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,qBAAa,OAAQ,SAAQ,SAAS;;IACpC,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAExC;IAED,KAAK,IAAI,IAAI;IAIb,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;CA6G/F"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * <ry-hero>
3
+ *
4
+ * Hero section component (mostly CSS-only).
5
+ *
6
+ * Usage:
7
+ * <ry-hero align="center">
8
+ * <h1>Build apps faster</h1>
9
+ * <p>Framework-agnostic components.</p>
10
+ * <ry-cluster><ry-button>Get Started</ry-button></ry-cluster>
11
+ * </ry-hero>
12
+ */
13
+ import { RyElement } from '../core/ry-element.js';
14
+ export declare class RyHero extends RyElement {
15
+ }
16
+ //# sourceMappingURL=ry-hero.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ry-hero.d.ts","sourceRoot":"","sources":["../../src/ts/components/ry-hero.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,qBAAa,MAAO,SAAQ,SAAS;CAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"ry-number-select.d.ts","sourceRoot":"","sources":["../../src/ts/components/ry-number-select.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAMlD,qBAAa,cAAe,SAAQ,SAAS;;IAgB3C,MAAM,CAAC,kBAAkB,mIAAoI;IAE7J,KAAK,IAAI,IAAI;IAicb,IAAI,KAAK,IAAI,MAAM,CAElB;IACD,IAAI,KAAK,CAAC,GAAG,EAAE,MAAM,EAEpB;IAED,IAAI,GAAG,IAAI,MAAM,CAEhB;IACD,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,EAElB;IAED,IAAI,GAAG,IAAI,MAAM,CAEhB;IACD,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,EAElB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IACD,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,EAEnB;IAED,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,MAAM,CAE7B;IACD,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,MAAM,EAE/B;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IACD,IAAI,QAAQ,CAAC,GAAG,EAAE,OAAO,EAGxB;IAED,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAO9F,QAAQ,IAAI,IAAI;CAGjB"}
1
+ {"version":3,"file":"ry-number-select.d.ts","sourceRoot":"","sources":["../../src/ts/components/ry-number-select.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAMlD,qBAAa,cAAe,SAAQ,SAAS;;IAgB3C,MAAM,CAAC,kBAAkB,mIAAoI;IAE7J,KAAK,IAAI,IAAI;IA0cb,IAAI,KAAK,IAAI,MAAM,CAElB;IACD,IAAI,KAAK,CAAC,GAAG,EAAE,MAAM,EAEpB;IAED,IAAI,GAAG,IAAI,MAAM,CAEhB;IACD,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,EAElB;IAED,IAAI,GAAG,IAAI,MAAM,CAEhB;IACD,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,EAElB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IACD,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,EAEnB;IAED,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,MAAM,CAE7B;IACD,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,MAAM,EAE/B;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IACD,IAAI,QAAQ,CAAC,GAAG,EAAE,OAAO,EAGxB;IAED,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAO9F,QAAQ,IAAI,IAAI;CAGjB"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * <ry-pricing> + <ry-pricing-card>
3
+ *
4
+ * Pricing section with featured card variant.
5
+ *
6
+ * Usage:
7
+ * <ry-pricing>
8
+ * <ry-pricing-card featured>
9
+ * <h3>Pro</h3>
10
+ * <div slot="price">$29<span>/mo</span></div>
11
+ * <ul><li>Feature 1</li></ul>
12
+ * <ry-button>Choose Pro</ry-button>
13
+ * </ry-pricing-card>
14
+ * </ry-pricing>
15
+ */
16
+ import { RyElement } from '../core/ry-element.js';
17
+ export declare class RyPricing extends RyElement {
18
+ }
19
+ export declare class RyPricingCard extends RyElement {
20
+ }
21
+ //# sourceMappingURL=ry-pricing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ry-pricing.d.ts","sourceRoot":"","sources":["../../src/ts/components/ry-pricing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,qBAAa,SAAU,SAAQ,SAAS;CAAG;AAC3C,qBAAa,aAAc,SAAQ,SAAS;CAAG"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * <ry-select>
3
3
  *
4
- * Custom select dropdown component.
4
+ * Custom select dropdown component with optional multi-select.
5
5
  *
6
6
  * Usage:
7
7
  * <ry-select placeholder="Choose country" name="country">
@@ -10,6 +10,12 @@
10
10
  * <ry-option value="ca" disabled>Canada</ry-option>
11
11
  * </ry-select>
12
12
  *
13
+ * Multi-select:
14
+ * <ry-select multiple clearable placeholder="Choose...">
15
+ * <ry-option value="us">United States</ry-option>
16
+ * <ry-option value="uk">United Kingdom</ry-option>
17
+ * </ry-select>
18
+ *
13
19
  * JS uses data-ry-target for queries, CSS uses classes for styling.
14
20
  */
15
21
  import { RyElement } from '../core/ry-element.js';
@@ -24,6 +30,7 @@ export declare class RySelect extends RyElement {
24
30
  toggle(): void;
25
31
  get value(): string;
26
32
  set value(val: string);
33
+ get values(): string[];
27
34
  teardown(): void;
28
35
  }
29
36
  //# sourceMappingURL=ry-select.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ry-select.d.ts","sourceRoot":"","sources":["../../src/ts/components/ry-select.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAgB,MAAM,aAAa,CAAC;AAI9D,qBAAa,QAAS,SAAQ,SAAS;;IAOrC,QAAQ,EAAE,YAAY,EAAE,CAAM;IAE9B,MAAM,CAAC,kBAAkB,iCAAkC;IAE3D,KAAK,IAAI,IAAI;IA6Qb,IAAI,IAAI,IAAI;IA+CZ,KAAK,IAAI,IAAI;IAmBb,MAAM,IAAI,IAAI;IAQd,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,KAAK,CAAC,GAAG,EAAE,MAAM,EAKpB;IAED,QAAQ,IAAI,IAAI;CAKjB"}
1
+ {"version":3,"file":"ry-select.d.ts","sourceRoot":"","sources":["../../src/ts/components/ry-select.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,OAAO,KAAK,EAAE,YAAY,EAAgB,MAAM,aAAa,CAAC;AAI9D,qBAAa,QAAS,SAAQ,SAAS;;IAQrC,QAAQ,EAAE,YAAY,EAAE,CAAM;IAM9B,MAAM,CAAC,kBAAkB,iCAAkC;IAE3D,KAAK,IAAI,IAAI;IA0Zb,IAAI,IAAI,IAAI;IAmDZ,KAAK,IAAI,IAAI;IAmBb,MAAM,IAAI,IAAI;IAQd,IAAI,KAAK,IAAI,MAAM,CAKlB;IAED,IAAI,KAAK,CAAC,GAAG,EAAE,MAAM,EAgBpB;IAED,IAAI,MAAM,IAAI,MAAM,EAAE,CAErB;IAED,QAAQ,IAAI,IAAI;CAKjB"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * <ry-split>
3
+ *
4
+ * Two-column split layout with optional resizable divider and persistence.
5
+ *
6
+ * Usage:
7
+ * <ry-split>
8
+ * <div>Main content</div>
9
+ * <div>Sidebar</div>
10
+ * </ry-split>
11
+ *
12
+ * Resizable with persistence:
13
+ * <ry-split resizable persist="my-panel">
14
+ * <div>Main</div>
15
+ * <div>Panel</div>
16
+ * </ry-split>
17
+ *
18
+ * CSS custom properties:
19
+ * --ry-split-width: Sidebar width (default 300px)
20
+ * --ry-split-min-width: Sidebar minimum during resize (default 100px)
21
+ * --ry-split-max-width: Sidebar maximum during resize (default 80% of container)
22
+ */
23
+ import { RyElement } from '../core/ry-element.js';
24
+ export declare class RySplit extends RyElement {
25
+ #private;
26
+ setup(): void;
27
+ }
28
+ //# sourceMappingURL=ry-split.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ry-split.d.ts","sourceRoot":"","sources":["../../src/ts/components/ry-split.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,qBAAa,OAAQ,SAAQ,SAAS;;IAMpC,KAAK,IAAI,IAAI;CA6Kd"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * <ry-stat>
3
+ *
4
+ * KPI / statistic display with optional trend arrow.
5
+ *
6
+ * Usage:
7
+ * <ry-stat trend="up">
8
+ * <span slot="value">2,847</span>
9
+ * <span slot="label">Active Users</span>
10
+ * </ry-stat>
11
+ */
12
+ import { RyElement } from '../core/ry-element.js';
13
+ export declare class RyStat extends RyElement {
14
+ #private;
15
+ setup(): void;
16
+ }
17
+ //# sourceMappingURL=ry-stat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ry-stat.d.ts","sourceRoot":"","sources":["../../src/ts/components/ry-stat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGlD,qBAAa,MAAO,SAAQ,SAAS;;IACnC,KAAK,IAAI,IAAI;CAyBd"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * <ry-tag-input>
3
+ *
4
+ * Free-form tag entry with delimiter splitting and paste support.
5
+ *
6
+ * Usage:
7
+ * <ry-tag-input placeholder="Add tags..." delimiter="," max-tags="5" name="tags" value="js,ts,css"></ry-tag-input>
8
+ *
9
+ * Events: ry:change, ry:add, ry:remove
10
+ */
11
+ import { RyElement } from '../core/ry-element.js';
12
+ export declare class RyTagInput extends RyElement {
13
+ #private;
14
+ setup(): void;
15
+ get value(): string;
16
+ get values(): string[];
17
+ }
18
+ //# sourceMappingURL=ry-tag-input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ry-tag-input.d.ts","sourceRoot":"","sources":["../../src/ts/components/ry-tag-input.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,qBAAa,UAAW,SAAQ,SAAS;;IAGvC,KAAK,IAAI,IAAI;IAmIb,IAAI,KAAK,IAAI,MAAM,CAGlB;IAED,IAAI,MAAM,IAAI,MAAM,EAAE,CAErB;CACF"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * <ry-tag>
3
+ *
4
+ * Removable pill/tag component.
5
+ *
6
+ * Usage:
7
+ * <ry-tag>Default</ry-tag>
8
+ * <ry-tag variant="primary" removable>Removable</ry-tag>
9
+ * <ry-tag size="sm" removable data-value="js">JavaScript</ry-tag>
10
+ *
11
+ * JS uses data-ry-target for queries, CSS uses classes for styling.
12
+ */
13
+ import { RyElement } from '../core/ry-element.js';
14
+ export declare class RyTag extends RyElement {
15
+ #private;
16
+ setup(): void;
17
+ get label(): string;
18
+ }
19
+ //# sourceMappingURL=ry-tag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ry-tag.d.ts","sourceRoot":"","sources":["../../src/ts/components/ry-tag.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGlD,qBAAa,KAAM,SAAQ,SAAS;;IAClC,KAAK,IAAI,IAAI;IA+Bb,IAAI,KAAK,IAAI,MAAM,CAElB;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"ry-transform.d.ts","sourceRoot":"","sources":["../../src/ts/core/ry-transform.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AA4CH;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAgBxC"}
1
+ {"version":3,"file":"ry-transform.d.ts","sourceRoot":"","sources":["../../src/ts/core/ry-transform.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAsDH;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAgBxC"}