@triptease/design-system-mcp 1.2.11 → 1.2.13

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 (2) hide show
  1. package/dist/index.js +152 -26
  2. package/package.json +4 -3
package/dist/index.js CHANGED
@@ -7656,11 +7656,11 @@ function datetimeRegex(args) {
7656
7656
  regex = `${regex}(${opts.join("|")})`;
7657
7657
  return new RegExp(`^${regex}$`);
7658
7658
  }
7659
- function isValidIP(ip, version9) {
7660
- if ((version9 === "v4" || !version9) && ipv4Regex.test(ip)) {
7659
+ function isValidIP(ip, version10) {
7660
+ if ((version10 === "v4" || !version10) && ipv4Regex.test(ip)) {
7661
7661
  return true;
7662
7662
  }
7663
- if ((version9 === "v6" || !version9) && ipv6Regex.test(ip)) {
7663
+ if ((version10 === "v6" || !version10) && ipv6Regex.test(ip)) {
7664
7664
  return true;
7665
7665
  }
7666
7666
  return false;
@@ -7687,11 +7687,11 @@ function isValidJWT(jwt2, alg) {
7687
7687
  return false;
7688
7688
  }
7689
7689
  }
7690
- function isValidCidr(ip, version9) {
7691
- if ((version9 === "v4" || !version9) && ipv4CidrRegex.test(ip)) {
7690
+ function isValidCidr(ip, version10) {
7691
+ if ((version10 === "v4" || !version10) && ipv4CidrRegex.test(ip)) {
7692
7692
  return true;
7693
7693
  }
7694
- if ((version9 === "v6" || !version9) && ipv6CidrRegex.test(ip)) {
7694
+ if ((version10 === "v6" || !version10) && ipv6CidrRegex.test(ip)) {
7695
7695
  return true;
7696
7696
  }
7697
7697
  return false;
@@ -11644,10 +11644,10 @@ var nanoid = /^[a-zA-Z0-9_-]{21}$/;
11644
11644
  var duration = /^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;
11645
11645
  var extendedDuration = /^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/;
11646
11646
  var guid = /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/;
11647
- var uuid = (version9) => {
11648
- if (!version9)
11647
+ var uuid = (version10) => {
11648
+ if (!version10)
11649
11649
  return /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/;
11650
- return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${version9}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`);
11650
+ return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${version10}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`);
11651
11651
  };
11652
11652
  var uuid4 = /* @__PURE__ */ uuid(4);
11653
11653
  var uuid6 = /* @__PURE__ */ uuid(6);
@@ -23302,7 +23302,7 @@ var StdioServerTransport = class {
23302
23302
  // package.json
23303
23303
  var package_default = {
23304
23304
  name: "@triptease/design-system-mcp",
23305
- version: "1.2.11",
23305
+ version: "1.2.13",
23306
23306
  description: "MCP server for Triptease design system documentation",
23307
23307
  type: "module",
23308
23308
  main: "dist/index.js",
@@ -23323,7 +23323,7 @@ var package_default = {
23323
23323
  node: ">=18.0.0"
23324
23324
  },
23325
23325
  componentVersions: {
23326
- "@triptease/stylesheet": "2.1.4",
23326
+ "@triptease/stylesheet": "2.1.10",
23327
23327
  "@triptease/tt-bar-chart": "1.1.3",
23328
23328
  "@triptease/tt-combobox": "5.7.4",
23329
23329
  "@triptease/tt-data-point": "1.1.1",
@@ -23337,10 +23337,11 @@ var package_default = {
23337
23337
  "@triptease/tt-paginator": "1.0.7",
23338
23338
  "@triptease/tt-table-wrapper": "1.0.6",
23339
23339
  "@triptease/tt-tabs": "1.1.0",
23340
+ "@triptease/tt-repeat-date-picker": "1.0.0",
23340
23341
  "@triptease/tt-weekday-picker": "1.0.1"
23341
23342
  },
23342
23343
  dependencies: {
23343
- "@triptease/stylesheet": "2.1.8"
23344
+ "@triptease/stylesheet": "2.1.10"
23344
23345
  },
23345
23346
  devDependencies: {
23346
23347
  "@modelcontextprotocol/sdk": "1.26.0",
@@ -24005,21 +24006,26 @@ var card_default = {
24005
24006
  examples: [
24006
24007
  {
24007
24008
  title: "Basic usage",
24008
- code: `<div class="card">
24009
- <h3>Boost low-occupancy dates</h3>
24010
- <p>Drive bookings when you need them most</p>
24011
- <button data-theme="secondary">Boost some dates</button>
24012
- </div>`
24009
+ description: "- A card is the layout component. The content it holds is irrelevant and can be more than what is shown here.\n\n- Do not nest cards as this can make UI look too busy.",
24010
+ code: `
24011
+ <div className="card" style={{ width: '25rem' }}>
24012
+ <tt-icon name="target" color="var(--color-primary-500)"></tt-icon>
24013
+ <div>
24014
+ <h3>Retarget guests</h3>
24015
+ <p>Re-engage high-value guests after they've left your website</p>
24016
+ </div>
24017
+ <a href="#">Configure retargeting ads</a>
24018
+ </div>;`
24013
24019
  }
24014
24020
  ]
24015
24021
  }
24016
24022
  };
24017
24023
 
24018
24024
  // src/utils/buildCDNUrls.ts
24019
- var buildCDNUrl = (componentName, version9) => {
24020
- return `https://cdn.design-system.triptease.io/${componentName}/${version9}/${componentName}.js`;
24025
+ var buildCDNUrl = (componentName, version10) => {
24026
+ return `https://cdn.design-system.triptease.io/${componentName}/${version10}/${componentName}.js`;
24021
24027
  };
24022
- var buildMajorVersion = (version9) => `${version9.split(".")[0]}.x.x`;
24028
+ var buildMajorVersion = (version10) => `${version10.split(".")[0]}.x.x`;
24023
24029
 
24024
24030
  // src/manifests/components/entries/table.ts
24025
24031
  var tableWrapperVersion = package_default.componentVersions["@triptease/tt-table-wrapper"];
@@ -25635,6 +25641,105 @@ var weekdayPicker_default = {
25635
25641
  }
25636
25642
  };
25637
25643
 
25644
+ // src/manifests/components/entries/repeatDatePicker.ts
25645
+ var version9 = package_default.componentVersions["@triptease/tt-repeat-date-picker"];
25646
+ var repeatDatePicker_default = {
25647
+ "repeat-date-picker": {
25648
+ name: "Repeat Date Picker",
25649
+ description: "A repeat date picker lets users define a date range and optionally schedule it to repeat on a regular basis. The form value is a JSON-encoded { dates, infinite } object. infinite is true only when repeat is on with no defined end condition; it is false when repeat is off or a finite list of occurrences has been set.",
25650
+ ssrSafe: true,
25651
+ element: "tt-repeat-date-picker",
25652
+ usageGuidance: {
25653
+ whenToUse: [
25654
+ "A user needs to schedule a recurring campaign, promotion, or event across multiple date ranges",
25655
+ "A booking offer or rate plan applies to several periods that follow a predictable pattern"
25656
+ ],
25657
+ avoid: [
25658
+ "A single, one-off date range is needed \u2014 use the Date Range Picker instead",
25659
+ "Only a single date (not a range) is needed \u2014 use the Date Picker instead"
25660
+ ],
25661
+ accessibility: [
25662
+ 'Always associate a visible label using a <label for="..."> element \u2014 the component does not render its own label',
25663
+ "The repeat option groups are wrapped in fieldset and legend elements, which screen readers announce as named groups"
25664
+ ]
25665
+ },
25666
+ installationOptions: {
25667
+ npm: [{ name: "@triptease/tt-repeat-date-picker", includesTypes: true, optional: false }],
25668
+ cdn: [
25669
+ {
25670
+ name: "@triptease/tt-repeat-date-picker",
25671
+ includesTypes: false,
25672
+ optional: false,
25673
+ moduleFormat: "esm",
25674
+ latestVersionUrl: buildCDNUrl("tt-repeat-date-picker", "latest"),
25675
+ pinnedMajorVersionUrl: buildCDNUrl("tt-repeat-date-picker", buildMajorVersion(version9)),
25676
+ pinnedVersionUrl: buildCDNUrl("tt-repeat-date-picker", version9),
25677
+ guidance: "Prefer pinned major version URL to avoid unexpected breaking changes. Do not use latest version URL in production code."
25678
+ }
25679
+ ]
25680
+ },
25681
+ attributes: {
25682
+ name: { type: "string", description: "Form field name used in form data submission" },
25683
+ mindate: { type: "string", description: "Earliest selectable date in YYYY-MM-DD format. Passed through to the internal date range picker." },
25684
+ maxdate: { type: "string", description: "Latest selectable date in YYYY-MM-DD format. Passed through to the internal date range picker." },
25685
+ required: {
25686
+ type: "boolean",
25687
+ description: "Marks the field as required. Reports valueMissing when no date range has been selected"
25688
+ },
25689
+ disabled: { type: "boolean", description: "Disables the date range picker and the repeat checkbox" }
25690
+ },
25691
+ events: {
25692
+ change: {
25693
+ description: "Fired whenever the selected range, repeat settings, or end condition changes. Read the value property to get the updated { dates, infinite } object.",
25694
+ bubbles: true
25695
+ }
25696
+ },
25697
+ examples: [
25698
+ {
25699
+ title: "Basic usage",
25700
+ code: `<label for="promo-dates">Promotional period</label>
25701
+ <tt-repeat-date-picker id="promo-dates" name="repeat-dates"></tt-repeat-date-picker>`
25702
+ },
25703
+ {
25704
+ title: "Date constraints",
25705
+ description: "Use mindate and maxdate to restrict which dates the user can select. Set mindate when the range cannot start before a certain date \u2014 for example, today for a future-only promotion. Set maxdate when the range must end before a certain date \u2014 for example, the end of a campaign window.",
25706
+ code: `<label for="promo-dates">Promotional period</label>
25707
+ <tt-repeat-date-picker id="promo-dates" name="repeat-dates" mindate="2026-01-01" maxdate="2026-12-31"></tt-repeat-date-picker>`
25708
+ },
25709
+ {
25710
+ title: "Disabled",
25711
+ description: "Use the disabled state when scheduling is temporarily unavailable. If scheduling will never be available to this user, consider hiding the component entirely rather than disabling it.",
25712
+ code: `<label for="promo-dates">Promotional period</label>
25713
+ <tt-repeat-date-picker id="promo-dates" name="repeat-dates" disabled></tt-repeat-date-picker>`
25714
+ },
25715
+ {
25716
+ title: "Required",
25717
+ description: "Use required when a schedule must be provided before the form can be submitted. Like a native required input, the component sets a browser validation message, but this produces a disruptive tooltip. Always provide a visible inline error message instead and associate it using aria-describedby.",
25718
+ code: `<form id="required-form" novalidate>
25719
+ <label for="promo-dates">Promotional period</label>
25720
+ <tt-repeat-date-picker id="promo-dates" name="repeat-dates" required aria-describedby="repeat-dates-error"></tt-repeat-date-picker>
25721
+ <span id="repeat-dates-error" hidden>Please select a date range</span>
25722
+ <button type="submit">Submit</button>
25723
+ </form>
25724
+
25725
+ <script>
25726
+ document.getElementById('required-form').addEventListener('submit', (e) => {
25727
+ e.preventDefault();
25728
+ const errorEl = document.getElementById('repeat-dates-error');
25729
+ if (!e.currentTarget.checkValidity()) {
25730
+ errorEl.hidden = false;
25731
+ return;
25732
+ }
25733
+ errorEl.hidden = true;
25734
+ const value = JSON.parse(new FormData(e.currentTarget).get('repeat-dates'));
25735
+ console.log(value); // { dates: [...], infinite: false }
25736
+ });
25737
+ </script>`
25738
+ }
25739
+ ]
25740
+ }
25741
+ };
25742
+
25638
25743
  // src/manifests/components/index.ts
25639
25744
  var componentManifest = {
25640
25745
  ...button_default,
@@ -25659,7 +25764,8 @@ var componentManifest = {
25659
25764
  ...banner_default,
25660
25765
  ...tabs_default,
25661
25766
  ...paginator_default,
25662
- ...weekdayPicker_default
25767
+ ...weekdayPicker_default,
25768
+ ...repeatDatePicker_default
25663
25769
  };
25664
25770
 
25665
25771
  // src/resources/components/list.ts
@@ -28527,13 +28633,13 @@ var tokens_default = {
28527
28633
  },
28528
28634
  "box-shadow": {
28529
28635
  sm: {
28530
- value: "0px 2px 5px rgba(0, 0, 0, 0.1)",
28636
+ value: "0 1px 0 0 #E8EAEC",
28531
28637
  type: "boxShadow",
28532
28638
  name: " ",
28533
28639
  filePath: "tokens/src/styles.json",
28534
28640
  isSource: true,
28535
28641
  original: {
28536
- value: "0px 2px 5px rgba(0, 0, 0, 0.1)",
28642
+ value: "0 1px 0 0 #E8EAEC",
28537
28643
  type: "boxShadow",
28538
28644
  name: "Small box shadow"
28539
28645
  },
@@ -28546,14 +28652,34 @@ var tokens_default = {
28546
28652
  "sm"
28547
28653
  ]
28548
28654
  },
28655
+ md: {
28656
+ value: "0 8px 12px 0 rgba(0, 0, 0, 0.08), 0 2px 4px 0 rgba(0, 0, 0, 0.06)",
28657
+ type: "boxShadow",
28658
+ name: " ",
28659
+ filePath: "tokens/src/styles.json",
28660
+ isSource: true,
28661
+ original: {
28662
+ value: "0 8px 12px 0 rgba(0, 0, 0, 0.08), 0 2px 4px 0 rgba(0, 0, 0, 0.06)",
28663
+ type: "boxShadow",
28664
+ name: "Medium box shadow"
28665
+ },
28666
+ attributes: {
28667
+ category: "box-shadow",
28668
+ type: "md"
28669
+ },
28670
+ path: [
28671
+ "box-shadow",
28672
+ "md"
28673
+ ]
28674
+ },
28549
28675
  lg: {
28550
- value: "0px 2px 20px rgba(0, 0, 0, 0.1)",
28676
+ value: "0 50px 100px 0 rgba(60, 66, 87, 0.08), 0 15px 35px 0 rgba(60, 66, 87, 0.08), 0 5px 15px 0 rgba(0, 0, 0, 0.12)",
28551
28677
  type: "boxShadow",
28552
28678
  name: " ",
28553
28679
  filePath: "tokens/src/styles.json",
28554
28680
  isSource: true,
28555
28681
  original: {
28556
- value: "0px 2px 20px rgba(0, 0, 0, 0.1)",
28682
+ value: "0 50px 100px 0 rgba(60, 66, 87, 0.08), 0 15px 35px 0 rgba(60, 66, 87, 0.08), 0 5px 15px 0 rgba(0, 0, 0, 0.12)",
28557
28683
  type: "boxShadow",
28558
28684
  name: "Large box shadow"
28559
28685
  },
@@ -28577,7 +28703,7 @@ var tokens_default = {
28577
28703
  value: "0px 10px 20px rgba(0, 0, 0, 0.2)",
28578
28704
  type: "boxShadow",
28579
28705
  comment: "Large box shadow used for hover effects",
28580
- name: "Large box shadow hover state"
28706
+ name: "DEPRECATED - Large box shadow hover state"
28581
28707
  },
28582
28708
  attributes: {
28583
28709
  category: "box-shadow",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@triptease/design-system-mcp",
3
- "version": "1.2.11",
3
+ "version": "1.2.13",
4
4
  "description": "MCP server for Triptease design system documentation",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -21,7 +21,7 @@
21
21
  "node": ">=18.0.0"
22
22
  },
23
23
  "componentVersions": {
24
- "@triptease/stylesheet": "2.1.4",
24
+ "@triptease/stylesheet": "2.1.10",
25
25
  "@triptease/tt-bar-chart": "1.1.3",
26
26
  "@triptease/tt-combobox": "5.7.4",
27
27
  "@triptease/tt-data-point": "1.1.1",
@@ -35,10 +35,11 @@
35
35
  "@triptease/tt-paginator": "1.0.7",
36
36
  "@triptease/tt-table-wrapper": "1.0.6",
37
37
  "@triptease/tt-tabs": "1.1.0",
38
+ "@triptease/tt-repeat-date-picker": "1.0.0",
38
39
  "@triptease/tt-weekday-picker": "1.0.1"
39
40
  },
40
41
  "dependencies": {
41
- "@triptease/stylesheet": "2.1.8"
42
+ "@triptease/stylesheet": "2.1.10"
42
43
  },
43
44
  "devDependencies": {
44
45
  "@modelcontextprotocol/sdk": "1.26.0",