text: 'use strict';
  
  Object.defineProperty(exports, "__esModule", {
    value: true
  });
  
  var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
  
  exports.default = extractUsedProps;
  function extractUsedProps(rule) {
    var theme = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
  
    var handler = function handler(props) {
      return {
        get: function get(target, key) {
          if (_typeof(target[key]) === 'object' && target[key] !== null) {
            props.push(key);
            return target[key];
          }
          props.push(key);
          return target[key];
        }
      };
    };
  
    var usedProps = [];
    var proxy = new Proxy({ theme: theme }, handler(usedProps));
    rule(proxy);
    return usedProps;
  }